twin memory

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.

Standingsours, 2026-10-07
BenchmarkScoreRank
LoCoMoOverall94.42 of 28
LongMemEval-SOverall93.53 of 19
LoCoMo-PlusOverall46.61 of 9
BEAM-128KMean of abilities0.4684 of 10
MemoryAgentBenchRULER-QA192.01 of 14
MemoryAgentBenchDetectiveQA66.23 of 14
MemoryAgentBenchFC single-hop94.01 of 16
MemoryAgentBenchFC multi-hop20.02 of 16
MuSiQueF156.21 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.

The benchmark →
SystemOverallSingle-hopMulti-hopTemporalOpen-domainAnswer modelJudgeQuestionsSource
Zep94.7––––gpt-5.4ownallEarlier notes
twin memory94.496.994.390.984.4gpt-4.1-minigpt-4o-mini ×31,540Our run
MindMemOS (MindSchema)94.096.894.090.382.3gpt-4.1-mininot statedcat. 1–4MindMemOS
Mnemis (k=30)93.997.192.990.779.2gpt-4.1-minigpt-4.1-mini1,540Mnemis
Mnemis93.396.291.890.382.3gpt-4.1-minigpt-4.1-mini1,540Mnemis
EverOS93.196.791.889.776.0gpt-4.1-mininot statedcat. 1–4MindMemOS
Mem0 (Sep 2026 algorithm)92.594.695.492.582.3not statednot statednot statedMem0 blog
EverMemOS92.396.191.189.770.8gpt-4.1-minigpt-4.1-mini1,540Mnemis
Mnemon91.7––––gpt-4.1-minigpt-4o-miniallEarlier notes
Mem0 (the post's baseline)91.692.393.392.876.0not statednot statednot statedMem0 blog
MemOS88.8––––gpt-4.1-minigpt-4o-miniallEarlier notes
Full context (no memory)87.5––––gpt-4.1-minigpt-4o-miniallEarlier notes
EMem-G85.390.579.680.871.7gpt-4.1-minigpt-4.1-mini1,540Mnemis
Zep85.290.881.977.375.0gpt-4.1-mininot statedcat. 1–4MindMemOS
MemOS80.885.479.475.164.6gpt-4.1-mininot statedcat. 1–4MindMemOS
Full context (no memory)80.686.977.274.256.6gpt-4.1-minigpt-4.1-mini1,540Mnemis
Nemori79.584.975.177.651.0gpt-4.1-minigpt-4.1-mini1,540Mnemis
MemOS75.881.167.575.255.9not statedLLM judgecat. 1–4MemOS eval
Letta74.0––––gpt-4o-miniGPT-4.1allEarlier notes
RAG73.876.564.976.667.7gpt-4.1-minigpt-4.1-mini1,540Mnemis
LangMem73.484.571.050.859.0gpt-4.1-minigpt-4.1-mini1,540Mnemis
Memobase72.073.164.781.253.1not statedLLM judgecat. 1–4MemOS eval
memU66.774.972.343.654.2gpt-4.1-mininot statedcat. 1–4MindMemOS
Mem066.371.468.256.947.9gpt-4.1-minigpt-4.1-mini1,540Mnemis
PREMem65.866.261.074.846.9gpt-4.1-minigpt-4.1-mini1,540Mnemis
MIRIX64.368.254.368.546.9not statedLLM judgecat. 1–4MemOS eval
Zep61.666.953.760.243.8gpt-4.1-minigpt-4.1-mini1,540Mnemis
Supermemory55.367.351.131.842.7not statedLLM judgecat. 1–4MemOS 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.

The benchmark →
SystemOverallKnowledge updateMulti-sessionSingle-session assistantSingle-session preferenceSingle-session userTemporal reasoningAnswer modelJudgeQuestionsSource
Mem0 (Sep 2026 algorithm)94.493.688.098.296.798.697.0not statednot stated500Mem0 blog
CortexDB93.897.490.2100.093.395.791.7Claude Opus 4.6GPT-4.1500CortexDB
twin memorystratified subset93.5100.091.3100.0100.0100.085.2gemini-3.6-flashgpt-4o-mini93Our run
Mem0 (the post's baseline)93.496.286.5100.096.797.193.2not statednot stated500Mem0 blog
Mnemis91.693.686.5100.0100.098.686.5gpt-4.1-minigpt-4.1-mini500Mnemis
ReMe89.491.084.2100.063.398.690.2not statedLLM judge500ReMe
MemOS89.2––––––gpt-4.1-minigpt-4o-mini500Earlier notes
EMem-G84.994.482.687.550.094.883.7gpt-4.1-minigpt-4.1-mini500Mnemis
Mnemon83.8––––––gpt-4.1-minigpt-4o-mini500Earlier notes
EverMemOS82.087.278.578.696.7100.071.2gpt-4.1-minigpt-4.1-mini500Mnemis
Mem080.887.266.996.486.794.375.9gpt-4.1-minigpt-4.1-mini500Mnemis
MemOS77.874.370.767.996.795.777.4not statedLLM judge500MemOS eval
Nemori74.679.555.692.986.790.072.2gpt-4.1-minigpt-4.1-mini500Mnemis
RAG72.680.854.994.686.782.967.7gpt-4.1-minigpt-4.1-mini500Mnemis
Memobase72.489.766.923.280.092.975.9not statedLLM judge500MemOS eval
Zep71.283.357.980.456.792.962.4gpt-4ogpt-4o500Zep paper
Full context (no memory)65.676.951.198.216.785.760.2gpt-4.1-minigpt-4.1-mini500Mnemis
Full context (no memory)60.278.244.394.620.081.445.1gpt-4ogpt-4o500Zep paper
Supermemory58.455.152.658.990.085.744.4not statedLLM judge500MemOS 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.

The benchmark →
SystemOverallCausalStateValueGoalAnswer modelJudgeQuestionsSource
twin memory46.659.447.045.035.0gpt-4.1-miniGemini-2.5-Flash401Our run
Full context (no memory)45.7––––Gemini-2.5-ProGemini-2.5-FlashallLoCoMo-Plus
Full context (no memory)44.6––––Gemini-2.5-FlashGemini-2.5-FlashallLoCoMo-Plus
Full context (no memory)43.6––––GPT-4.1Gemini-2.5-FlashallLoCoMo-Plus
SeCom42.6––––not statedGemini-2.5-FlashallLoCoMo-Plus
A-Mem42.4––––not statedGemini-2.5-FlashallLoCoMo-Plus
Full context (no memory)41.9––––GPT-4oGemini-2.5-FlashallLoCoMo-Plus
Mem041.4––––not statedGemini-2.5-FlashallLoCoMo-Plus
RAG (text-embedding-3-large)29.8––––not statedGemini-2.5-FlashallLoCoMo-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.

The benchmark →
SystemMeanInformation extractionMulti-session reasoningKnowledge updateTemporal reasoningEvent orderingContradiction resolutionAbstentionPreference followingInstruction followingSummarizationAnswer modelJudgeQuestionsSource
Exabase M-10.769––––––––––Gemini 3 Flashnot stated100KExabase
Hindsight0.734––––––––––not statednot stated100KHindsight
Honcho0.63––––––––––not statednot stated100KHindsight
twin memory0.4680.710.410.490.340.20.330.530.710.570.39gpt-4.1-miniBEAM rubric, gpt-4.1-mini400Our run
LIGHT (BEAM's own)0.360.520.350.450.190.170.030.60.630.410.24Llama-4-MaverickBEAM rubric100KBEAM
LIGHT (BEAM's own)0.350.540.370.380.160.180.030.580.630.40.2GPT-4.1-nanoBEAM rubric100KBEAM
RAG0.320.390.230.350.280.160.030.80.510.380.11Llama-4-MaverickBEAM rubric100KBEAM
RAG0.310.360.260.380.130.170.020.80.550.350.08GPT-4.1-nanoBEAM rubric100KBEAM
Full context (no memory)0.240.510.150.30.10.190.030.20.450.410.07Llama-4-MaverickBEAM rubric100KBEAM
Full context (no memory)0.240.270.180.280.110.180.010.480.440.430.03GPT-4.1-nanoBEAM rubric100KBEAM
  • 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.

The benchmark →
SystemRULER-QA1ClassificationDetectiveQAFC single-hopFC multi-hopAnswer modelJudgeQuestionsSource
Long context72.087.677.560.05.0GPT-4oSubEM / accuracyMAB's setsMAB
Long context77.089.471.843.02.0Claude-3.7-SonnetSubEM / accuracyMAB's setsMAB
Long context83.075.656.336.05.0GPT-4.1-miniSubEM / accuracyMAB's setsMAB
Long context87.084.059.230.03.0Gemini-2.0-FlashSubEM / accuracyMAB's setsMAB
HippoRAG-v276.061.457.754.05.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
BM2566.075.452.148.03.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
MemoRAG29.077.050.721.07.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
MemGPT41.067.642.328.03.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
MIRIX62.038.440.814.02.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
Zep44.062.828.27.03.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
Cognee31.035.429.628.03.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
Mem025.032.436.618.02.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
GraphRAG47.039.839.414.02.0GPT-4o-miniSubEM / accuracyMAB's setsMAB
MindMemOS (+ Dreaming)–––92.025.0gpt-5-miniSubEM / accuracyFC onlyMindMemOS
MindMemOS (+ Dreaming)–––73.818.0gpt-4o-miniSubEM / accuracyFC onlyMindMemOS
twin memory92.095.0 / 84.066.294.020.0gpt-4.1-miniSubEM / accuracy100 each; DetectiveQA 71Our 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.

The benchmark →
SystemF12-hop EM / F13-hop EM / F14-hop EM / F1EMAnswer modelJudgeQuestionsSource
twin memoryearlier engine version56.255.8 / 68.238.1 / 50.123.1 / 30.444.8gpt-4.1-miniEM / F1290Our run
LineageRAG55.8–––42.7GPT-4o-miniEM / F11,000Earlier notes
PropRAG53.9––––Llama-3.3-70BF11,000Earlier notes
HippoRAG 249.3–––35.0GPT-4o-miniEM / F11,000HippoRAG 2
HippoRAG 248.6––––Llama-3.3-70BF11,000HippoRAG 2
NV-Embed-v2 (dense)46.0–––32.8GPT-4o-miniEM / F11,000Earlier notes
NV-Embed-v2 (dense)45.7––––Llama-3.3-70BF11,000HippoRAG 2
GritLM-7B (dense)44.8––––Llama-3.3-70BF11,000HippoRAG 2
GraphRAG38.5––––Llama-3.3-70BF11,000HippoRAG 2
HippoRAG35.1––––Llama-3.3-70BF11,000HippoRAG 2
RAPTOR28.9––––Llama-3.3-70BF11,000HippoRAG 2
No retrieval26.1––––Llama-3.3-70BF11,000HippoRAG 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.

BenchmarkAnswer modelAnswer promptJudgeContext, tokens
LoCoMogpt-4.1-miniEverMemOS's, verbatim: structured chain of thought over the memories, then a short final answergpt-4o-mini, majority of three (LoCoMo's)1,851
LongMemEval-Sgemini-3.6-flashEverMemOS's, verbatim: chain of thought plus mandatory counting and time-span rulesgpt-4o-mini with the EverMemOS prompt, one leniency clause per question type1,843
LoCoMo-Plusgpt-4.1-miniThe paper's, verbatim: our search result, then the trigger; respond showing awareness of earlier contextGemini-2.5-Flash, the paper's4,035
BEAM-128Kgpt-4.1-miniBEAM's, verbatim: answer only from the context, direct and concise, no explanationBEAM's rubric (0, 0.5 or 1 per nugget) on gpt-4.1-mini; event ordering by tau_norm4,380
MemoryAgentBenchgpt-4.1-miniMAB's own templates, verbatim; facts fed one at a time in serial orderSubEM / accuracy, the benchmark's metrics and answer lengths954–3,681
MuSiQuegpt-4.1-miniHippoRAG 2's, verbatim, plus one line asking for the bare answer (EM scoring)EM and token F11,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.

BenchmarkHarness
LoCoMoscripts/locomo
LongMemEval-Sscripts/lme
LoCoMo-Plusscripts/locomo_plus
BEAM-128Kscripts/beam
MemoryAgentBenchscripts/mab
MuSiQuescripts/musique

Run it on your own users' history.

10,000 events a month free. No card needed.