跳到內容

使用 OpenClaw Session Tools 管理對話紀錄與訊息

開發 AI Agent 時,最頭痛的就是如何讓不同的對話串接起來。你可能遇過這種情況:想要 Agent 參考之前的對話紀錄,或是希望它能把繁重的工作丟給另一個小弟(子代理)去處理,但手邊卻沒有好用的工具來管理這些跨 Session 的溝通,導致開發流程變得非常破碎。

OpenClaw 提供了一套工具,讓 Agent 可以跨 Session 工作——包括列出對話、讀取歷史紀錄、傳送訊息給其他 Session,甚至是產生子代理。

ToolWhat it does
sessions_listList sessions with optional filters (kind, recency)
sessions_historyRead the transcript of a specific session
sessions_sendSend a message to another session and optionally wait
sessions_spawnSpawn an isolated sub-agent session for background work

列出與讀取 Session (Listing and reading sessions)

Section titled “列出與讀取 Session (Listing and reading sessions)”

sessions_list 會回傳 Session 的 key, kind, channel, model, token 數量以及時間戳記。你可以透過 kind (main, group, cron, hook, node) 或活躍時間 (activeMinutes) 來進行過濾。

sessions_history 則是用來抓取特定 Session 的對話內容。預設情況下,工具執行的結果會被排除——如果你想看到這些內容,請傳入 includeTools: true。

這兩個工具都接受 session key(例如 "main")或是從先前列表呼叫中取得的 session ID。

跨 Session 傳送訊息 (Sending cross-session messages)

Section titled “跨 Session 傳送訊息 (Sending cross-session messages)”

sessions_send 可以把訊息傳送到另一個 Session,並選擇性地等待回應:

  • 丟了就管 (Fire-and-forget): 將 timeoutSeconds 設為 0,訊息會進入排隊並立即回傳。
  • 等待回覆: 設定一個 timeout 時間,就能直接在當前流程中取得回應。

當目標回應後,OpenClaw 可以執行一個 reply-back loop,讓兩個 Agent 輪流對話(最多 5 個回合)。目標 Agent 可以回傳 REPLY_SKIP 來提早結束對話。

sessions_spawn 會為背景任務建立一個獨立的 Session。這個操作永遠是非阻塞 (non-blocking) 的——它會立即回傳 runId 和 childSessionKey。

關鍵選項:

  • runtime: 預設為 "subagent",或是針對外部 harness Agent 使用 "acp"。
  • model 與 thinking: 可以為子 Session 覆蓋原有的模型與思考設定。
  • thread: true: 將產生的 Session 綁定到特定的聊天執行緒(如 Discord, Slack 等)。
  • sandbox: "require": 強制對子 Session 啟用沙箱機制。

子代理會繼承完整的工具集,但排除 Session 工具(避免遞迴產生子代理)。任務完成後,會有一個通知步驟將結果發送到請求者的頻道。

關於 ACP 的特定行為,請參考 ACP Agents。

Session 工具設有範圍限制,以控管 Agent 能看到的內容:

LevelScope
selfOnly the current session
treeCurrent session + spawned sub-agents
agentAll sessions for this agent
allAll sessions (cross-agent if configured)

預設值是 tree。無論設定為何,受沙箱保護的 Session 都會被限制在 tree 範圍內。

如果你在設定上遇到任何問題,歡迎詢問我們的 AI Setup Assistant。

OpenClaw

OpenClaw Expert

還是卡住了?

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