幫你的 AI 記憶打分數
LongMemEval 實戰教學.2026-10-10 阿普實跑一次 500 題的完整做法。照做就能跟 Mastra、Hindsight、Zep 這些記憶系統用同一把尺比。
一句話:拿 500 題考你的記憶系統,每題先給它一大份聊天紀錄(平均 48 段、約 11.5 萬 token),答案只藏在其中一兩段;系統要自己記住、找出來、答對。最後由 GPT-4o 用官方題型專屬的判分 prompt 判對錯,算正確率。
我們的成績
整體正確率.500 題全跑完.官方 GPT-4o 判分.2026-10-10
| 題型 | 題數 | 正確率 |
|---|---|---|
| 單段・助理說過 | 56 | 100.0% |
| 知識更新 | 78 | 93.6% |
| 單段・偏好 | 30 | 93.3% |
| 單段・使用者說過 | 70 | 92.9% |
| 時間推理 | 133 | 84.2% |
| 多段推理 | 133 | 80.5% |
怎麼解讀這個分數
- 記憶層是最陽春的那種。只有向量檢索取前 5 段,沒有事實抽取、沒有時間索引、沒有合併改寫。分數有很大一塊是作答模型(Claude Sonnet 5.5)撐起來的,所以它比較像「陽春檢索+強作答模型」的基準線。
- 弱點很清楚:答案散在好幾段的題目。前 5 段撈到任一證據段有 97.5%,撈齊全部只有 87.7%,多段推理跟時間推理就掉在這裡。記憶系統真正能加分的地方就是這兩型。
- 誤差約 ±1.5 分。跟下表 Hindsight(GPT-OSS 120B)的 89.0% 算是同一級。
想比記憶系統本身的功力:作答模型一樣用 Claude Sonnet 5.5,只把第 3、4 步換成你的記憶層。這樣差出來的分數,就純粹是記憶系統的差別。
這把尺量什麼
LongMemEval 是 ICLR 2025 的長期記憶基準(Di Wu 等人),市面上記憶系統宣稱的分數大多用它的 S 版。每題有自己獨立的一份聊天紀錄,題目分六型,另有 30 題是「紀錄裡根本沒提過」、要系統老實說不知道的拒答題。
| 題型 | 考什麼 | 題數 |
|---|---|---|
| 單段・使用者說過 | 使用者某次提過的細節(我養的貓叫什麼) | 70 |
| 單段・助理說過 | AI 自己之前講過的內容 | 56 |
| 單段・偏好 | 從對話推出使用者喜好,給個人化建議 | 30 |
| 多段推理 | 答案散在好幾段,要合起來算(總共買了幾樣) | 133 |
| 時間推理 | 「兩個月前那次」「先後順序」,要懂日期 | 133 |
| 知識更新 | 後來改口了,要答最新那個 | 78 |
合計 500 題,其中 30 題是拒答題(題號結尾 _abs),散在各型裡。
各家分數(同一把尺)
以下都是 S 版 500 題、GPT-4o 判分的 QA 正確率,數字取自 Mastra 研究頁與 Hindsight 官方 benchmark repo,全是各家自報。
| 系統 | 作答模型 | 正確率 |
|---|---|---|
| Mastra Observational Memory | gpt-5-mini | 94.87% |
| Hindsight | gemini-3-pro | 91.40% |
| Hindsight | GPT-OSS 120B | 89.00% |
| 阿普(陽春向量檢索前 5) | Claude Sonnet 5.5 | 88.20% |
| Supermemory | gemini-3-pro | 85.20% |
| Mastra Observational Memory | gpt-4o | 84.23% |
| Oracle(直接只給證據段) | gpt-4o | 82.40% |
| Supermemory | gpt-4o | 81.60% |
| Mastra RAG(取前 20) | gpt-4o | 80.05% |
| Zep | gpt-4o | 71.20% |
| 整份紀錄硬塞(不用記憶系統) | gpt-4o | 60.20% |
看表的三個重點
- 作答模型影響很大。同一個 Mastra,換 gpt-5-mini 跟 gpt-4o 差 10 分。比較時要嘛同一個作答模型,要嘛把模型寫清楚。
- 「整份硬塞」只有 60 分。11.5 萬 token 全丟給 GPT-4o 反而答不好,這就是記憶系統存在的理由。
- 注意指標是哪一種。有些網站寫 99%,那是「檢索有沒有撈到證據段」的召回率,不是答對率,不能放進這張表比。
完整流程
粉紅色那兩步,就是把你自己的記憶系統接上去的地方;其他步驟照官方做,分數才能跟上表比。
- 下載資料從 Hugging Face 抓
longmemeval_s_cleaned.json(2025 年 9 月清理過的版本,277 MB),以及官方 GitHub repo(作答與判分的 prompt 都在裡面)。 - 每題的聊天紀錄拆成一段一檔每段寫成一個檔,開頭記日期,內文是 user/assistant 逐句。檔名與內文都不能帶原始的 session id,原因見下面「踩過的坑」第一條。
- 寫入:把紀錄餵進你的記憶系統接這裡每題要有自己獨立的記憶空間,只能搜到自己那份紀錄。我們的做法是每題建一個向量索引集合(500 題=500 個集合、23,867 段),用本機 0.6B 的嵌入模型,全部嵌完約 70 分鐘、不花錢。
- 召回:拿題目去問你的記憶系統接這裡用題目本身當查詢,取前 5 段(官方預設讀法)。順便算檢索召回:前 5 段有沒有撈到任一證據段(any@5)、是否撈齊全部證據段(all@5)。
- 作答用官方
run_generation.py裡的prepare_prompt組 prompt:撈到的段落依日期排序、帶上每段日期與「提問當天日期」、要求先推理再作答。我們丟給 Claude Sonnet 5.5,每題約 2.3 萬 token input、平均 5 秒。 - 判分用官方
evaluate_qa.py的題型專屬判分 prompt,模型gpt-4o-2024-08-06、temperature 0、max_tokens 10,只回 yes/no。每題約 0.001 美元,500 題實付 0.45 美元。 - 彙總算三個數:整體正確率(上表比的就是這個)、六型平均正確率、拒答題正確率;另附檢索召回。
如果你的系統是整包的(自己存、自己找、自己答)
那就不用拆第 3 到 5 步:把每題的紀錄依時間順序餵進你的系統,再把題目問它,把回答存成 jsonl,一行一題:
{"question_id": "e47becba", "hypothesis": "你的系統的回答"}
然後直接跑官方判分:
export OPENAI_API_KEY=... cd src/evaluation python3 evaluate_qa.py gpt-4o 你的回答.jsonl ../../data/longmemeval_s_cleaned.json python3 print_qa_metrics.py gpt-4o 你的回答.jsonl.log ../../data/longmemeval_s_cleaned.json
餵紀錄時記得把每段的日期一起給系統,時間推理題靠這個。
成本與時間(實測)
作答走 Claude 訂閱方案,不另付費;換算 API 定價約 25 美元。嵌入完之後,檢索約 10 分鐘、作答與判分 4 路並行約 12 分鐘就出分。正式跑之前先跑 10 題冒煙,量出每題成本再乘上去,超過自訂停損就先停下來想。
踩過的坑
- 原始 session id 會洩題。資料裡證據段的 id 都以
answer_開頭。把 id 寫進檔名或內文,檢索就會被這個字串帶著走,等於偷看答案。拆檔時改用流水號,對照表另外存。 - 先 10 題冒煙,再把自己的判分器跟官方對帳。挑六型各至少一題、含一題拒答題。我們把冒煙的 10 筆回答原樣丟給官方
evaluate_qa.py,跟自己的判分器 10/10 一致,才開全量。 - 作答要「乾淨」,不然量到的是 agent 的個性。關掉工具、記憶、人設檔、hook,system prompt 只留一句「You are a helpful assistant.」,從空資料夾執行。我們量過,空問題只吃約 600 token 的常駐脈絡。
- 每題 prompt 都不同時,prompt 快取只會多收錢。快取寫入比一般 input 貴,可是 500 題沒有一題會重複命中。關掉快取之後,單題成本直接砍半。
- 檢索工具的預設門檻會偷砍結果。我們用的工具,最低分數傳 0 會被當成「沒傳」,退回預設 0.3,有些題就撈不滿 5 段。要傳一個極小的正數才拿得到完整排序。
- 有查詢改寫的檢索,重跑結果會變。如果你的召回會先用 LLM 改寫查詢,同一題跑兩次前 5 名會不一樣。檢索跑一次就存檔,作答一律讀存檔。
- 分數有 ±1.5 分左右的雜訊。作答與判分都有隨機性,同設定跑兩次不會逐題一致。差 1 分不要當成勝負。
- 斷點續跑+停損是必備。檢索、作答、判分每題各自落檔,中斷就從斷點接。碰到限流或額度用完就停、連續 5 題失敗就停、判分花費超過上限就停。
- 換一個閒置帳號跑,而且準備好半路換帳號。1,000 多萬 token 會吃掉不少額度,用平常在用的帳號,跑分期間你自己的 AI 就卡住了。我們用的那個帳號剛降成 Pro,跑到第 191 題就撞上五小時上限;靠斷點續跑換一個帳號接著做,前面的成績一題都沒丟。
要跟別人比,先對齊這四件
- 資料版本:S 版,最好用 cleaned 版(舊版有幾段會干擾答案)。
- 作答模型:寫清楚是誰在作答,上表同一系統換模型可以差 10 分。
- 判分模型:GPT-4o+官方判分 prompt,這是大家共用的尺。
- 指標:比 QA 正確率,不要拿檢索召回率混進來。