記憶系統
OpenClaw 的記憶架構,以純 Markdown 檔案儲存 Agent 上下文,包括每日日誌、長期記憶、搜尋功能及嵌入後端。
概覽
OpenClaw 的記憶架構將 Agent 上下文儲存為 Agent 工作區中的純 Markdown 檔案,以檔案作為權威來源,而非依賴記憶體內的暫存資料。
核心結構
系統使用兩個主要的記憶層:
- 每日日誌(
memory/YYYY-MM-DD.md)— 僅附加的檔案,用於工作階段特定的筆記 - 長期記憶(
MEMORY.md)— 經過整理的參考資訊,僅用於私人工作階段
記憶工具
Agent 透過兩個工具存取記憶:
memory_search— 使用向量嵌入和關鍵字匹配進行語義回憶memory_get— 目標檔案讀取,支援可選的行範圍選擇
當檔案不存在時,系統會優雅降級,回傳空內容而非錯誤。
何時持久化資訊
- 決策、偏好和持久性事實寫入
MEMORY.md - 日常筆記和進行中的上下文寫入
memory/YYYY-MM-DD.md - 如果有人要求機器人記住某事,應寫入磁碟而非僅保留在活動上下文中
搜尋功能
OpenClaw 支援混合搜尋,結合:
- 向量相似度:語義匹配,即使措辭不同也能匹配
- BM25 全文搜尋:精確的 Token 匹配,適用於 ID、程式碼符號、錯誤訊息
可選的後處理包括:
- MMR 重新排序:透過平衡相關性和多樣性來消除冗餘結果
- 時間衰減:提升較新記憶的排名,同時保留常青的參考檔案(可設定半衰期)
進階功能
QMD 後端
提供本地優先的替代方案,使用 BM25 + 向量 + 重新排序,並可選擇性地建立工作階段逐字稿索引。
向量加速
透過 sqlite-vec 擴充功能在 SQLite 中保持搜尋效率,而非使用 JavaScript。
嵌入供應商
支援多種嵌入供應商,並具有自動降級鏈:
- 透過
node-llama-cpp的本地模型 - OpenAI、Gemini、Voyage 及 Mistral API
自動記憶刷新
在上下文壓縮前觸發,提示 Agent 在工作階段壓縮發生前將持久資訊寫入磁碟。