Sessions and memory
主要工作階段
OpenClaw 首先是一個個人代理。開箱即用時,你傳送給它的每則直接訊息——無論來自 Telegram、WhatsApp、iMessage、Slack 私訊、網頁應用程式或任何地方——都會進入同一個持續延伸的對話:主工作階段。你可以在手機上提問,再從筆記型電腦追問,代理在兩處都擁有相同的脈絡。它只有一個大腦,而這裡就是它思考的地方。
在底層,主工作階段是金鑰為
agent:<agentId>:main(例如 agent:main:main)的一般工作階段。它的特殊之處
在於預設的私訊範圍會將所有直接訊息彙整到其中,而系統的其他部分
則將它視為代理的根:心跳偵測會喚醒它、背景工作會向它回報,
其他地方的活動也會向上匯入其中。
首頁
在網頁應用程式中,主工作階段就是首頁頁面——側邊欄的第一個項目。 頂端的身分列代表你的代理(按一下即可開啟代理選單); 首頁則是你與它交談的地方。從主對話分支出的工作階段會顯示在 討論串下,群組聊天顯示在群組下,而程式設計/命令列介面工作階段則顯示在程式設計下。
匯入主工作階段的內容
主工作階段不只是聊天記錄;它是代理世界匯聚之處:
- 群組活動。 群組和聊天室工作階段會保持隔離(見下文),但 在預設的私訊範圍下,主工作階段會自動監看它們。 活動會排入佇列,形成精簡通知——依每個對話合併,絕不會 每則訊息都喚醒一次——代理會在下次執行時看到它們:可能是在 你傳送下一則訊息時,或排定的心跳偵測執行時。代理也能讀取它監看的 工作階段,因此「家庭群組裡有哪些我錯過的訊息?」這類問題也能處理。
- 背景工作。 子代理與產生的工作階段會將結果 回報給啟動它們的工作階段,因此代理從 首頁發起的工作會回報到首頁。
- 心跳偵測。 排定的心跳偵測會以主工作階段為目標,因此 即使你尚未傳送任何訊息,排入佇列的通知也能轉化為代理的認知。
跨重設與對話的記憶
持續延伸的對話受模型脈絡視窗限制,因此 連續性來自其周圍的多個層次:
MEMORY.md是代理精心整理的長期記憶,會載入每個 全新的工作階段。每日筆記(memory/YYYY-MM-DD.md)可隨需搜尋, 而近期筆記會在/new或/reset後重新預載。在壓縮前, 代理會將需要持久保存的事實寫入每日筆記,讓長對話 不會在不知不覺間遺失它們。- 跨對話記憶回想可讓代理回想
其他私人工作階段中的內容。在個人設定中——全域
session.dmScope解析為main,且沒有個別繫結的私訊覆寫——此功能 預設啟用;任何已設定的私訊隔離都會將其關閉,除非你 明確選擇啟用。請參閱記憶設定。
具有持久歷史記錄的持續延伸工作階段
主工作階段會透過重設與壓縮持續向前推進,而不是 讓模型一次承載完整歷史記錄:
- 預設不會自動重設;壓縮會限制使用中的脈絡大小,
同時保留持續延伸的工作階段。每日與閒置重設皆為
選用功能(請參閱工作階段管理)。執行
/new和/reset時, 即將結束之對話的尾段會儲存至每日記憶筆記, 而下一個工作階段會重新預載近期筆記。重設會指派新的即時工作階段 ID,但 先前的 SQLite 對話記錄仍可透過相同的主工作階段 金鑰搜尋。 - 當對話接近脈絡視窗限制時,壓縮會進行摘要 並在原處繼續——對話記錄歷史仍會保留在工作階段儲存區中。
- 工作階段清單會顯示目前的即時對話,而非其背後的每個歷史 工作階段 ID。
- 當每個代理儲存區的實體資料庫、WAL 和工作階段成品 超過磁碟預算(預設為 10 GB)時,OpenClaw 會將最舊且 未被參照的歷史記錄擷取至經驗證的壓縮封存檔,再移除對應的 資料庫資料列。即時、已路由及處理中的工作階段絕不會因預算限制而遭移除。
改用隔離的情況
對於只有你會與之交談的代理,共用主工作階段是合適的預設值。 如果有多人可以傳訊息給你的代理,請隔離私訊:
{ session: { dmScope: "per-channel-peer", },}使用隔離範圍時,每位傳送者都會獲得各自的工作階段,主工作階段的
群組監看會停用,跨對話記憶回想也預設關閉。openclaw security audit 在偵測到
多位私訊傳送者時會建議採用隔離。完整的範圍矩陣、身分連結及各路由
覆寫,請參閱工作階段管理和
頻道路由。
相關內容
Was this useful?