四層記憶架構
| 層級 | 存儲位置 | 生命週期 | 說明 |
|---|---|---|---|
| SOUL | SOUL.md | 永久不可變 | Agent 人格、價值觀、核心身份,創建後不應被修改 |
| TOOLS | Skills + Extensions | 按需加載 | 當前可用工具與技能,動態變化 |
| USER | MEMORY.md + 向量庫 | 持久化 | 關於用戶的偏好、決策、歷史事實,支援語義搜尋 |
| Session | 內存 + sessions.json | 會話級 | 當前對話上下文,Token 耗盡時被壓縮 |
Daily Logs 日誌系統
每天的互動以 append-only 方式寫入 memory/YYYY-MM-DD.md。Session 開始時 Agent 自動讀取今天與昨天的日誌,為對話提供連續性。
# memory/2026-03-08.md
## 10:23 - 用戶詢問天氣
查詢了北京天氣,回覆晴轉多雲,15-22°C
## 14:05 - 代碼審查任務
幫用戶審查了 api/routes.ts,發現 3 個潛在問題...自動記憶:Pre-Compaction
當 Session 接近 token 上限(預設約 4000 tokens)時,OpenClaw 觸發一個 silent agentic turn:1) 檢測閾值;2) 在後台執行隱藏 turn 將重要記憶寫入 MEMORY.md 與 Daily Log;3) 壓縮舊上下文,用戶看不到(回傳 NO_REPLY)。這保證即使對話極長,關鍵資訊也不會丟失。
向量記憶搜尋
| 策略 | 原理 | 擅長 |
|---|---|---|
| Embedding 向量 | 將文本轉為向量,計算語義相似度 | 模糊搜尋、語義關聯 |
| BM25 關鍵詞 | TF-IDF 加權關鍵詞匹配 | 精確匹配(檔名、命令、人名) |
底層使用 SQLite-vec 進行向量存儲與檢索。系統監聽記憶檔案變化,以 debounced 方式自動重建索引。工具:memory_search 做語義搜尋(返回約 400 token 的 chunks);memory_get 讀取特定檔案全文。