跳到內容

打造離線優先的 AI 記憶系統:Workspace Memory v2 實踐指南

你是否遇過這種情況:明明前幾天才跟 AI 討論過某個技術決策,今天它又忘得一乾二淨?或者你想找回之前的某個指令,卻得在幾百個檔案裡手動搜尋?當 AI 的記憶只是一堆雜亂無章的日誌時,開發體驗真的會讓人崩潰。

我們需要的是一個既能像日記一樣隨手記錄,又能讓 AI 在需要時精準提取資訊的系統。這就是 Workspace Memory v2 的核心目標:把 Markdown 的易讀性與 SQLite 的檢索能力結合,打造一個完全離線且可解釋的記憶架構。

在開始之前,請確保你的環境符合以下條件:

  • OpenClaw Workspace: 預設路徑通常在 ~/.openclaw/workspace
  • Markdown 檔案: 作為記憶的唯一事實來源 (Source of Truth)
  • SQLite: 需支援 FTS5 擴充功能,用於全文檢索

只需 5 分鐘,你就能為你的 AI 代理建立起一套結構化的記憶流程。

首先,在你的 ~/.openclaw/workspace 中建立以下結構。這能確保人類可讀的檔案與機器檢索的索引分開:

~/.openclaw/workspace/
memory.md # 核心事實與偏好 (始終在 Context 中)
memory/
YYYY-MM-DD.md # 每日日誌 (敘事性記錄)
bank/ # 結構化記憶頁面
world.md # 關於外部世界的客觀事實
experience.md # 代理的過往經歷
opinions.md # 主觀判斷與信心程度
entities/ # 特定實體 (如 @Peter) 的專屬頁面

在每日日誌 memory/YYYY-MM-DD.md 的末尾,添加一個 ## Retain 區塊。這能幫助 AI 提取出具備「自洽性」的事實:

## Retain
- W @Peter: 目前在馬拉喀什 (2025-11-27 至 12-01) 參加 Andy 的生日派對。
- B @warelay: 我修復了 Baileys WS 的當機問題,將 connection.update 處理器封裝在 try/catch 中。
- O(c=0.95) @Peter: 在 WhatsApp 上偏好簡短回覆 (<1500 字);長內容請存入檔案。

為了讓檢索更快速,你需要建立一個不納入 Git 追蹤的 SQLite 索引檔案: ~/.openclaw/workspace/.memory/index.sqlite。這個索引隨時可以從 Markdown 檔案重新構建,支援 FTS5 全文檢索與實體連結。

你可以透過 CLI 工具讓 AI 呼叫記憶檢索。例如:

Terminal window
openclaw memory recall "Peter 的偏好是什麼?" --k 25 --since 30d

如果你在使用過程中遇到問題,可以參考以下解決方案:

問題:全文檢索 (FTS5) 找不到相關內容,但檔案確實存在。

  • 方案:確認你的 SQLite 索引是否包含該實體標籤(如 @Peter)。如果詞彙匹配不夠精準,可以考慮啟用向量嵌入 (Embeddings) 進行語義搜尋,但在資料量不大時,FTS5 通常更有效率。

問題:隨著時間推移,AI 的觀點 (Opinions) 出現矛盾。

  • 方案:執行 reflect 任務。系統會根據新證據更新 bank/opinions.md 中的信心值 c。如果新證據與舊記憶強烈衝突,信心值會下降,直到有足夠的重複證據來修正觀點。

問題:檢索速度變慢。

  • 方案:當你的 Chunk 數量達到數十萬級別時,暴力搜尋向量會變慢。此時建議引入 HNSW 索引或研究 SuCo (Subspace Collision) 等近似最近鄰 (ANN) 演算法,但在 pilot 階段,SQLite 絕對夠用。

想了解如何針對你的特定專案調整記憶參數嗎?請諮詢 AI Setup Assistant。

  • Letta / MemGPT 概念: 深入了解核心記憶塊與存檔記憶的運作機制。
  • Hindsight 技術報告: 研究「保留、回想、反思」的四網路記憶模型。
  • SuCo 演算法: 探索適用於大規模語料的高效檢索技術。
OpenClaw

OpenClaw Expert

還是卡住了?

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