Sessions and memory

記憶概覽

OpenClaw 透過在你的代理工作區中寫入純 Markdown 檔案來記住事情。模型只會「記得」已儲存到磁碟的內容,沒有隱藏狀態。

運作方式

你的代理有三個與記憶相關的檔案:

  • MEMORY.md — 長期記憶。持久的事實、偏好和決策。會在每個 DM 工作階段開始時載入。
  • memory/YYYY-MM-DD.md — 每日筆記。進行中的脈絡和觀察。今天和昨天的筆記會自動載入。
  • DREAMS.md(選用)— Dream Diary 和 Dreaming 掃描摘要,供人員審閱,包含有根據的歷史回填項目。

這些檔案位於代理工作區中(預設為 ~/.openclaw/workspace)。

內容應放在哪裡

MEMORY.md 是精簡、經整理的層級。用於持久的事實、偏好、既定決策,以及應在主要私人工作階段開始時可用的簡短摘要。它並非用來作為原始逐字稿、每日記錄或完整封存。

memory/YYYY-MM-DD.md 檔案是工作層級。用於詳細的每日筆記、觀察、工作階段摘要,以及日後可能仍有用的原始脈絡。這些檔案會被索引用於 memory_searchmemory_get,但不會在每一輪都注入一般的啟動提示中。

隨著時間推移,代理應該將每日筆記中的有用材料提煉到 MEMORY.md,並移除過時的長期項目。產生的工作區指示和 Heartbeat 流程可以定期執行這件事;你不需要為每個記住的細節手動編輯 MEMORY.md

如果 MEMORY.md 超過啟動檔案預算,OpenClaw 會完整保留磁碟上的檔案,但會截斷注入模型脈絡的副本。請將這視為一個訊號:把詳細材料移回 memory/*.md,在 MEMORY.md 中只保留持久摘要,或是在你明確想花更多提示預算時提高啟動限制。使用 /context list/context detailopenclaw doctor 查看原始大小與注入大小,以及截斷狀態。

推斷的承諾

有些未來的後續事項不是持久事實。如果你提到明天有面試,有用的記憶可能是「面試後關心一下」,而不是「永遠儲存在 MEMORY.md 中」。

Commitments 是針對這種情況的選用、短期後續記憶。OpenClaw 會在隱藏的背景流程中推斷它們,將範圍限定在同一個代理和頻道,並透過 Heartbeat 傳送到期的關心訊息。明確的提醒仍使用排程任務

記憶工具

代理有兩個用於處理記憶的工具:

  • memory_search — 使用語意搜尋尋找相關筆記,即使用詞與原文不同也能找到。
  • memory_get — 讀取特定記憶檔案或行範圍。

這兩個工具由 Active Memory Plugin 提供(預設:memory-core)。

Memory Wiki 隨附 Plugin

如果你希望持久記憶的行為更像維護中的知識庫,而不只是原始筆記,請使用隨附的 memory-wiki Plugin。

memory-wiki 會將持久知識編譯成 wiki vault,包含:

  • 確定性的頁面結構
  • 結構化主張和證據
  • 矛盾與新鮮度追蹤
  • 產生的儀表板
  • 提供給代理/執行階段消費者的編譯摘要
  • wiki 原生工具,例如 wiki_searchwiki_getwiki_applywiki_lint

它不會取代 Active Memory Plugin。Active Memory Plugin 仍負責回憶、提升和 Dreaming。memory-wiki 會在旁邊新增一個富含來源脈絡的知識層。

請參閱 Memory Wiki

記憶搜尋

設定嵌入提供者後,memory_search 會使用混合搜尋,結合向量相似度(語意意義)與關鍵字比對(ID 和程式碼符號等精確詞彙)。只要你有任何支援提供者的 API 金鑰,就能立即使用。

如需搜尋運作方式、調整選項和提供者設定的詳細資訊,請參閱記憶搜尋

記憶後端

知識 wiki 層

自動記憶清除

Compaction 摘要你的對話之前,OpenClaw 會執行一個靜默回合,提醒代理將重要脈絡儲存到記憶檔案。這是預設啟用的,你不需要設定任何東西。

若要將這個整理回合保留在本機模型上,請設定精確的記憶清除模型覆寫:

json
{  "agents": {    "defaults": {      "compaction": {        "memoryFlush": {          "model": "ollama/qwen3:8b"        }      }    }  }}

此覆寫只套用於記憶清除回合,不會繼承作用中工作階段的備援鏈。

Dreaming

Dreaming 是記憶的選用背景整合流程。它會收集短期訊號、為候選項目評分,並只將符合資格的項目提升到長期記憶(MEMORY.md)。

它的設計目標是讓長期記憶保持高訊號:

  • 選用:預設停用。
  • 已排程:啟用後,memory-core 會自動管理一個週期性的 Cron 工作,用於完整 Dreaming 掃描。
  • 有門檻:提升必須通過分數、回憶頻率和查詢多樣性門檻。
  • 可審閱:階段摘要和日記項目會寫入 DREAMS.md,供人員審閱。

如需階段行為、評分訊號和 Dream Diary 詳細資訊,請參閱 Dreaming

有根據的回填與即時提升

Dreaming 系統現在有兩個密切相關的審閱管道:

  • 即時 Dreaming 會使用 memory/.dreams/ 底下的短期 Dreaming 儲存區,也就是一般深度階段在判斷哪些內容可以升級到 MEMORY.md 時所使用的來源。
  • 有根據的回填 會將歷史 memory/YYYY-MM-DD.md 筆記作為獨立每日檔案讀取,並將結構化審閱輸出寫入 DREAMS.md

當你想重播較舊的筆記,並檢查系統認為哪些內容是持久內容,而不想手動編輯 MEMORY.md 時,有根據的回填很有用。

當你使用:

bash
openclaw memory rem-backfill --path ./memory --stage-short-term

有根據的持久候選項目不會直接被提升。它們會被暫存到一般深度階段已在使用的同一個短期 Dreaming 儲存區。這表示:

  • DREAMS.md 仍是人員審閱介面。
  • 短期儲存區仍是面向機器的排序介面。
  • MEMORY.md 仍只由深度提升寫入。

如果你認為這次重播沒有用,可以移除暫存成品,而不影響一般日記項目或正常回憶狀態:

bash
openclaw memory rem-backfill --rollbackopenclaw memory rem-backfill --rollback-short-term

CLI

bash
openclaw memory status          # Check index status and provideropenclaw memory search "query"  # Search from the command lineopenclaw memory index --force   # Rebuild the index

延伸閱讀

相關

Was this useful?