Agent 記憶層基礎設施戰爭:從 Hermes Sidecar 到 LongMemEval 的記憶方案全景
成個行業都喺度鬥 context window:128K、1M、甚至 10M token,好似記憶力就係容量咁。但呢個係一個方向性錯誤。Context window 係 RAM,唔係記憶——RAM 一斷電就清空,agent 每次開新 session 都係一次斷電。你個 agent 好聰明,但佢係一個每日返工都唔記得昨日做過咩嘅天才員工。所以問題根本唔係「塞得幾多入去」,而係「點樣令佢記住」。呢場記憶層基礎設施戰爭,先係 agent 真正嘅決戰場。
失憶係結構性問題,唔係工程問題
先講清楚:agent 失憶唔係 bug,係架構使然。LLM 本身係 stateless 嘅函數——同一段 prompt 入去,同一段文字出嚟,佢冇「過去」呢回事。所謂記憶,全部係工程師用 context window 搭出嚟嘅假象。而呢個假象極之脆弱:對話一長,最早嘅資訊被擠出窗口;session 一斷,成個世界觀煙消雲散。
LongMemEval 呢個 benchmark 就係為咗量度呢個差距而嚟。佢用五百條問題去考 agent 四種能力:記憶、資訊更新、個人化、同埋主動索取資訊。結果好殘酷——即使係最強嘅模型,喺需要跨 session 記憶嘅任務上,表現同「每次重新認識你」嘅 baseline 差距唔大。換句話講:你同 agent 傾咗三個月,佢對你嘅了解同第一日傾差唔多。呢個先係 agent 由「demo 玩具」變成「生產工具」之間最大嘅鴻溝。因為信任係建立喺記憶之上:一個唔記得你講過乜嘅 agent,你永遠唔敢畀重要嘢佢做。
三條路線:Sidecar、Citation、Resume
目前跑出嚟嘅方案大致分三路。第一路係「旁路記憶」,代表係 Nous Research 嘅 Hermes Sidecar:一個細啲嘅模型長期企喺側邊,睇住主 agent 嘅對話,異步咁將值得記嘅嘢寫入記憶庫,再喺需要時抽返出嚟。主 agent 嘅 context 唔使背負所有歷史,記憶由一個永遠清醒嘅「副手」管理。呢個方向嘅野心最大——佢唔係修補失憶,而係將記憶變成一個獨立基礎設施,唔再依附於單一對話。
第二路係「可驗證記憶」,代表係 W&B 嘅 Cite。佢將引用圖譜引入 agent:每個 output 都要指出自己係根據邊份記憶或者邊個來源講嘢,讀者或者另一個 agent 可以 click 入去驗證。呢個解決嘅係記憶嘅信任問題——有來源嘅記憶先叫知識,冇來源嘅只係幻覺。尤其當 agent 開始互相溝通,冇 provenance 嘅資訊會喺系統入面傳染式擴散,最後成個網路講緊同一段謊言。引用圖譜就係 agent 社會嘅記帳本。
第三路最務實,係「會話續命」。ccrider 呢類工具專注一件事:當你嘅 session 因為 context 爆滿或者中斷而死亡,點樣最快重建現場。佢將對話歷史壓縮、總結、重組,令新 session 可以喺幾分鐘內接返舊進度,而唔係由零開始。呢條路唔靚仔,但佢係今日唯一即刻用得著嘅——因為無論記憶方案幾完美,斷線永遠會發生,resume 就係安全網。
標準答案唔存在,但組合拳就係標準
三條路線表面上競爭,其實佢哋根本唔喺同一層。Sidecar 管「寫入」——點樣記低;Cite 管「信任」——點樣驗證記低咗嘅嘢;ccrider 管「恢復」——記憶失效時點算。你唔使揀,因為一個生產級 agent 記憶層最終會係三樣嘢疊埋一齊:Sidecar 負責持續學習,citation graph 負責確保記憶可信,resume 負責兜底。LongMemEval 呢個擂台遲早會出清晰嘅 leaderboard,但邊個贏都改變唔到一個事實:記憶係你 agent 嘅 moat,唔係模型嘅 moat——模型人人一樣,記憶先係差異。
畀讀者嘅行動點好簡單。第一,今日就幫你嘅 agent 建立一份顯式記憶檔案(例如 memory.md),每日收工叫佢更新,成本近乎零但立竿見影;第二,將 session 交接當成 protocol 嚟寫,起碼令中斷之後可以重組現場,唔好再靠運氣;第三,開始留意 LongMemEval 呢類 benchmark,因為佢會話畀你知邊個記憶方案真正經得起時間考驗。記住:人人都有同樣嘅模型,但只有你嘅 agent 記得你——嗰個先係你嘅競爭優勢。