Standings, with the method published.
Six public memory benchmarks. Our scores are read from saved run outputs; every other row is quoted from its own source, linked beside it.
A different answer model is a different test. Read rows that differ from ours in answer model or judge as context, not a race. Where we are behind, the tables say so.
| Benchmark | Score | Rank |
|---|---|---|
| LoCoMo | 94.4 | 2 of 28 |
| LongMemEval-S | 93.5 | 3 of 19 |
| LoCoMo-Plus | 46.6 | 1 of 9 |
| BEAM-128K | 0.468 | 4 of 10 |
| MemoryAgentBench | 92.0 | 1 of 14 |
| MemoryAgentBench | 66.2 | 3 of 14 |
| MemoryAgentBench | 94.0 | 1 of 16 |
| MemoryAgentBench | 20.0 | 2 of 16 |
| MuSiQue | 56.2 | 1 of 12 |
LoCoMo
Ten very long conversations between two people, each running to hundreds of turns over many sessions. Questions ask for one fact, a fact joined across sessions, a date worked out from relative time, or outside knowledge applied to what was said.
Ours: 94.4, 2nd of 28 rows.
| System | Overall | Single-hop | Multi-hop | Temporal | Open-domain | Answer model | Judge | Questions | Source |
|---|---|---|---|---|---|---|---|---|---|
| Zep | 94.7 | – | – | – | – | gpt-5.4 | own | all | Earlier notes |
| twin memory | 94.4 | 96.9 | 94.3 | 90.9 | 84.4 | gpt-4.1-mini | gpt-4o-mini ×3 | 1,540 | Our run |
| MindMemOS (MindSchema) | 94.0 | 96.8 | 94.0 | 90.3 | 82.3 | gpt-4.1-mini | not stated | cat. 1–4 | MindMemOS |
| Mnemis (k=30) | 93.9 | 97.1 | 92.9 | 90.7 | 79.2 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| Mnemis | 93.3 | 96.2 | 91.8 | 90.3 | 82.3 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| EverOS | 93.1 | 96.7 | 91.8 | 89.7 | 76.0 | gpt-4.1-mini | not stated | cat. 1–4 | MindMemOS |
| Mem0 (Sep 2026 algorithm) | 92.5 | 94.6 | 95.4 | 92.5 | 82.3 | not stated | not stated | not stated | Mem0 blog |
| EverMemOS | 92.3 | 96.1 | 91.1 | 89.7 | 70.8 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| Mnemon | 91.7 | – | – | – | – | gpt-4.1-mini | gpt-4o-mini | all | Earlier notes |
| Mem0 (the post's baseline) | 91.6 | 92.3 | 93.3 | 92.8 | 76.0 | not stated | not stated | not stated | Mem0 blog |
| MemOS | 88.8 | – | – | – | – | gpt-4.1-mini | gpt-4o-mini | all | Earlier notes |
| Full context (no memory) | 87.5 | – | – | – | – | gpt-4.1-mini | gpt-4o-mini | all | Earlier notes |
| EMem-G | 85.3 | 90.5 | 79.6 | 80.8 | 71.7 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| Zep | 85.2 | 90.8 | 81.9 | 77.3 | 75.0 | gpt-4.1-mini | not stated | cat. 1–4 | MindMemOS |
| MemOS | 80.8 | 85.4 | 79.4 | 75.1 | 64.6 | gpt-4.1-mini | not stated | cat. 1–4 | MindMemOS |
| Full context (no memory) | 80.6 | 86.9 | 77.2 | 74.2 | 56.6 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| Nemori | 79.5 | 84.9 | 75.1 | 77.6 | 51.0 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| MemOS | 75.8 | 81.1 | 67.5 | 75.2 | 55.9 | not stated | LLM judge | cat. 1–4 | MemOS eval |
| Letta | 74.0 | – | – | – | – | gpt-4o-mini | GPT-4.1 | all | Earlier notes |
| RAG | 73.8 | 76.5 | 64.9 | 76.6 | 67.7 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| LangMem | 73.4 | 84.5 | 71.0 | 50.8 | 59.0 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| Memobase | 72.0 | 73.1 | 64.7 | 81.2 | 53.1 | not stated | LLM judge | cat. 1–4 | MemOS eval |
| memU | 66.7 | 74.9 | 72.3 | 43.6 | 54.2 | gpt-4.1-mini | not stated | cat. 1–4 | MindMemOS |
| Mem0 | 66.3 | 71.4 | 68.2 | 56.9 | 47.9 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| PREMem | 65.8 | 66.2 | 61.0 | 74.8 | 46.9 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| MIRIX | 64.3 | 68.2 | 54.3 | 68.5 | 46.9 | not stated | LLM judge | cat. 1–4 | MemOS eval |
| Zep | 61.6 | 66.9 | 53.7 | 60.2 | 43.8 | gpt-4.1-mini | gpt-4.1-mini | 1,540 | Mnemis |
| Supermemory | 55.3 | 67.3 | 51.1 | 31.8 | 42.7 | not stated | LLM judge | cat. 1–4 | MemOS eval |
- LoCoMo's own answer key caps an honest system near 93.6 (the dial481/locomo-audit), so every score above it, ours included, partly rewards matching the key's errors.
- Category 5 (adversarial) is left out on every row.
- The one row above ours answers with gpt-5.4 and its own judge. It and the other rows marked “Earlier notes” come from our research notes and were not re-checked against their source for this table.
LongMemEval-S
Each question comes with its own chat history of about 115,000 tokens between a user and an assistant. Six types test following an update, joining sessions, recalling what the assistant said, applying a stated preference, pulling out a detail, and reasoning about time.
Ours: 93.5, 3rd of 19 rows.
| System | Overall | Knowledge update | Multi-session | Single-session assistant | Single-session preference | Single-session user | Temporal reasoning | Answer model | Judge | Questions | Source |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Mem0 (Sep 2026 algorithm) | 94.4 | 93.6 | 88.0 | 98.2 | 96.7 | 98.6 | 97.0 | not stated | not stated | 500 | Mem0 blog |
| CortexDB | 93.8 | 97.4 | 90.2 | 100.0 | 93.3 | 95.7 | 91.7 | Claude Opus 4.6 | GPT-4.1 | 500 | CortexDB |
| twin memory | 93.5 | 100.0 | 91.3 | 100.0 | 100.0 | 100.0 | 85.2 | gemini-3.6-flash | gpt-4o-mini | 93 | Our run |
| Mem0 (the post's baseline) | 93.4 | 96.2 | 86.5 | 100.0 | 96.7 | 97.1 | 93.2 | not stated | not stated | 500 | Mem0 blog |
| Mnemis | 91.6 | 93.6 | 86.5 | 100.0 | 100.0 | 98.6 | 86.5 | gpt-4.1-mini | gpt-4.1-mini | 500 | Mnemis |
| ReMe | 89.4 | 91.0 | 84.2 | 100.0 | 63.3 | 98.6 | 90.2 | not stated | LLM judge | 500 | ReMe |
| MemOS | 89.2 | – | – | – | – | – | – | gpt-4.1-mini | gpt-4o-mini | 500 | Earlier notes |
| EMem-G | 84.9 | 94.4 | 82.6 | 87.5 | 50.0 | 94.8 | 83.7 | gpt-4.1-mini | gpt-4.1-mini | 500 | Mnemis |
| Mnemon | 83.8 | – | – | – | – | – | – | gpt-4.1-mini | gpt-4o-mini | 500 | Earlier notes |
| EverMemOS | 82.0 | 87.2 | 78.5 | 78.6 | 96.7 | 100.0 | 71.2 | gpt-4.1-mini | gpt-4.1-mini | 500 | Mnemis |
| Mem0 | 80.8 | 87.2 | 66.9 | 96.4 | 86.7 | 94.3 | 75.9 | gpt-4.1-mini | gpt-4.1-mini | 500 | Mnemis |
| MemOS | 77.8 | 74.3 | 70.7 | 67.9 | 96.7 | 95.7 | 77.4 | not stated | LLM judge | 500 | MemOS eval |
| Nemori | 74.6 | 79.5 | 55.6 | 92.9 | 86.7 | 90.0 | 72.2 | gpt-4.1-mini | gpt-4.1-mini | 500 | Mnemis |
| RAG | 72.6 | 80.8 | 54.9 | 94.6 | 86.7 | 82.9 | 67.7 | gpt-4.1-mini | gpt-4.1-mini | 500 | Mnemis |
| Memobase | 72.4 | 89.7 | 66.9 | 23.2 | 80.0 | 92.9 | 75.9 | not stated | LLM judge | 500 | MemOS eval |
| Zep | 71.2 | 83.3 | 57.9 | 80.4 | 56.7 | 92.9 | 62.4 | gpt-4o | gpt-4o | 500 | Zep paper |
| Full context (no memory) | 65.6 | 76.9 | 51.1 | 98.2 | 16.7 | 85.7 | 60.2 | gpt-4.1-mini | gpt-4.1-mini | 500 | Mnemis |
| Full context (no memory) | 60.2 | 78.2 | 44.3 | 94.6 | 20.0 | 81.4 | 45.1 | gpt-4o | gpt-4o | 500 | Zep paper |
| Supermemory | 58.4 | 55.1 | 52.6 | 58.9 | 90.0 | 85.7 | 44.4 | not stated | LLM judge | 500 | MemOS eval |
- Ours is a stratified subset: 100 questions drawn across the six types, less the 7 abstention questions, so 93 against the 500 of every published row. Compare per type with care.
- Ours answers with gemini-3.6-flash, the harness's reader since its first run; no published row uses it.
- Mem0's rows state neither answer model nor judge.
LoCoMo-Plus
Questions whose cue is implicit: a later message relates to something said earlier by cause, state, value or goal, and the reply must show it remembered without being asked directly.
Ours: 46.6, 1st of 9 rows.
| System | Overall | Causal | State | Value | Goal | Answer model | Judge | Questions | Source |
|---|---|---|---|---|---|---|---|---|---|
| twin memory | 46.6 | 59.4 | 47.0 | 45.0 | 35.0 | gpt-4.1-mini | Gemini-2.5-Flash | 401 | Our run |
| Full context (no memory) | 45.7 | – | – | – | – | Gemini-2.5-Pro | Gemini-2.5-Flash | all | LoCoMo-Plus |
| Full context (no memory) | 44.6 | – | – | – | – | Gemini-2.5-Flash | Gemini-2.5-Flash | all | LoCoMo-Plus |
| Full context (no memory) | 43.6 | – | – | – | – | GPT-4.1 | Gemini-2.5-Flash | all | LoCoMo-Plus |
| SeCom | 42.6 | – | – | – | – | not stated | Gemini-2.5-Flash | all | LoCoMo-Plus |
| A-Mem | 42.4 | – | – | – | – | not stated | Gemini-2.5-Flash | all | LoCoMo-Plus |
| Full context (no memory) | 41.9 | – | – | – | – | GPT-4o | Gemini-2.5-Flash | all | LoCoMo-Plus |
| Mem0 | 41.4 | – | – | – | – | not stated | Gemini-2.5-Flash | all | LoCoMo-Plus |
| RAG (text-embedding-3-large) | 29.8 | – | – | – | – | not stated | Gemini-2.5-Flash | all | LoCoMo-Plus |
- Score: the judge's 1, 0.5 or 0 per reply, averaged. The paper reports one score per system, with no split by relation.
- Our judge is the paper's (Gemini-2.5-Flash); our answer model, gpt-4.1-mini, is not one the paper ran.
BEAM-128K
Synthetic conversations of about 128,000 tokens, probed on ten abilities: pulling out facts, reasoning across sessions, following updates and contradictions, ordering events, abstaining, following earlier preferences and instructions, and summarising. Answers are graded against a rubric of nuggets.
Ours: 0.468, 4th of 10 rows.
| System | Mean | Information extraction | Multi-session reasoning | Knowledge update | Temporal reasoning | Event ordering | Contradiction resolution | Abstention | Preference following | Instruction following | Summarization | Answer model | Judge | Questions | Source |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Exabase M-1 | 0.769 | – | – | – | – | – | – | – | – | – | – | Gemini 3 Flash | not stated | 100K | Exabase |
| Hindsight | 0.734 | – | – | – | – | – | – | – | – | – | – | not stated | not stated | 100K | Hindsight |
| Honcho | 0.63 | – | – | – | – | – | – | – | – | – | – | not stated | not stated | 100K | Hindsight |
| twin memory | 0.468 | 0.71 | 0.41 | 0.49 | 0.34 | 0.2 | 0.33 | 0.53 | 0.71 | 0.57 | 0.39 | gpt-4.1-mini | BEAM rubric, gpt-4.1-mini | 400 | Our run |
| LIGHT (BEAM's own) | 0.36 | 0.52 | 0.35 | 0.45 | 0.19 | 0.17 | 0.03 | 0.6 | 0.63 | 0.41 | 0.24 | Llama-4-Maverick | BEAM rubric | 100K | BEAM |
| LIGHT (BEAM's own) | 0.35 | 0.54 | 0.37 | 0.38 | 0.16 | 0.18 | 0.03 | 0.58 | 0.63 | 0.4 | 0.2 | GPT-4.1-nano | BEAM rubric | 100K | BEAM |
| RAG | 0.32 | 0.39 | 0.23 | 0.35 | 0.28 | 0.16 | 0.03 | 0.8 | 0.51 | 0.38 | 0.11 | Llama-4-Maverick | BEAM rubric | 100K | BEAM |
| RAG | 0.31 | 0.36 | 0.26 | 0.38 | 0.13 | 0.17 | 0.02 | 0.8 | 0.55 | 0.35 | 0.08 | GPT-4.1-nano | BEAM rubric | 100K | BEAM |
| Full context (no memory) | 0.24 | 0.51 | 0.15 | 0.3 | 0.1 | 0.19 | 0.03 | 0.2 | 0.45 | 0.41 | 0.07 | Llama-4-Maverick | BEAM rubric | 100K | BEAM |
| Full context (no memory) | 0.24 | 0.27 | 0.18 | 0.28 | 0.11 | 0.18 | 0.01 | 0.48 | 0.44 | 0.43 | 0.03 | GPT-4.1-nano | BEAM rubric | 100K | BEAM |
- Exabase, Hindsight and Honcho publish one percentage, with no per-ability split and no judge named; shown here on the paper's 0–1 scale. All three score above us.
- BEAM's 128K split is the folder named 100K. Ours: chats 1–20, every probe, 400 questions.
MemoryAgentBench
Facts arrive one chunk at a time, as an agent would see them. Four skills: accurate retrieval (RULER-QA1), learning a task from examples (classification), understanding a whole book (DetectiveQA), and conflict resolution, where a newer fact overrides an older one (fact consolidation, FC, over 262k tokens).
Ours: 92.0 on RULER-QA1, 1st of 14 rows.
| System | RULER-QA1 | Classification | DetectiveQA | FC single-hop | FC multi-hop | Answer model | Judge | Questions | Source |
|---|---|---|---|---|---|---|---|---|---|
| Long context | 72.0 | 87.6 | 77.5 | 60.0 | 5.0 | GPT-4o | SubEM / accuracy | MAB's sets | MAB |
| Long context | 77.0 | 89.4 | 71.8 | 43.0 | 2.0 | Claude-3.7-Sonnet | SubEM / accuracy | MAB's sets | MAB |
| Long context | 83.0 | 75.6 | 56.3 | 36.0 | 5.0 | GPT-4.1-mini | SubEM / accuracy | MAB's sets | MAB |
| Long context | 87.0 | 84.0 | 59.2 | 30.0 | 3.0 | Gemini-2.0-Flash | SubEM / accuracy | MAB's sets | MAB |
| HippoRAG-v2 | 76.0 | 61.4 | 57.7 | 54.0 | 5.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| BM25 | 66.0 | 75.4 | 52.1 | 48.0 | 3.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| MemoRAG | 29.0 | 77.0 | 50.7 | 21.0 | 7.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| MemGPT | 41.0 | 67.6 | 42.3 | 28.0 | 3.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| MIRIX | 62.0 | 38.4 | 40.8 | 14.0 | 2.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| Zep | 44.0 | 62.8 | 28.2 | 7.0 | 3.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| Cognee | 31.0 | 35.4 | 29.6 | 28.0 | 3.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| Mem0 | 25.0 | 32.4 | 36.6 | 18.0 | 2.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| GraphRAG | 47.0 | 39.8 | 39.4 | 14.0 | 2.0 | GPT-4o-mini | SubEM / accuracy | MAB's sets | MAB |
| MindMemOS (+ Dreaming) | – | – | – | 92.0 | 25.0 | gpt-5-mini | SubEM / accuracy | FC only | MindMemOS |
| MindMemOS (+ Dreaming) | – | – | – | 73.8 | 18.0 | gpt-4o-mini | SubEM / accuracy | FC only | MindMemOS |
| twin memory | 92.0 | 95.0 / 84.0 | 66.2 | 94.0 | 20.0 | gpt-4.1-mini | SubEM / accuracy | 100 each; DetectiveQA 71 | Our run |
- The benchmark reports each task apart and no overall score, so ranks here are per task.
- Classification: the paper's figure averages five sets; ours shows BANKING77 / CLINC150, the two we ran. It is not ranked.
- FC multi-hop: about a third of its gold answers depend on a fact a later one overwrote, so applying every update is marked wrong on those.
- The paper's agent and RAG rows answer with GPT-4o-mini; ours with gpt-4.1-mini, at temperature 0.7 as the templates set it.
MuSiQue
Multi-hop questions over Wikipedia passages, each needing two to four facts chained together, asked against one pooled corpus of 11,656 passages. Scored by exact match (EM) and token F1.
Ours: 56.2, 1st of 12 rows.
| System | F1 | 2-hop EM / F1 | 3-hop EM / F1 | 4-hop EM / F1 | EM | Answer model | Judge | Questions | Source |
|---|---|---|---|---|---|---|---|---|---|
| twin memory | 56.2 | 55.8 / 68.2 | 38.1 / 50.1 | 23.1 / 30.4 | 44.8 | gpt-4.1-mini | EM / F1 | 290 | Our run |
| LineageRAG | 55.8 | – | – | – | 42.7 | GPT-4o-mini | EM / F1 | 1,000 | Earlier notes |
| PropRAG | 53.9 | – | – | – | – | Llama-3.3-70B | F1 | 1,000 | Earlier notes |
| HippoRAG 2 | 49.3 | – | – | – | 35.0 | GPT-4o-mini | EM / F1 | 1,000 | HippoRAG 2 |
| HippoRAG 2 | 48.6 | – | – | – | – | Llama-3.3-70B | F1 | 1,000 | HippoRAG 2 |
| NV-Embed-v2 (dense) | 46.0 | – | – | – | 32.8 | GPT-4o-mini | EM / F1 | 1,000 | Earlier notes |
| NV-Embed-v2 (dense) | 45.7 | – | – | – | – | Llama-3.3-70B | F1 | 1,000 | HippoRAG 2 |
| GritLM-7B (dense) | 44.8 | – | – | – | – | Llama-3.3-70B | F1 | 1,000 | HippoRAG 2 |
| GraphRAG | 38.5 | – | – | – | – | Llama-3.3-70B | F1 | 1,000 | HippoRAG 2 |
| HippoRAG | 35.1 | – | – | – | – | Llama-3.3-70B | F1 | 1,000 | HippoRAG 2 |
| RAPTOR | 28.9 | – | – | – | – | Llama-3.3-70B | F1 | 1,000 | HippoRAG 2 |
| No retrieval | 26.1 | – | – | – | – | Llama-3.3-70B | F1 | 1,000 | HippoRAG 2 |
- Ours ran on an earlier version of the engine, before records were read from what is added, and has not been re-run since.
- 290 questions (the first in file order) against the 1,000 of published rows.
- Ranked on F1, since not every row reports EM. Three rows come from earlier notes not re-checked against their source.
Method
Each benchmark’s history is added to a fresh store, read once into dated facts, then asked one question at a time. The answer model sees only what one search returns; the column on the right is how many tokens that was, on average. Runs were measured on 2026-10-07, MuSiQue earlier.
Prompts are each benchmark’s own, or the named system’s, copied verbatim. Category 5 of LoCoMo and the abstention questions of our LongMemEval subset are left out, as the tables say.
| Benchmark | Answer model | Answer prompt | Judge | Context, tokens |
|---|---|---|---|---|
| LoCoMo | gpt-4.1-mini | EverMemOS's, verbatim: structured chain of thought over the memories, then a short final answer | gpt-4o-mini, majority of three (LoCoMo's) | 1,851 |
| LongMemEval-S | gemini-3.6-flash | EverMemOS's, verbatim: chain of thought plus mandatory counting and time-span rules | gpt-4o-mini with the EverMemOS prompt, one leniency clause per question type | 1,843 |
| LoCoMo-Plus | gpt-4.1-mini | The paper's, verbatim: our search result, then the trigger; respond showing awareness of earlier context | Gemini-2.5-Flash, the paper's | 4,035 |
| BEAM-128K | gpt-4.1-mini | BEAM's, verbatim: answer only from the context, direct and concise, no explanation | BEAM's rubric (0, 0.5 or 1 per nugget) on gpt-4.1-mini; event ordering by tau_norm | 4,380 |
| MemoryAgentBench | gpt-4.1-mini | MAB's own templates, verbatim; facts fed one at a time in serial order | SubEM / accuracy, the benchmark's metrics and answer lengths | 954–3,681 |
| MuSiQue | gpt-4.1-mini | HippoRAG 2's, verbatim, plus one line asking for the bare answer (EM scoring) | EM and token F1 | 1,092 |
Rerunning a number
Each benchmark has a harness in the twin-memory repository, which builds a store from the benchmark’s history, asks every question and writes the answers, judgements and evidence counts to a results file. The numbers on this page are read from those files, not typed.
comparison/ holds the exact question sets and settings, so another memory can be run on the same footing. The repository is private today; ask us for the run outputs.
| Benchmark | Harness |
|---|---|
| LoCoMo | scripts/locomo |
| LongMemEval-S | scripts/lme |
| LoCoMo-Plus | scripts/locomo_plus |
| BEAM-128K | scripts/beam |
| MemoryAgentBench | scripts/mab |
| MuSiQue | scripts/musique |
Run it on your own users' history.
10,000 events a month free. No card needed.