開啟一個新對話時,模型並不知道你是誰。它不知道你正在處理什麼、昨天告訴了它什麼,或者它承諾不再做什麼。它能回答問題、編寫程式碼、分析文件。但每一次對話都像是初次見面。

OpenClaw 的記憶體系統是一種工程技巧,旨在模擬記憶功能,建立在一個會遺忘一切的模型之上。這不是模型本身的能力,而是系統設計。人類的記憶是神經網路中的權重。而這裡則是磁碟上的檔案和將它們放入模型視野中的技巧。

記憶體始於儲存。OpenClaw 將資訊存放在三個地方,每個地方的持久性不同。

磁碟上的 Markdown 檔案是最持久的。只要不刪除,它們就會永遠存在。重新啟動不會影響它們,切換會話也不會影響它們。

有兩種檔案。設定檔定義了代理程式是誰以及它的行為方式:SOUL.md 用於身份,AGENTS.md 用於工作流程規則,USER.md 用於關於你的穩定事實,MEMORY.md 用於應持久化的決策。這些是長期記憶。然後有每日日誌,例如 memory/2026-03-16.md,記錄每天發生的事情。

對話歷史會完整儲存到磁碟,以便你明天可以從今天中斷的地方繼續。但是,「儲存到磁碟」和「對模型可見」並不相同。長對話的較舊部分會被壓縮成摘要。原始記錄仍在磁碟上;模型只能看到摘要。細節會丟失。

上下文視窗是模型實際查看的地方。你的訊息、它的回覆、工具的輸出。這是模型唯一能感知到的東西。對於 Claude 來說,大約有 200K 個 token,相當於一本書的中等長度。當內容太多無法容納時,就會被裁剪。

檔案是永久的。對話歷史是半永久的。上下文視窗在會話結束的那一刻就消失了。

磁碟上模型無法看到的資訊,就如同不存在一樣。那麼它如何進入上下文視窗呢?

引導注入。當會話開始時,某些工作區檔案會自動載入:AGENTS.md、SOUL.md、TOOLS.md、IDENTITY.md、USER.md。載入哪些檔案取決於會話類型。MEMORY.md 只會在主要的私人會話中自動載入,而在群組對話中不會。

這是最可靠的傳遞機制,因為它是無條件的。內容是否相關並不重要。它每次都會載入。這就是為什麼這些檔案中的資訊能夠真正跨會話持久存在的原因:即使對話歷史被壓縮,檔案也會在下一個會話中重新載入。

成本是固定的上下文空間。每個檔案上限為 20,000 個字元。所有設定檔加起來上限為 150,000 個字元(約 50K 個 token)。超出限制的任何內容都會被截斷。系統可以警告代理程式它看到的是截斷版本,但如果代理程式忽略該信號,檔案的下半部分就會默默消失。

歷史重建。當你繼續一個現有的會話時,系統會從磁碟讀取對話歷史並將其載入回上下文。這就是代理程式「記住」會話早期發生事情的方式。

當歷史記錄超過上下文視窗的容納能力時,較舊的回合會被壓縮成摘要。這就是壓縮。它保留了大致方向,但丟失了細節、特定約束和確切措辭。

子代理程式會獲得一套較小的引導檔案。它們載入 AGENTS.md、TOOLS.md、SOUL.md、IDENTITY.md、USER.md,但不載入 MEMORY.md。因此,子代理程式無法存取累積的跨會話記憶。如果你的工作流程使用子代理程式來執行實際工作,你需要意識到這個盲點。

設定檔每次都會載入。這處理了經常需要的信息。但是幾個月前的會話記錄,或者上個季度你在不同專案上做出的決定呢?你無法一次性注入所有這些內容。這會超出上下文視窗。

OpenClaw 建立了一個可搜尋的索引,涵蓋所有記憶體檔案,並具有兩種匹配模式:關鍵字搜尋用於精確術語,語義搜尋用於基於意義的匹配。代理程式呼叫 memory_search 來查詢此索引並將相關片段拉入當前上下文。

首先,只有寫入檔案的內容才能被檢索。如果在對話中說了什麼但從未儲存到檔案,檢索系統就找不到它。就搜尋而言,它不存在。

其次,代理程式必須知道它應該進行搜尋。memory_search 是一個工具。代理程式是否能好好使用它,取決於提示設計和 AGENTS.md 中的規則。如果沒有人告訴代理程式檢查它的筆記,它就不會去檢查。檢索系統在那裡,但除非有什麼觸發它,否則它會保持沉默。

混合搜尋在尋找相關內容方面效果足夠好,但它有一個嚴格的限制:它找到的是相似的文本,而不是內容之間的關係。告訴代理程式「Alice 領導 auth 團隊」,然後問「關於 auth 權限我應該和誰談談」。搜尋可以找到 Alice 的提及,以及 auth 的提及,但它不理解 Alice 管理 auth。這些資訊是片段,而不是圖。你有 50 個記憶體時不會注意到這一點。你有 5,000 個記憶體時就會注意到。

整個系統都在回答一個問題:如何將正確的資訊在適當的時間呈現在模型面前?

檔案處理代理程式始終需要的穩定資訊。對話歷史處理會話內的連續性。檢索處理歷史內容,在相關時獲取。

但這一切都包含一個核心假設:資訊必須明確寫入檔案才能進入系統。

在對話中說「記住,永遠不要再做 X」。該指令存在於對話歷史中。當歷史記錄被壓縮,或會話結束時,它就消失了。使其持久化的唯一方法是將其寫入 AGENTS.md。

這是一個刻意的設計選擇。系統不會猜測什麼值得記住,而是由使用者或代理程式決定什麼應該被持久化。權衡是:使用門檻更高。好處是:行為可預測。你總是知道代理程式為什麼記住某事,為什麼不記住。

這三個子系統解釋了你將看到的絕大多數奇怪行為。

為什麼代理程式會忘記事情?為什麼有些資訊會跨會話保留而有些資訊會消失?為什麼代理程式在新機器上表現得像失憶症患者?答案追溯到儲存、注入和檢索。下一篇文章將詳細介紹具體的故障模式。

代理程式原生的數據層。AI 代理程式的記憶、狀態和上下文。