跳转到内容

会话工具

OpenClaw 为代理提供了跨会话工作的工具——列出对话、读取历史记录、向其他会话发送消息以及生成子代理。

工具功能
sessions_list使用可选过滤器(种类、最近时间)列出会话
sessions_history读取特定会话的记录
sessions_send向另一个会话发送消息并可选择等待
sessions_spawn为后台任务生成一个隔离的子代理会话

sessions_list 返回会话及其密钥、种类、渠道、模型、令牌计数和时间戳。可以按种类(maingroupcronhooknode)或最近时间(activeMinutes)进行筛选。

sessions_history 获取特定会话的对话记录。默认情况下,工具结果被排除在外——传递 includeTools: true 以查看它们。

这两个工具都接受 会话密钥(如 "main")或来自先前列表调用的 会话 ID

sessions_send 将消息传递到另一个会话并可选择等待响应:

  • 发送后不管: 设置 timeoutSeconds: 0 以立即入队并返回。
  • 等待回复: 设置超时时间并内联获取响应。

目标响应后,OpenClaw 可以运行 回复循环,其中代理交替发送消息(最多 5 轮)。目标代理可以回复 REPLY_SKIP 以提前停止。

sessions_spawn 为后台任务创建一个隔离的会话。它始终是非阻塞的——它立即返回 runIdchildSessionKey

关键选项:

  • runtime: "subagent" (默认) 或 "acp" 用于外部 harness 代理。
  • modelthinking 用于子会话的覆盖设置。
  • thread: true 将生成绑定到聊天线程 (Discord, Slack 等)。
  • sandbox: "require" 对子项强制执行沙箱隔离。

子代理获得完整的工具集,但不包括会话工具(无递归生成)。 完成后,通知步骤会将结果发布到请求者的渠道。

有关 ACP 特定的行为,请参阅 ACP 代理

会话工具具有作用域,用于限制代理可以看到的内容:

级别作用域
self仅当前会话
tree当前会话 + 生成的子代理
agent此代理的所有会话
all所有会话(如果已配置,则跨代理)

默认为 tree。沙箱隔离的会话将被限制为 tree,而无论 配置如何。