Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

mnem vs Letta

Letta: “Letta is the platform for building stateful agents: AI with advanced memory that can learn and self-improve over time.” (repo description, letta-ai/letta) mnem: a content-addressed graph substrate that stores the memory an agent uses, without assuming the agent.

At a glance

mnemLetta
LicenseApache-2.0Apache-2.0
Starssmall / pre-launch22,305 (GitHub API, 2026-04-26)
Embedded / Serverembeddedserver (Letta API) + Letta Code CLI
LLM at ingestnoyes; the agent is the writer
Content-addressedyesno (DB row IDs)
Bitemporalnopartial (Letta tracks message timestamps)
WASM targetyesno (Python server)
MCP serveryesyes (Letta supports MCP integrations)
Hybrid retrievalyesrecall + archival memory; not headlined as hybrid
Token-budget retrieval metadatayesnot exposed
3-way mergeyesno
Reproducible benchmarks in-repoyespartial (Letta leaderboard external)

Feature comparison

#DimensionmnemLettaSource
1Product shapememory substrateagent platform (agents + memory + tools + runtime)Letta README sha bb52a8900a79
2Memory modelopen graph of content-addressed nodes + edgestiered: core blocks (in-context) + recall + archivalMemGPT paper arXiv:2310.08560
3Who writes memorythe applicationthe agent itself, via tool callsLetta docs
4LLM at ingestnoneyes; agent decides what to write, promote, evictMemGPT paper
5Identitycontent CIDDB row IDsLetta SDK
6Historysigned commit DAGstandard DB state with timestampsLetta SDK
7Conflict resolution3-way mergeagent-to-agent messagingLetta docs
8Scopingopen (any node label)agent_id first-classLetta API
9Vector laneHNSW via mnem-annrecall / archival via configurable embedderLetta docs
10Sparse laneBM25 + SPLADEnot first-classLetta docs
11Graph lanefirst-classnot first-classLetta docs
12BindingsRust + Python + TS + HTTP + CLI + MCPPython + REST + Letta Code CLI (Node 18+)Letta README
13Cloudnone yethosted Letta API + free dashboardhttps://docs.letta.com
14Model agnosticismyes (provider-not-tactic)“fully model-agnostic; recommends Opus 4.5 / GPT-5.2”Letta README
15Headline use-caseagent-memory substrate“stateful agents that learn and self-improve”Letta repo description

Benchmarks (where comparable)

Letta publishes a model leaderboard at leaderboard.letta.com ranking LLMs on Letta’s agent benchmarks (multi-turn, tool-use, reasoning). This measures models inside the Letta agent, not retrieval quality of a memory layer. mnem’s benchmarks measure retrieval R@K over corpora, not agent task success.

The two systems are not directly comparable on a single number. Letta’s “how well does this LLM run my agent” answers a different question from mnem’s “how well does the substrate retrieve under a fixed embedder.”

mnem’s retrieval numbers under ONNX MiniLM-L6-v2:

BenchmarkSplitMetricmnem
LongMemEval500 QR@5 session0.966
LoCoMo1986 QR@5 session0.726
ConvoMem250 QAvg recall0.976

Latency (where measured)

SystemSetupLatency
mnemLongMemEval 500 Q, MiniLM ONNX711 ms mean retrieve
mnemLoCoMo 1986 Q, MiniLM ONNX333 ms mean retrieve
Lettavaries wildly with model + tool-use depthnot headlined

Letta’s user-perceived latency is dominated by the agent loop, not the memory tier. Different mechanism; not comparable.

Architecture differences

Letta is the platform descended from MemGPT. The headline pattern is tiered memory: core memory blocks held in the LLM’s context window, recall memory (recent conversation history) accessible via tool calls, and archival memory (long-term store) similarly accessed by tool. The agent itself decides what to promote and evict, using the LLM’s own reasoning. Letta ships as a Python framework, a hosted API, and a local CLI (letta via @letta-ai/letta-code). The product optimisation is “give an LLM persistent memory and let it manage the tiers.”

mnem is one layer below that. There is no agent in mnem. mnem is a graph substrate: content-addressed nodes and edges, signed commit history, 3-way merge, hybrid retrieval. If you wanted to build the MemGPT pattern on top of mnem, you would ship: core_blocks as a small ad-hoc graph, recall as an HNSW lane over recent commits, archival as the full graph traversal lane. mnem doesn’t impose any of that; it gives you the storage primitives and lets you choose the agent shape.

Where Letta clearly wins

  • The agent is in the box. Drop in Letta, you have an agent with memory and tool-use today. mnem requires you to bring your own agent / framework.
  • The MemGPT brand and lineage. Anyone reading the agent-memory literature has seen the paper. Letta’s the canonical implementation.
  • Hosted API + leaderboard. Comparing models on Letta’s harness is one click.
  • Skills + subagents. Bundled patterns for advanced memory and continual learning.
  • Multi-agent reconciliation via messaging. Agent-to-agent conversations are first-class.

Where mnem clearly wins

  • No agent assumed. Letta’s memory belongs to a Letta agent; mnem’s memory belongs to your application. Port your agent framework next year, the data stays.
  • No LLM in the write path. Letta writes to memory through the agent (LLM tool calls). mnem writes deterministically.
  • Content-addressed identity. Same fact = same CID across machines.
  • Real commit DAG. Diff, log, 3-way merge, signed history. Letta has DB state, not commits.
  • Structural multi-agent merge. Two agents working offline in the same scope reconcile by 3-way graph merge, not by chat messages.
  • WASM, embedded, single binary. Ship to the edge. Letta is a Python server.
  • Hybrid 3-lane retrieval with token-budget metadata. Explicit RRF over dense / sparse / graph; tokens_used per response.

When to pick Letta, when to pick mnem

Pick Letta if: you want the MemGPT pattern in a box, you want a ready-made agent platform with skills and subagents, you want to use Letta’s leaderboard to pick a model, or you are building a single stateful agent rather than a multi-application substrate.

Pick mnem if: you want the memory layer separate from the agent, you need content-addressing and a commit DAG, you are running multiple agent frameworks against the same store, or you need embedded / edge / WASM deployment.

Sources