©2026 adebench · adecubedbuilt 2026-10-06 from the reports in the repo

ADEBENCH — agent memory benchmark and leaderboard

A benchmark for agent memory. It scores the text a memory actually delivers to the model, on one golden set, with no LLM judge.

Leaderboard · synthetic golden set
#MemoryCore · 55Full Chars per answerWrite → visibleReached through
1
Dakera
REST memory with supersession edges and session-scoped recall
94%
51.9 / 55 · 1 run
97%
96.9 / 100
304 1.1 s REST
2
ADE Brain
episodes, cards, a fact layer that retires a value when a newer one contradicts it
the memory of adebench's author, and its code is private: nobody else can rerun this row. It runs on the same set and rules as every other memory
89%
48.8 / 55 · same in 5 runs
94%
93.8 / 100
1,239 100 ms REST
3=
Aionforge
bi-temporal graph in Rust, hybrid recall, explicit forgetting, MCP only
76%
41.8 / 55 · 1 run
80%
51.8 / 65
419 483 ms MCP
3=
supermemory
memory and context engine: an LLM agent extracts and versions memory entries from documents
74%
40.5 / 55 · 38.1–43.0 · 5 runs
78%
50.5 / 65 · 48.1–52.9
405 2.1 s REST
3=
gbrain
entity pages, chronicle, remember/recall/forget, hybrid search
73%
40.4 / 55 · same in 3 runs
84%
75.4 / 90
1,321 2.3 s CLI / MCP
5
Hindsight
world facts, experiences and observations; LLM extraction on retain; per-bank MCP
66%
36.3 / 55 · 1 run
66%
36.2 / 55
3,225 — MCP
6=
agentmemory
persistent memory for coding agents: BM25 plus vectors, supersession by overlap, 54 MCP tools
65%
35.5 / 55 · same in 3 runs
66%
42.6 / 65
6,426 26 ms MCP / REST
6=
agentmemory (Gemini)
the same memory with its LLM features on: compression, graph extraction, consolidation
65%
35.5 / 55 · same in 5 runs
66%
42.6 / 65
6,338 253 ms MCP / REST
6=
engram
one Go binary with SQLite full-text search, memory for coding agents over MCP
64%
35.2 / 55 · same in 3 runs
70%
45.2 / 65
4,314 34 ms MCP / CLI
6=
Memoose
local knowledge graph in SQLite, triples plus lexical chunks, 26 MCP tools
63%
34.6 / 55 · same in 3 runs
76%
68.3 / 90
1,760 2.1 s CLI / SQLite
7=
cognee
knowledge graph plus vector index built from what is added (cognify)
63%
34.4 / 55 · 33.7–35.4 · 5 runs
68%
44.4 / 65 · 43.7–45.4
4,781 921 ms Python library
7=
mem0
memory layer for agents: an LLM extracts facts from each exchange, hybrid vector and BM25 search
62%
34.2 / 55 · 30.4–35.5 · 5 runs
68%
44.2 / 65 · 40.4–45.4
2,311 511 ms Python library
12=
memU
personal memory kept as wiki pages, written by an external agent on memU's own jobs
59%
32.2 / 55 · same in 5 runs
65%
42.1 / 65
3,543 532 ms CLI / Python library
12=
Nemp
Claude Code plugin: a JSON file in the project, and the model itself as the engine
58%
32.1 / 55 · 1 run
56%
36.4 / 65
29,530 70.5 s inside Claude Code
12=
Jev-Mem
graph memory whose decisions are taken by a small System-One model
58%
31.9 / 55 · 28.9–33.0 · 6 runs
64%
41.9 / 65 · 39.0–42.9
943 3.4 s Python library
12=
TokenMizer
an OpenAI-compatible proxy that turns the conversation into a graph of tasks, decisions, files and errors, replayed as a resume block
57%
25.6 / 45 · same in 5 runs · no time
57%
25.6 / 45
1,271 — HTTP proxy / MCP

Core is what every memory can be measured on, a write and a read through the door: door 25, updates 10, time 10, abstention 10. The ranking is on it. Full adds what a memory has behind the door (cards, live state, file search, graph), over the points it could be measured on. Chars per answer is what the model receives for one question: the same score at 300 characters and at 20,000 is not the same memory. Write → visible is how long a value just written takes to reach the door. Scores are the mean of the runs kept for each memory, with their range; two memories closer than the wider of their ranges (never less than one probe, 1.8 points) share a rank, marked =, and no memory ranks above one with a higher mean.

On their own data
MemoryScoreProbesRun
ADE Brain
the Brain on its owner's real memory: 165 probes written on that memory, private
98%
98.0 / 100
165
set 9a276b567d
2026-09-28
adebench 0.2.15

The golden set is small on purpose, so it runs anywhere. The bench was built for something else: a memory measured on its owner's data, with probes written on the facts it really holds, rerun after every change. Not comparable across memories, and the number that tells an owner whether a change helped. Totals only: the probes are the owner's facts.

Method

Eight sections: door, cards, updates, time, live state, abstention, file search, graph. A point is earned when the expected words are in the text the model receives; a retired value next to the current one is a failure.

Rules in the README →

Run it

No dependencies. Every adapter and importer is in the repository, and each memory's page names the configuration that produced its numbers.

python -m adebench --help

Your memory

Write your probes, point the harness at your memory, send the totals with a pull request. The set's hash ties a number to the probes that produced it.

GitHub

adebench is MIT. Adapters, golden set, reports: adecubed/adebench. Each memory's author is told when its results go up; if we ran it wrong, we fix it and rerun.