agentmemory v0.6.0

April 8, 2026 · View on GitHub

For results on the academic LongMemEval-S benchmark (ICLR 2025, 500 questions), see LONGMEMEVAL.md95.2% R@5, 98.6% R@10.

Date: 2026-03-18T07:44:43.397Z Dataset: 240 synthetic observations across 30 sessions (internal coding project) Queries: 20 labeled queries with ground-truth relevance Metric definitions: Recall@K (fraction of relevant docs in top K), Precision@K (fraction of top K that are relevant), NDCG@10 (ranking quality), MRR (position of first relevant result)

Head-to-Head Comparison

SystemRecall@5Recall@10Precision@5NDCG@10MRRLatencyTokens/query
Built-in (CLAUDE.md / grep)37.0%55.8%78.0%80.3%82.5%0.50ms22,610
Built-in (200-line MEMORY.md)27.4%37.8%63.0%56.4%65.5%0.16ms7,938
BM25-only43.8%55.9%95.0%82.7%95.5%0.17ms3,142
Dual-stream (BM25+Vector)42.4%58.6%90.0%84.7%95.4%0.71ms3,142
Triple-stream (BM25+Vector+Graph)36.8%58.0%87.0%81.7%87.9%1.02ms3,142

Why This Matters

Recall improvement: agentmemory triple-stream finds 58.0% of relevant memories at K=10 vs 55.8% for keyword grep (+4%) Token savings: agentmemory returns only the top 10 results (3,142 tokens) vs loading everything into context (22,610 tokens) — 86% reduction 200-line cap: Claude Code's MEMORY.md is capped at 200 lines. With 240 observations, 37.8% recall at K=10 — memories from later sessions are simply invisible.

Per-Query Breakdown (Triple-Stream)

QueryCategoryRecall@10NDCG@10MRRRelevantLatency
How did we set up authentication?semantic50.0%100.0%100.0%201.7ms
JWT token validation middlewareexact50.0%64.9%100.0%101.2ms
PostgreSQL connection issuessemantic33.3%100.0%100.0%301.0ms
Playwright test configurationexact100.0%100.0%100.0%101.1ms
Why did the production deployment fail?cross-session33.3%100.0%100.0%300.8ms
rate limiting implementationexact80.0%64.1%33.3%100.7ms
What security measures did we add?semantic33.3%100.0%100.0%300.7ms
database performance optimizationsemantic0.0%0.0%7.1%250.8ms
Kubernetes pod crash debuggingentity100.0%96.7%100.0%51.2ms
Docker containerization setupentity100.0%100.0%100.0%100.9ms
How does caching work in the app?semantic25.0%64.9%100.0%200.8ms
test infrastructure and factoriesexact50.0%64.9%100.0%100.7ms
What happened with the OAuth callback error?cross-session100.0%54.1%16.7%51.1ms
monitoring and observability setupsemantic66.7%100.0%100.0%150.8ms
Prisma ORM configurationentity25.7%93.6%100.0%351.8ms
CI/CD pipeline configurationexact20.0%64.9%100.0%251.0ms
memory leak debuggingcross-session100.0%100.0%100.0%50.7ms
API design decisionssemantic25.0%64.9%100.0%201.4ms
zod validation schemasentity66.7%100.0%100.0%150.7ms
infrastructure as code Terraformentity100.0%100.0%100.0%51.5ms

By Query Category

CategoryAvg Recall@10Avg NDCG@10Avg MRRQueries
exact60.0%71.8%86.7%5
semantic33.3%75.7%86.7%7
cross-session77.8%84.7%72.2%3
entity78.5%98.1%100.0%5

Context Window Analysis

The fundamental problem with built-in agent memory:

ObservationsMEMORY.md tokensagentmemory tokens (top 10)SavingsMEMORY.md reachable
24012,0003,14274%83%
50025,0003,14287%40%
1,00050,0003,14294%20%
5,000250,0003,14299%4%

At 240 observations (our dataset), MEMORY.md already hits its 200-line cap and loses access to the most recent 40 observations. At 1,000 observations, 80% of memories are invisible. agentmemory always searches the full corpus.


100 evaluations across 5 systems. Ground-truth labels assigned by concept matching against observation metadata.