跳到內容

讓你的 AI 擁有「長久記憶」:OpenClaw Memory 設定指南

我以前常常遇到一個問題:跟 AI 聊完天,下次再開新對話,它就把我交待過的偏好全忘光了。雖然現在 Context Window 越來越大,但把所有東西都塞進去既貴又慢,而且對話一長,AI 就開始胡言亂語。

OpenClaw 的解決方案很直覺:把記憶存進 Markdown 檔案。這不是什麼黑盒子資料庫,就是你隨手都能打開編輯的純文字檔。機器人會讀這些檔案,也會把重要的事情寫進去。這篇文章會教你怎麼設定這個記憶系統,讓你的機器人不再是個「金魚腦」。

  • 已經跑起來的 OpenClaw 環境
  • 一個有效的 API key(OpenAI, Gemini 或 Voyage,用來做 Embedding)
  • 基本的 JSON5 設定檔編輯能力
  • Node.js 執行環境

只要 5 分鐘,你就能讓機器人開始寫日記。

  1. 確認 Workspace 位置:預設在 ~/.openclaw/workspace。
  2. 建立記憶檔案:在該目錄下建立 MEMORY.md(存長期事實)和 memory/ 資料夾(存每日日誌)。
  3. 告訴機器人記住事情:直接在對話中說「記住我喜歡用 TypeScript 寫 Code」,它就會動用工具把這句話寫入 MEMORY.md。
  4. 檢查自動存檔:當對話快要達到 Context 上限(Compaction)時,OpenClaw 會悄悄提醒機器人把重要資訊寫進 memory/YYYY-MM-DD.md。

OpenClaw 預設使用兩層記憶,這讓檢索效率更高:

  • memory/YYYY-MM-DD.md:每日流水帳。對話開始時,機器人會讀取今天跟昨天的內容。
  • MEMORY.md:經過整理的長期記憶(例如你的偏好、專案決策)。這部分只會在私聊(Private Session)中載入,避免在群組對話中洩漏隱私。

當對話快要爆滿,需要進行 Compaction(壓縮)時,OpenClaw 會執行一個「隱形步驟」。它會悄悄問機器人:「對話快結束了,有什麼重要的事情要存進記憶檔嗎?」

你可以在 agents.defaults.compaction.memoryFlush 調整這個行為:

{
agents: {
defaults: {
compaction: {
reserveTokensFloor: 20000,
memoryFlush: {
enabled: true,
softThresholdTokens: 4000,
systemPrompt: "對話快要壓縮了,現在存下重要的長期記憶。",
prompt: "把重要的筆記寫進 memory/YYYY-MM-DD.md;如果沒什麼好存的,請回覆 NO_REPLY。",
},
},
},
},
}

OpenClaw 會幫你的 Markdown 檔案建立索引。就算你問的問題跟筆記裡的字眼不完全一樣,它也能透過語義(Semantic)找到相關內容。

它會按照這個順序自動選擇 Embedding 提供者:

  1. 如果你設定了本地模型路徑,就用 local。
  2. 如果有 OpenAI 的 key,就用 openai。
  3. 如果有 Gemini 的 key,就用 gemini。
  4. 如果有 Voyage 的 key,就用 voyage。

如果你想手動指定 Gemini 作為提供者:

agents: {
defaults: {
memorySearch: {
provider: "gemini",
model: "gemini-embedding-001",
remote: {
apiKey: "你的_GEMINI_API_KEY"
}
}
}
}

有時候語義搜尋會漏掉一些精確的關鍵字(像是特定的 ID 或變數名稱)。這時候你可以開啟 Hybrid Search,它結合了 Vector 搜尋與 BM25 關鍵字搜尋:

agents: {
defaults: {
memorySearch: {
query: {
hybrid: {
enabled: true,
vectorWeight: 0.7,
textWeight: 0.3,
candidateMultiplier: 4
}
}
}
}
}
  • 機器人不寫記憶:檢查你的 Workspace 權限。如果設定了 workspaceAccess: "ro"(唯讀),機器人就沒辦法存檔。
  • 搜尋不到剛寫入的內容:索引更新有 1.5 秒的 Debounce 時間,稍等一下再試。
  • Embedding 報錯:檢查 API key。注意 Codex OAuth 通常不包含 Embedding API,你需要另外提供 OPENAI_API_KEY 或 GEMINI_API_KEY。
  • 本地模式跑不動:如果你用 provider: "local",記得執行 pnpm approve-builds 並重新編譯 node-llama-cpp。

如果你在設定記憶系統時卡住了,可以隨時找我們的 AI Setup Assistant 聊聊,它能直接幫你檢查設定檔。

OpenClaw

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。