Skip to main content
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 會先將最舊且未被參照的歷史記錄擷取至經驗證的壓縮封存檔,再移除其資料庫資料列。即時、已路由及執行中的工作階段絕不會因磁碟預算而遭到移除。

當你需要隔離時

對於只有你會與其對話的代理程式,共用主要工作階段是合適的預設值。如果有多人可以向你的代理程式傳送訊息,請隔離私訊:
使用隔離範圍時,每位傳送者都會取得自己的工作階段,主要工作階段的群組監看功能會停用,而跨對話記憶回想功能預設也會關閉。openclaw security audit 偵測到多位私訊傳送者時,會建議使用隔離。完整的範圍矩陣、身分連結及各路由覆寫,請參閱工作階段管理頻道路由

相關內容