COMPARE
Agent memory, compared honestly
Four ways to give an agent memory — and one of them is doing nothing. Each comparison names where causal-memory loses before it names where it wins.
Updated · English
Why this page exists
"Agent memory" covers at least three different products: a fact store, a temporal knowledge graph, and an agent runtime with memory bolted in. Comparing them feature-by-feature produces a table where everything looks equivalent and nothing is. The useful question is narrower: what object does the system store, and what question can it answer that the others cannot?
causal-memory stores decision → outcome edges with a type — caused, enabled, prevented, no_effect. That is why it can answer "what happens if I do this again?" and why it is worse than mem0 at "what is the user's preferred timezone?". Both facts belong on the page, in that order.
At a glance
The fourth column is the one most comparison pages omit: what the option is worst at.
| Option | Best at | Weakest at | Detail |
|---|---|---|---|
| mem0 | Fact recall — 91.6% on LoCoMo with a strict judge, the best of anything compared here | No causal or inhibitory edge, so it cannot warn about a repeated mistake | Compare |
| Zep | Temporal knowledge graphs and bi-temporal fact validity | Graph service plus a graph database to operate; no causal semantics | Compare |
| Letta | A complete stateful agent runtime with editable memory blocks and a desktop environment | Memory lives inside the runtime; prose blocks have no ranking semantics | Compare |
| causal-memory | Typed decision → outcome edges, inhibition, pre-action warnings — 78% vs 65% overall on CausalEval. | Fact recall (79.1% on LoCoMo) and lesson transfer (C6, 20%) trail the field | this page |
| Built-in context | Zero setup: the conversation window already contains the recent past | Compaction erases the reasoning first — 45% textual recall at 5x compaction in our harness | this page |
The three comparisons
- vs mem0causal-memory vs mem0mem0 is the better fact store. causal-memory answers the next question: why did that decision work, and what did it prevent?
- vs Zepcausal-memory vs ZepZep models how facts change over time. causal-memory models how decisions cause outcomes — including the outcomes they prevented.
- vs Lettacausal-memory vs LettaLetta gives the agent a runtime and editable memory blocks. causal-memory gives any runtime a causal record of decisions and their outcomes.
How these pages are written
Every number is taken from the causal-memory README (v0.10.0) or the CausalEval v13 report, read on 2026-10-21. Where a competitor was not measured, the page says "not measured" instead of implying a result. C7 update moved from 50% (v12) to 100% (v13) once superseded edges were annotated instead of hidden, and it held at doubled sample size. C6 lesson transfer is still 20% against mem0's 30% — that gap is open.
- Comparison pages lead with the honest gap, not with the feature where causal-memory wins.
- mem0 is stronger at fact recall: 91.6% vs 79.1% on LoCoMo with a strict judge.
- Competitor descriptions are limited to public product facts and the README differentiation table; no invented competitor benchmarks.
- Source: causal-memory README v0.10.0 · CausalEval v13.
Read the benchmark before the marketing
CausalEval is the only benchmark here designed around causal structure: the graph is the answer key, so there is no hand annotation to argue with. It also has a known weak spot — C6 lesson transfer stays at 20% against mem0's 30% — and the benchmark page reports it without rounding it away.
Related
The comparison that matters is your own
Install the server, record one decision, and ask for it back a week later. Every page here is evidence you can check, not a verdict you have to accept.