前兩天量的是固定開銷與工具 schema,都是我這台機器上的數字。記憶這一層在動手量之前先換一組來源:它在 2026 年已經有專屬的綜述與基準。以下依序釐清三件事:這個迴圈怎麼形式化、既有文獻用哪三個維度分類、基準量出來的落差有多大。
Du 的綜述《Memory for Autonomous LLM Agents: Mechanisms, Evaluation, and Emerging Frontiers》2026 年 3 月 8 日投遞至 arXiv,編號 2603.07670,涵蓋範圍是 2022 年到 2026 年初的工作。摘要開頭那句把問題界定得很清楚:
大型語言模型 agent 愈來愈常運作在單一個 context window 遠遠裝不下已發生的事、已學到的事、以及不該重複的事的場景裡
它把記憶定義為「跨互動保存、組織並選擇性回想資訊的能力」,並指出記憶是把無狀態的文字產生器變成能適應的 agent 的那一項。
write、manage、read 這三種操作的分法來自 Zhang 等人 2024 年那份專論記憶的回顧,Du 把涵蓋範圍更新到 2025 至 2026 年的系統,另外補上以 POMDP 為基礎的形式化。
摘要把記憶形式化成一個與感知、行動緊密耦合的 write–manage–read 迴圈,再用三個維度展開分類:
| 維度 | 這個維度問的事 | 文獻列出的選項 |
|---|---|---|
| temporal scope | 這則記憶活多久、抽象到什麼程度 | working、episodic、semantic、procedural |
| representational substrate | 它實際存在什麼東西裡 | 脈絡內的文字、向量索引庫、結構化儲存、可執行的程式庫 |
| control policy | 由誰決定存什麼、取什麼、丟什麼 | 啟發式規則、以提示自控、學習得到的策略 |
第一個維度的四層之間有明確的轉換問題。綜述舉的例子是把「使用者在 1 月 5 日、1 月 12 日、2 月 1 日都改了日期格式」這種 episodic 事實,整併成「使用者偏好 DD/MM/YYYY」這條 semantic 紀錄。原文對這個步驟的評語是:
這個整併很少是自動發生的,目前多數系統需要明確的提示或啟發式觸發條件
第三個維度是綜述自己標為最有影響、討論卻最少的那一個:
core_memory_append 與 archival_memory_search 是標準例子以提示自控這一類的品質來源,原文指得很明確:取決於模型的指令遵循能力,以及記憶 API 在 system prompt 裡被說明得多完整。
| 家族 | 做法 | 代表系統 |
|---|---|---|
| context-resident compression | 把相關資訊留在 prompt 裡 | 摘要、scratchpad、思路鏈紀錄 |
| retrieval-augmented stores | 產生器配一個非參數的檢索索引 | RAG 系列 |
| reflective self-improvement | 任務失敗後讓 agent 寫一份自然語言的事後檢討 | Reflexion |
| hierarchical virtual context | 借作業系統的虛擬記憶體概念分層 | MemGPT |
| policy-learned management | 記憶操作交給學習得到的策略 | AgeMem |
第五類是這兩年新開的一條路。 Agentic Memory(AgeMem,Yu 等人 2026)把 store、retrieve、update、summarize、discard 五種記憶操作做成 agent 策略裡可呼叫的工具,再用強化學習最佳化整條流程。訓練分三段:
在五個長時程基準上它穩定勝過強基線,學到的策略還出現兩項不明顯的戰術:在脈絡填滿之前先主動摘要中間結果,以及捨棄那些與既有紀錄語意相近、卻沒有帶來新資訊的紀錄。
原文同時列了四項未解的顧慮:訓練昂貴、學會的遺忘可能刪掉安全關鍵資訊、策略跨任務分布可能轉移失敗,以及難以解釋 agent 為何選了某個記憶動作。
| 基準 | 年份 | 設計重點 |
|---|---|---|
| LoCoMo | 2024 | 最長 35 個 session、300 輪以上、每段對話 9k 到 16k token |
| MemBench | 2025 | 區分事實型與反思型記憶,另以記憶操作次數量效率 |
| MemoryAgentBench | 2025 | 四項認知能力,含選擇性遺忘 |
| MemoryArena | 2026 | 把記憶評測嵌進完整的 agent 任務,後段子任務依賴前段學到的東西 |
最值得記住的是跨基準的那個落差:
在 LoCoMo 拿到接近滿分的模型,到了 MemoryArena 掉到 40% 到 60%,凸顯出被動回想與主動、與決策相關的記憶運用之間有很深的落差
另外兩個數字指向同一個方向:Voyager 拿掉技能庫之後科技樹里程碑的達成速度差了 15.3 倍,MemoryArena 把主動記憶的 agent 換成純長脈絡基線,跨 session 互相依賴的任務完成率從八成以上掉到約 45%。
綜述收出的第一條是長脈絡不等於記憶,即使 context window 拉到 200k token,長脈絡模型在需要選擇性取回與主動管理的任務上仍然穩定輸給專門建的記憶系統。第二條是檢索品質已經取代儲存量成為主要瓶頸。
| 目標 | 問的事 |
|---|---|
| Utility | 記憶確實改善任務結果嗎 |
| Efficiency | 每單位效益要付多少 token、延遲與儲存成本 |
| Adaptivity | 能從互動回饋增量更新,不必整個重訓嗎 |
| Faithfulness | 取回的資訊正確且仍然有效嗎 |
| Governance | 隱私、刪除請求與組織政策都遵循嗎 |
這五項往相反方向拉:把效益推到最大會傾向什麼都存,儲存量與治理負擔隨之上升,壓縮壓得兇則改善效率,代價是靜默丟掉三週後才發現關鍵的那一條罕見事實。
工程樣式那一節把實際系統收成三類:全部記憶都在 prompt 裡、脈絡加外部檢索庫、多層儲存加學習或提示控制器。綜述給的建議是從第二類開始,把量測儀表裝好,等實測結果顯示學習控制確實改善目標工作負載再升到第三類。
以下的對映是我依上述維度自行做的對照,綜述本身沒有分析這套實作:
| 維度 | 這套實作對應的類別 | 依據 |
|---|---|---|
| temporal scope | MEMORY.md 與 USER.md 存 semantic,session 的 SQLite 存 episodic,skills/ 目錄存 procedural |
前幾天量過的資料表與檔案配置 |
| representational substrate | 脈絡內的文字加結構化儲存,沒有向量索引 | 兩個 Markdown 檔加 SQLite 的 FTS5 全文索引 |
| control policy | 以提示自控 | 記憶工具的 action 列舉只有 add、replace、remove,何時呼叫由模型決定 |
工程樣式上它介於第一類與第二類之間,記憶本身是脈絡內的文字,全文索引存在但走的是另一條路徑。
這套實作的記憶寫入由模型自己決定,讀取沒有檢索階段
三個維度裡最有用的是 control policy。前兩個維度描述記憶長什麼樣,第三個維度問的是誰在按按鈕,答案決定了這套系統的失效模式。以提示自控這一類的品質來源是模型的指令遵循能力與 API 的說明完整度,決定權在這兩項。
40% 到 60% 那個落差解釋了一件我原本以為與記憶無關的事。同一個模型在單輪問答裡回想得很準,接進排程任務之後表現落一大截,兩者量的是兩件不同的能力:被動回想只要求資訊在 context 裡,主動運用還要求它在正確的時機被取出來。
記憶做得好不好,在單輪對話裡量不出來
內建記憶的實測:寫入一則偏好、終止 session、重新啟動後取回,並量出它在 system prompt 裡實際佔多少 byte。