Harness the Memory: A Holistic Evaluation of Memory Substrates in Memory Agents
Organizations: University of Illinois Chicago · University of Washington · McGill University · MBZUAI ·
Abstract
Memory is becoming core infrastructure for long-horizon LLM agents, yet existing evaluations offer limited guidance on which memory substrate, namely the underlying medium in which memory is represented and stored, should be used under different operating regimes. We present a controlled harness evaluation of memory substrates for memory-augmented agents, covering dense and sparse indices, text records, structural stores, hierarchical stores, refinement-based memories, parametric updates, and activation-compatible context mechanisms. Across three backbone models and four benchmark suites spanning user-centric question answering and agent-centric decision-making, we instrument 26 performance and efficiency metrics under a unified harness. Our results show that no single substrate consistently dominates: broad retrieval benefits long-context factual QA, while excessive retrieval can harm sequential decision-making by shifting attention away from action-critical context. Scalability introduces a further routing axis, as substrates that perform well at moderate history lengths can become costly or brittle at longer horizons. These findings motivate substrate routing as a necessary component of adaptive agent memory systems and provide empirical guidance for designing efficient, reliable, and regime-aware long-term memory for LLM agents. Code will be made available upon acceptance.
Figures & tables
| LoCoMo | LME-S | MAB LRU | MAB TTL | MAB CR | ||||||||
| Model | Sub. | Family | P4 | P4 | P4 | P4 | P4 | |||||
| Qwen3-8B | External | |||||||||||
| M1 | Flat | 0.540 | 0.77 | 0.478 | 7.30 | 0.578 | 9.94 | 0.560 | 0.92 | 0.270 | 1.65 | |
| M2 | Flat | 0.470 | 0.33 | 0.480 | 1.75 | 0.620 | 3.23 | 0.470 | 0.33 | 0.270 | 1.39 | |
| M3 | Text | 0.562 | 4.18 | 0.495 | 55.58 | 0.563 | 146.65 | 0.640 | 27.15 | 0.240 | 2.30 | |
| M4 | Struct | 0.435 | 6.36 | 0.430 | 225.67 | 0.493 | 274.06 | 0.480 | 12.65 | 0.270 | 1.50 | |
| ALFWorld-unseen | BigCodeBench-Hard | ||||||||||
| Model | Sub. | Family | TSR | Pass@1 | |||||||
| Qwen3-8B | - | NoMem | 5.7 | 12.2 | 13.5 | 13.2 | 488 | 8.1 | 12.4 | 3.8 | 4 |
| M1 | Flat | 5.2 | 5.9 | 6.6 | 16.1 | 672 | 9.5 | 20.1 | 5.0 | 5 | |
| M2 | Flat | 6.7 | 6.0 | 9.4 | 15.7 | 647 | 10.1 | 11.9 | 4.9 | 5 | |
| M3 | Text | 5.2 | 8.3 | 8.4 | 16.3 | 653 | 8.1 | 12.4 | 5.3 | 5 | |
| M4 | Struct | 7.5 | 7.9 | 8.5 | 14.8 | 605 | 10.1 | 20.4 | 4.6 | 5 | |
Appendix figures & tables16 assets
Supplementary material from the paper’s appendix.
Appendix
| System | Year | Bench. | Metrics | #B | #E | Base | System | Year | Bench. | Metrics | #B | #E | Base |
| Generative Agents [ 37 ] | 2023 | Other | A | 1 | 0 | G | Mem0 [ 32 ] | 2025 | LC | A, P, T, L | 1 | 2 | G |
| MemGPT [ 33 ] | 2023 | DMR | A | 1 | 0 | G | Mem- [ 43 ] | 2025 | Other | A, P, M | 1 | 1 | O |
| MemoChat [ 53 ] | 2023 | Other | A | 1 | 0 | G | MemAgent [ 51 ] | 2025 | Other | A | 1 | 0 | O |
| MemoryBank [ 4 ] | 2023 | Other | A | 1 | 0 | G | MemOS [ 7 ] | 2025 | LC, LME | A, P | 2 | 0 | G |
| RSum [ 54 ] | 2023 | Other | A | 1 | 0 | G | Memoria [ 46 ] | 2025 | LME | A, T, L | 1 | 2 | G |
| SCM [ 55 ] | 2023 | Other | A | 1 | 0 | G | MemoryOS [ 56 ] | 2025 | LC | A, P | 1 | 0 | G |
| Family | Method | TF | LLM | Write | Read | Mgmt |
| External Memory | ||||||
| Flat Index | M1 Dense Vector [ 20 ] | ✓ | ✗ | Encode; add to index | Dense top- | — |
| M2 Sparse Vector [ 21 ] | ✓ | ✗ | Tokenize; append to BM25 | Sparse top- | — | |
| Text Record | M3 Gist Index [ 22 ] | ✓ | ✓ | LLM gist per page; index gists | LLM selects pages to expand | Text de-dup |
| Structural | M4 Evolving Notes [ 23 ] | ✓ | ✓ | LLM note per write; build links | ANN link expansion | Evolution-triggered neighbour rewrites |
| M5 Dual-Level Graph [ 24 ] | ✓ | ✓ | LLM extracts entities relations; build KG | KG vector hybrid (mix mode) | Lazy batch indexing; cached graph | |
| Substrate | Method | Auxiliary LLM calls | Execution time |
| Text Record | MemGPT [ 33 ] | 2,739 | 16.3 h |
| Text Record | Mem0 [ 32 ] | 8,984 | 11.8 h |
| Structural | Zep [ 31 ] | 7,624 | 23.1 h |
| ID | Metric | Definition | Benchmark |
| Performance : answer accuracy and retrieval quality | |||
| P1 | Exact Match | ; lowercase, strip articles, punctuation, whitespace | LC |
| P2 | Token F1 | Harmonic mean of token level precision and recall between and | LC |
| P3 | BLEU 1 | Clipped unigram precision with brevity penalty: | LC |
| P4 | LLM Judge | LLM labels the answer CORRECT/WRONG given ; fraction correct in | LC , MA |
| P5 | Compression Ratio | ; larger values indicate more lossy compression (unsigned) | All |
| Model | Sub. | Family | P1 EM | P2 F1 | P3 BLEU | P4 Judge | P6 Recall@k |
| Qwen3-8B | M1 | Flat | 0.273 | 0.466 | 0.285 | 0.540 | 0.696 |
| M2 | Flat | 0.283 | 0.436 | 0.241 | 0.470 | 0.595 | |
| M3 | Text | 0.190 | 0.366 | 0.269 | 0.562 | 0.620 | |
| M4 | Struct | 0.226 | 0.355 | 0.216 | 0.435 | 0.465 | |
| M5 | Struct | 0.196 | 0.381 | 0.252 | 0.648 | 0.455 | |
| M6 | Hier | 0.251 | 0.436 | 0.276 | 0.556 | 0.797 |
| Model | Sub. | Family | (ms/q) | (ms/wr) | (ms/rd) | (s) | (s/q) | |
| Qwen3-8B | M1 | Flat | 522 | 199 | 226 | 1,534 | 0.77 | 1.00 |
| M2 | Flat | 302 | 0 | 1 | 660 | 0.33 | 1.00 | |
| M3 | Text | 2,292 | 1,663 | 781 | 8,293 | 4.18 | 5.29 | |
| M4 | Struct | 169 | 6,210 | 9 | 12,638 | 6.36 | 0.71 | |
| M5 | Struct | 20,680 | 5,116 | 9,610 | 55,290 | 27.84 | 0.44 | |
| M6 | Hier | 683 | 641 | 195 | 2,758 | 1.39 | 0.62 |
| Sub. | Family | ||||||||||
| M1 | Flat | 3.59M | 0 | 0 | 889.8K | 0 | 0 | 0 | 0 | 0 | 0 |
| M2 | Flat | 173.7K | 0 | 0 | 806.6K | 0 | 0 | 0 | 0 | 0 | 0 |
| M3 | Text | 257.4K | 311.8K | 390 | 11.52M | 8.23M | 2,040 | 0 | 0 | 8.54M | 2,430 |
| M4 | Struct | 177.6K | 4.59M | 3,268 | 96.2K | 0 | 0 | 3.16M | 2,312 | 7.75M | 5,580 |
| M5 | Struct | 167.8K | 33.0M | 9,860 | 6.00M | 17.8M | 3,980 | 0 | 0 | 50.8M | 13,840 |
| M6 | Hier | 4.33M | 381.8K | 910 | 1.87M | 0 | 0 | 127.8K | 190 | 509.6K | 1,100 |
| LME-S | MAB LRU | MAB TTL | MAB CR | |||||||||||
| Model | ID | Family | P12 | P2 | P3 | P12 | P2 | P3 | P12 | P2 | P3 | P12 | P2 | P3 |
| Qwen3-8B | M1 | Flat | 0.390 | 0.170 | 0.113 | 0.592 | 0.491 | 0.417 | 0.570 | 0.476 | 0.405 | 0.330 | 0.211 | 0.171 |
| M2 | Flat | 0.340 | 0.170 | 0.114 | 0.606 | 0.527 | 0.448 | 0.480 | 0.399 | 0.340 | 0.280 | 0.188 | 0.155 | |
| M3 | Text | 0.123 | 0.047 | 0.029 | 0.549 | 0.479 | 0.407 | 0.840 | 0.544 | 0.462 | 0.270 | 0.192 | 0.163 | |
| M4 | Struct | 0.303 | 0.145 | 0.094 | 0.465 | 0.419 | 0.356 | 0.490 | 0.468 | 0.397 | 0.290 | 0.121 | 0.103 | |
| M5 | Struct | 0.380 | 0.160 | 0.103 | 0.549 | 0.491 | 0.417 | 0.580 | 0.468 | 0.397 | 0.500 | 0.362 | 0.308 | |
| Model | ID | Family | |||||
| Qwen3-8B | M1 | Flat | 9.7M | 2,075 | 4,602 | 2,191 | 7.30 |
| M2 | Flat | 2.7M | 1,747 | 3,580 | 525 | 1.75 | |
| M3 | Text | 4.5M | 4,500 | 9,000 | 16,674 | 55.58 | |
| M4 | Struct | 1.6M | 1,828 | 4,233 | 67,702 | 225.67 | |
| M5 | Struct | 32.0M | 8,500 | 18,000 | 56,162 | 187.21 | |
| M6 | Hier | 27.5M | 19,956 | 5,195 | 5,987 | 19.96 |
| Model | ID | Family | ||||||
| Qwen3-8B | M1 | Flat | 0 | 0 | 101K | 0 | 0 | 1.00 |
| M2 | Flat | 0 | 0 | 153K | 0 | 0 | 1.00 | |
| M3 | Text | 437K | 671 | 5.0M | 5.3M | 731 | 4.50 | |
| M4 | Struct | 4.4M | 1310 | 108K | 4.4M | 1310 | 6.20 | |
| M5 | Struct | 10.3M | 2371 | 375K | 10.4M | 2431 | 3.80 | |
| M6 | Hier | 280K | 80 | 46K | 280K | 80 | 2.80 |
| Model | Sub. | Family | P8 TSR | Steps | P10 Steps | |
| Qwen3-8B | – | NoMem | 5.7 | 47.0 | 12.2 | 13.5 |
| M1 | Flat | 5.2 | 47.7 | 5.9 | 6.6 | |
| M2 | Flat | 6.7 | 47.0 | 6.0 | 9.4 | |
| M3 | Text | 5.2 | 47.8 | 8.3 | 8.4 | |
| M4 | Struct | 7.5 | 46.9 | 7.9 | 8.5 | |
| M5 | Struct | 9.0 | 47.1 | 17.4 | 12.5 |
| Model | Sub. | Family | |||||||
| Qwen3-8B | – | NoMem | 0 | 12,728 | 13,200 | – | – | 65,392 | 488 |
| M1 | Flat | 2.17M | 14,086 | 16,104 | 188 | 220 | 90,048 | 672 | |
| M2 | Flat | 1.49M | 13,747 | 15,692 | 0 | 1 | 86,698 | 647 | |
| M3 | Text | 1.43M | 13,655 | 16,318 | 1,620 | 754 | 87,502 | 653 | |
| M4 | Struct | 942K | 12,903 | 14,843 | 6,134 | 9 | 81,070 | 605 | |
| M5 | Struct | 532K | 13,167 | 15,702 | 5,021 | 9,412 | 83,080 | 620 |
| Sub. | Family | |||||||||
| M1 | Flat | 0 | 0 | 391K | 0 | 0 | 0 | 0 | 0 | 0 |
| M2 | Flat | 0 | 0 | 3.66M | 0 | 0 | 0 | 0 | 0 | 0 |
| M3 | Text | 372K | 200 | 8.14M | 1.84M | 1,340 | 0 | 0 | 2.21M | 1,540 |
| M4 | Struct | 1.62M | 199 | 5.05M | 0 | 0 | 480K | 380 | 2.10M | 579 |
| M5 | Struct | 1.42M | 385 | 261 | 1.21M | 770 | 0 | 0 | 2.63M | 1,155 |
| M6 | Hier | 357K | 460 | 235K | 0 | 0 | 84.6K | 92 | 442K | 552 |
| Model | Sub. | Family | Pass@1 | ||
| Qwen3-8B | – | NoMem | 8.1 | 12.4 | – |
| M1 | Flat | 9.5 | 20.1 | 1.000 | |
| M2 | Flat | 10.1 | 11.9 | 1.000 | |
| M3 | Text | 8.1 | 12.4 | 1.964 | |
| M4 | Struct | 10.1 | 20.4 | 0.982 | |
| M5 | Struct | 15.5 | 17.1 | 0.817 |
| Model | Sub. | Family | |||||||
| Qwen3-8B | – | NoMem | 150K | 3,800 | 4,940 | – | – | 592 | 4 |
| M1 | Flat | 1.32M | 4,976 | 6,631 | 199 | 183 | 776 | 5.2 | |
| M2 | Flat | 245K | 4,853 | 6,600 | 0.1 | 3 | 718 | 4.9 | |
| M3 | Text | 305K | 5,300 | 6,890 | 6,853 | 46 | 784 | 5.3 | |
| M4 | Struct | 150K | 4,642 | 6,432 | 137 | 138 | 747 | 5.0 | |
| M5 | Struct | 239K | 28,273 | 36,700 | 8,779 | 12,432 | 4,184 | 28.3 |
| Model | Sub. | Family | |||||||||
| Qwen3-8B | – | NoMem | – | – | 4.75M | – | – | – | – | – | – |
| M1 | Flat | 0 | 0 | 2.29M | 0 | 0 | 0 | 0 | 0 | 0 | |
| M2 | Flat | 0 | 0 | 2.26M | 0 | 0 | 0 | 0 | 0 | 0 | |
| M3 | Text | 55.9K | 36 | 2.80M | 2.84M | 148 | 0 | 0 | 2.90M | 184 | |
| M4 | Struct | 0 | 0 | 2.16M | 0 | 0 | 0 | 0 | 0 | 0 | |
| M5 | Struct | 0 | 0 | 40.7K | 116K | 148 | 0 | 0 | 116K | 148 |
LLM Agent Memory
Large language model agent memory lets agents retain, organize, retrieve, and update information across interactions and long-running tasks.
See all 373 papers