第三條路線既不把記憶當成 agent 推理的對象(Letta),也不當成外部服務(Mem0),而是當成檔案系統上的 Markdown:可讀、可 grep、可 diff、可進 Git、可被人類直接編輯。OpenClaw 與 Hermes Agent 是這條路線 2026 年最具規模的兩個實作,而它們對「記憶膨脹」與「記憶治理」給出的答案,跟資料庫路線完全不同。
這兩者都是真實存在的專案,以下所有描述來自公開資料,版本與日期一併標明——見 主張 vs 可佐證。
OpenClaw:自架 agent runtime,記憶是可替換插槽
OpenClaw 是一個自架的 agent runtime 與訊息路由器,你在自己的機器上跑它、擁有資料、自選模型、自定工作流。它由奧地利開發者 Peter Steinberger 於 2025 年 11 月以 Clawdbot 之名發布,2026 年 1 月更名為 OpenClaw,並在約六十天內突破 25 萬個 GitHub star。撰稿時的穩定版是 v2026.7.1(2026-07-13),beta v2026.7.2 加入了遠端編碼 session 與行動端/無頭 Linux 節點的原生自動化。
它有 26 個內建工具,橫跨檔案系統、shell 執行、網頁搜尋與抓取、瀏覽器自動化、記憶管理與 session 控制。
記憶的兩層結構(預設工作目錄 ~/.openclaw/workspace):
長期記憶(MEMORY.md)——持久的事實、偏好與決策。它在每個 session 開始時被載入,因此寫在這裡的東西永遠在 context 裡。這個性質決定了它的設計約束:它必須短。
每日日誌(memory/YYYY-MM-DD.md)——append-only 的流水帳,記錄當下的脈絡、決策與活動。它不會被自動載入,需要時才檢索。
Markdown 是真源,索引是衍生物。 OpenClaw 在檔案之上疊了一層 SQLite 索引來解決規模化檢索:files 與 chunks 表存文字片段與 embedding、embedding_cache 用 SHA-256 雜湊做去重、chunks_fts 是 FTS5 虛擬表提供快速詞彙檢索。這是「檔案為真源 + 混合檢索索引」的完整實作——語意檢索與關鍵字檢索並存,而且索引隨時可以從檔案重建。
記憶層是可替換的插槽。 啟用哪個記憶插件由 openclaw.json 的 plugins.slots.memory 設定,因此可以換成第三方實作(Mem0 官方就發布過 OpenClaw 的記憶整合)。這個「記憶是可替換插槽」的架構決定,是本篇最值得抄的工程設計——它把記憶從核心相依降級成一個有明確介面的元件。
暴露給 agent 的記憶工具有八個,包含 memory_search(自然語言跨記憶搜尋)、memory_add(存入事實,可選 session 或長期範圍)、memory_list(列出全部)、memory_get(按 ID 取回)。注意 memory_add 帶有範圍參數——這與 Mem0 的 scope keys 是同一個設計。
OpenClaw 的安全面已經有多篇公開的分析論文;自架、擁有 shell 執行與瀏覽器自動化能力、且記憶可被對話內容寫入的 agent,攻擊面明顯大於受限的雲端服務,這是採用前必須評估的事,相關風險見 實作陷阱。
Hermes Agent:periodic nudge 與技能自我演化
Hermes Agent 是 Nous Research 的自我改進 agent 框架:它可以搭配任何 LLM,自己補上持久記憶、技能學習、多平台通訊與安全程式執行的基礎設施。
記憶的雙軌結構:
MEMORY.md——跨 session 學到的事實資訊。
USER.md——agent 對使用者的持續演化的理解:溝通風格、專業領域、反覆出現的需求、工作模式。
兩者都是純 Markdown,人類可讀可編輯。這正是 分類學 裡 user memory 與 agent memory 分離的直接實作,而且用最簡單的方式做到:兩個檔案。
Periodic nudge:對膨脹問題的另一種答案。 Hermes 避免記憶膨脹的機制叫 periodic nudge——agent 會週期性收到一個系統層級的內部 prompt,要求它評估近期活動、判斷有沒有東西值得寫進記憶,只有跨過「未來 session 會用到」這個門檻的內容才會被寫入檔案。
這個機制值得仔細看,因為它與資料庫路線的做法在哲學上相反。Mem0 的預設是寫入,然後靠 UPDATE/DELETE 收斂;Hermes 的預設是不寫入,除非通過一次顯式的價值判斷。 前者的失效模式是庫膨脹、召回被稀釋;後者的失效模式是漏記重要資訊。在「記憶檔案每個 session 都全量載入 context」的架構下,後者是唯一可行的選擇——因為膨脹的代價是每一輪都要付的 token 稅。
它同時是 sleep-time compute 的第三種實作(Letta 的 sleep-time agent、LangMem 的 background、Hermes 的 periodic nudge)。三個獨立實作收斂到同一個模式,這是本專欄認定「記憶整理應脫離主推理路徑」為強共識的依據。
技能自我演化:Hermes 把 perception-memory-action 模型操作化,並加上一個特色機制——完成複雜任務後,agent 自主建立可重用的 Skill(參數化的程序模組),這些 skill 在後續使用中自我改進。這是 程序記憶(技能型) 最明確的產品化實作,也與舊專欄 反思與技能沉澱:記憶的複利 所描述的機制對應。
平台覆蓋:到 2026 年初,Hermes 的 gateway 支援 CLI、Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost、Email、SMS、DingTalk、飛書、企業微信、BlueBubbles(iMessage 橋接)與 Home Assistant。這一點與記憶架構無關,但它解釋了為什麼這類 agent 需要跨 session 記憶——同一個使用者可能今天用 Telegram、明天用 email,記憶是唯一讓它們是「同一個助理」的東西。
檔案原生路線的優缺點
優點:可觀測性是結構性的而非附加的——你不需要一個 dashboard 才能知道 agent 記住了什麼,cat MEMORY.md 就夠了;可 diff、可 Git 版本化,因此記憶的變更歷史免費取得;人類可以直接介入修正;可攜性最好(一堆 Markdown 檔案可以搬到任何地方);沒有外部服務相依。
缺點:規模化需要額外索引層(OpenClaw 用 SQLite + FTS5 + embedding 補上,但這是自己實作的);沒有時間模型——Markdown 檔案裡「這件事什麼時候變成真的」只能靠寫進文字,無法查詢;併發寫入的語意不明確(兩個 agent 同時改一個檔案);全量載入的策略對 token 成本有硬性上限;記憶投毒在檔案原生架構下更容易寫入(純文字沒有 schema 約束),但也更容易事後追查(可 diff)——這個取捨的淨效果沒有定論,舊專欄的 客觀檢視 對此有討論。
適合場景:個人助理與自架 agent、開發者面向的工具(記憶需要被人審閱與修正)、記憶量中等且以規則與畫像為主的應用、重視資料主權與可審計性的場合。不適合:多租戶產品(每個使用者一組檔案的隔離與管理成本高)、記憶量極大、需要時序查詢或多跳推理。
可抽取的模式
Markdown as source of truth, index as derivative(Markdown 為真源、索引為衍生物)——真源是人類可讀的檔案,向量與全文索引是可重建的衍生物。這個「索引可拋棄」的性質價值很高:embedding 模型換版時,重建索引不需要重跑 LLM 抽取。
Content-hash deduplication(內容雜湊去重)——用 SHA-256 對 chunk 內容做雜湊來避免重複 embedding。這是最便宜的去重層,應該放在任何 embedding 管線的最前面,它處理掉的是完全相同內容的重複,語意層面的去重再交給對帳邏輯。
Memory as a replaceable slot(記憶作為可替換插槽)——用設定檔指定記憶實作,而非硬編相依。這是抵抗這個領域高速變動的最實際手段,介面定義見 介面草案。
Write-gated by explicit value judgment(以顯式價值判斷把關寫入)——預設不寫,只有通過「未來會用到嗎」這個門檻才寫。在常駐記憶(每輪都載入)上這是必須的;在按需召回的記憶上則可以放寬。 兩種記憶用不同的寫入門檻,是一個容易忽略但重要的設計細節。
Split user memory and agent memory into separate artifacts(把使用者記憶與代理人記憶分成不同物件)——不是同一張表加一個欄位,而是分開的檔案/表/namespace。分開之後,刪除、共享與信任等級都能各自處理。