← Source Code
Source Code

Memory 04:怎麼判斷哪個記憶系統強——Benchmark 數字的陷阱

2026-05-14 · — views

mempalace 96.6%,mem0 V3 93.4%。看起來 mempalace 贏了?

這兩個數字不是同一種東西,不能直接比。


R@K、MRR、NDCG:三個 Retrieval 指標各測什麼?

Agent Memory 的 benchmark 分兩層:純 retrieval 指標,和 end-to-end memory 指標。

純 retrieval 指標只問 memory 系統本身,不管 LLM 後來怎麼用:

指標問的問題意義
R@K正確答案有沒有出現在 top-K 結果裡?系統「找得到」的能力
MRR正確答案平均排在第幾?正確答案排多前
NDCG排名品質如何?排第 1 比排第 5 貢獻更多

R@K 是最常見的,也最容易被誤讀。R@5 = 96.6% 代表 96.6% 的查詢,正確答案有出現在前 5 筆結果裡。它不問 LLM 有沒有看到這筆結果,不問 LLM 有沒有答對。

Retrieval 找到了,LLM 不一定答對;LLM 猜對了,不一定是靠 retrieval 找到的。這兩個指標可以同時反向——這就是為什麼只看 R@K 不夠,也為什麼 R@K 和 QA accuracy 不能直接放在一起比。


三個 Memory-Specific Benchmark 各測什麼場景?

除了 retrieval 指標,還有幾個專為 long-context memory 設計的 benchmark,各自測不同的使用場景。

LongMemEval

測試 AI 能不能記住長對話裡的具體資訊,分四個子任務:

  • Single-hop recall:直接找回某個事實
  • Multi-hop:需要組合多個記憶才能回答
  • Temporal reasoning:記憶的時序,先發生的還是後發生的?
  • Entity tracking:某個人或物的狀態隨對話演變

這四個子任務測的能力不同,系統在各子任務的強弱也不同,加總成單一數字後資訊會被稀釋。

LoCoMo(Long Conversation Memory)

測試多 session 對話的記憶一致性:跨 session 事實一致、偏好追蹤、關係理解。

mem0 V2 到 V3 在這個 benchmark 上從 71.4 跳到 91.6,+20 個百分點。背後的原因是 extraction 系統的強項正好對上了 LoCoMo 在測的東西——extraction 把偏好和事實正規化後,paraphrase 問題消失,跨 session 一致性自然高。

Needle in a Haystack

在超長 context 中找到一個特定事實。這個 benchmark 天然對 verbatim + BM25 有利,因為原文字詞完整保留,精確字詞命中率高。反過來,extraction 系統在 pipeline 中就可能把「針」丟掉——LLM 改寫過的 semantic 摘要不一定保留原始字詞。


設計決策決定哪個 Benchmark 強

這是這篇最重要的結論:系統在哪個 benchmark 強,不是調教出來的,是設計決策決定的。

設計決策 強項 Benchmark 代表系統 Extraction 正規化 記憶寫入時 LLM 改寫 LoCoMo 偏好 / 跨 session 一致性 mem0 / deerflow Verbatim + BM25 原文直接存入,不改寫 Needle in a Haystack mempalace / hermes R@K(精確字詞) engram / hermes L2 KG + 時間維度 entity 關係 + 事件先後 LongMemEval temporal mempalace / OpenViking LongMemEval multi-hop mem0 entity / agentmemory 系統在哪個 benchmark 強,是設計決策決定的—— 選系統之前,先確認你的 agent 場景對應哪個 benchmark

Extraction 系統(mem0、deerflow)把記憶正規化,paraphrase 問題消失,所以在 LoCoMo 這種偏好追蹤類 benchmark 強。但 extraction pipeline 可能丟掉原始字詞,所以在 Needle in a Haystack 反而可能輸給 verbatim 系統。

Verbatim + BM25(mempalace、hermes L2)保留原文,精確字詞完整,所以在 Needle 和 R@K 類 benchmark 強。但跨 session 一致性沒有 extraction 好,因為同一件事用不同說法寫進去,會存成兩筆。

有 KG 和時間維度的系統(mempalace KG、OpenViking)在 LongMemEval 的 temporal reasoning 和 multi-hop 強,因為 KG 記錄了事件的先後關係和 entity 之間的連結,不只是 flat facts。


96.6% 和 93.4% 為什麼不能直接比?

回到開頭的問題。

mempalace 96.6% 是 LongMemEval 的 R@5——retrieval 層,找到了嗎?

mem0 V3 93.4% 是 QA accuracy——end-to-end,答對了嗎?

一個測的是 memory 系統有沒有把正確記憶找出來,一個測的是整個 pipeline(memory + LLM)有沒有答對問題。即使用同一個 benchmark 資料集,兩個指標測的層次不同,不能直接比大小。

更進一步:就算都是 QA accuracy,benchmark 的資料集不同,測的場景不同,數字也沒有可比性。LoCoMo 測多 session 偏好追蹤,LongMemEval 測長對話事實 recall,兩個都叫「memory benchmark」但問的是完全不同的問題。


選系統之前,先問你的 agent 在做什麼

沒有通用最強的 agent memory 系統。問題是:你的 agent 主要在做什麼?

Agent 場景最相關的 benchmark推薦方向
記住用戶偏好、習慣LoCoMomem0、deerflow
找回精確內容(程式碼、數字)Needle in a Haystack, R@Kmempalace、hermes L2
跨 session 長期記憶LongMemEval temporalmempalace KG、OpenViking
多實體關係追蹤LongMemEval multi-hopmem0 entity、agentmemory graph

這個問題的答案,決定了哪個 benchmark 有意義,再決定選哪個系統。如果你還不確定 agent 主要在做什麼,那無論哪個 benchmark 數字都暫時沒有意義。


結語:看 benchmark 數字之前,先問這個數字測的是什麼——如果場景對不上,96.6% 和 93.4% 都只是兩個不同的故事。