Appearance
Session Tools(会话工具)
OpenClaw 为 agent 提供了一套跨会话工作、检查状态和编排子代理的工具。养好这些"小虾兵",你就能轻松调度整个龙虾军团。
可用工具
| 工具 | 说明 |
|---|---|
sessions_list | 列出会话(可按 kind、recency 过滤) |
sessions_history | 读取指定会话的对话记录 |
sessions_send | 向另一个会话发消息,可选等待回复 |
sessions_spawn | 派生隔离的子代理会话用于后台任务 |
sessions_yield | 结束当前 turn,等待子代理后续结果 |
subagents | 列出、引导或终止已派生的子代理 |
session_status | 显示 /status 卡片,可设置本会话的模型 override |
列表和历史读取
sessions_list 返回会话的 key、kind、channel、model、token 数和时间戳。可按 kind(main、group、cron、hook、node)或最近活跃时间(activeMinutes)过滤。
sessions_history 获取指定会话的对话记录,默认不含工具结果(传 includeTools: true 可包含)。返回内容经安全过滤:
- 去除 thinking 标签、内存脚手架块、tool-call XML 等内部占位符
- 凭据/Token 类文本脱敏
- 超大历史会截断或省略过大行,并在结果中标注
truncated、droppedMessages等标志
如需精确的原始字节记录,直接读磁盘的 transcript 文件,不要把
sessions_history当原始转储。
跨会话消息发送
sessions_send 将消息送到另一个会话:
- fire-and-forget:设
timeoutSeconds: 0,入队后立即返回 - 等待回复:设置超时,回复内联返回
目标 agent 回复后,OpenClaw 可运行回复循环(最多 5 轮交替消息)。目标 agent 回复 REPLY_SKIP 可提前中止。
状态与编排辅助工具
session_status 是当前或其他可见会话的轻量级 /status 工具,报告用量、时间、模型/运行状态以及关联后台任务上下文。设 model=default 可清除本会话的模型 override。
sessions_yield 主动结束当前 turn,使下一条消息成为等待中的后续事件,避免构建轮询循环。
subagents 是已派生 OpenClaw 子代理的控制台:
action: "list"— 查看活跃/近期运行action: "steer"— 向运行中的子代理发送引导指令action: "kill"— 停止单个或全部子代理
派生子代理
sessions_spawn 创建隔离的后台任务会话,始终非阻塞(立即返回 runId 和 childSessionKey)。
关键选项:
runtime: "subagent"(默认)或"acp"(外部 harness agent)model和thinking子会话 overridethread: true— 绑定到聊天 thread(Discord、Slack 等)sandbox: "require"— 强制子会话沙箱化
叶子子代理默认不获得会话工具。当 maxSpawnDepth >= 2 时,深度 1 的编排子代理额外获得 sessions_spawn、subagents、sessions_list、sessions_history,可管理自己的子代理。叶子节点仍不获得递归编排工具。
可见性级别
| 级别 | 范围 |
|---|---|
self | 仅当前会话 |
tree | 当前会话 + 派生子代理 |
agent | 该 agent 的所有会话 |
all | 所有会话(如配置了跨 agent) |
默认为 tree。沙箱会话固定为 tree,忽略配置。
FAQ
Q:如何知道子代理完成了? 使用 sessions_yield 结束 turn,子代理完成后结果会作为下一条消息送达,无需手动轮询。
Q:子代理能再派生子代理吗? 能,但需要 maxSpawnDepth >= 2,且只有深度 1 的编排子代理有此能力,叶子子代理不行。
延伸阅读
- Session 管理 — 路由、生命周期、维护
- ACP Agents — 外部 harness 派生
- Multi-agent — 多 agent 架构
- Gateway 配置 — 会话工具配置项