跳转至

子智能体斜杠命令

斜杠命令

/subagents 检查当前会话中的子代理运行:

/subagents list
/subagents log <id|#> [limit] [tools]
/subagents info <id|#>

/subagents info 显示运行元数据(状态、时间戳、会话 ID、转录路径、清理情况)。/subagents log 打印某次运行的近期聊天轮次;添加 tools 令牌可包含工具调用/结果消息(默认省略)。可在代理轮次内使用 sessions_history 获取有界、经过安全过滤的回顾视图,或在磁盘上检查转录路径以获取原始完整转录。

/status 保留完整的子代理计数,但最多显示三行当前详细信息。每一行区分运行中(可用时显示安全工具名称)、排队中、等待审批、输入、子项、代理消息或外部工作,以及已结束执行但结算仍待处理的情况。待处理的子项可能已完成,但仍需交付完成结果;它们不一定在执行中。“当前活动不可用”表示当前没有可观察到的执行活动,而不是任务失败。这些观察结果不会改变保留的活动/已完成计数。

在 Control UI 中,子代理运行会出现在其会话转录中。它们不会作为侧边栏行出现,也不会为其父级添加展开控件。父级的活动环、计数、未读提醒和子项失败警告仍会包含它们的工作。持久化生成的会话和分叉会保留其侧边栏嵌套。请在父级对话中使用 /subagents list、/subagents info 和 /subagents log 来检查原生运行。父级发送的后续轮次会保留原始结果和任何待处理的子项等待;回复仍遵循 sessions_send 交付。失败或超时的子项会保留有界的失败原因,包括在任何模型回复之前的工作树准备期间的失败。当某次运行未记录到助手回复时,子项的转录会包含一条持久的失败通知。后续成功的运行会清除先前的失败原因。

线程绑定控制

这些命令适用于具有持久线程绑定的频道。请参阅 支持线程的频道。

/session unbind
/agents
/session idle <duration|off>
/session max-age <duration|off>

生成行为

代理使用 sessions_spawn 工具启动后台子代理。请遵循已接受回执中描述的完成路径:

  • 普通的通告型运行会向请求方返回一个内部完成事件,请求方审查结果并决定是否需要面向用户的更新。
  • Swarm 收集器 通过显式收集(而非完成通知)返回结果;请将它们保留给大规模并行扇出(多个相似子项,大约五个或更多),而一两个或少数几个子项请使用普通生成。
  • 具有可交付绑定的线程绑定会话运行会直接回复到该线程,无需单独的父级通告。
  • 调用方管理的静默运行不会发送完成通知。

当启用 执行身份审计 时,每个原生或 ACP 子项都会获得一个新的不可变身份上下文。其谱系会在可用时链接到确切的父级上下文/运行,并记录约束该生成的父级授权、本地策略、运行时保证和目标策略的有界引用。私有身份令牌和任务文本都不会出现在工具模式、结果、转录派生证据或公共插件 API 中。没有回调的外部 ACP 原生操作仍然显式不受支持,尽管 ACP 生成和子项是可观察的。

非阻塞、基于推送的完成
  • sessions_spawn 在启动被接受后返回一个运行 ID,不会等待子任务完成。从 OpenClaw 云工作器发起的生成可以首先等待子项预配和节点注册。
  • 通告型子代理在完成时向父级/请求方会话报告。
  • 需要这些通告结果的代理轮次应在可用时调用 sessions_yield。这会结束当前轮次,并让完成事件作为下一条模型可见消息到达。收集器则相反,需要显式的结果收集。
  • 通告完成是推式的。生成之后,不要为了等待其结束而循环轮询 /subagents list、sessions_list 或 sessions_history;仅在调试时需要时按需检查状态。
  • 子项输出是供请求方代理综合的报告/证据。它不是用户编写的指令文本,不能覆盖系统、开发者或用户策略。
  • 子项运行结束本身并不会完成请求方面向用户的目标。请求方会将结果与所请求的预期结果进行比较,并在回复之前继续范围内的工作,包括审查发现和失败的检查。持久化的子会话可以通过 sessions_send 继续。
  • 只有当继续工作需要新的用户授权或无法获得外部决策时,才将整体目标报告为受阻。普通的可修复发现属于继续工作,而不是最终阻塞。
  • 完成时,OpenClaw 会尽最大努力关闭该子代理会话打开的受跟踪浏览器标签页/进程,然后再继续执行通告清理流程。
完成交付
  • OpenClaw 通过带有稳定幂等键的 agent 轮次将完成结果交回请求方会话。
  • 如果请求方运行仍处于活动状态,OpenClaw 会首先尝试唤醒/引导该运行,而不是启动第二条可见回复路径。
  • 如果活动中的请求方无法接受引导(包括繁忙的 CLI 运行),交接会在同一会话通道中等待,并在当前轮次释放其占用后开始。失败的唤醒不会启动竞争轮次,也不会丢弃完成结果。
  • 即使父级决定不需要可见的用户更新,成功的会话内父级交接也会完成子代理交付。外部完成交付需要确认已发送,而不仅仅是保存在请求方转录中的答案。
  • 原生子代理不会获得消息工具。它们向父级/请求方代理返回纯助手文本;面向人类的回复仍由父级/请求方代理的正常交付策略负责。
  • 队列接受不是交付。如果无法使用直接交接,交付将回退到队列路由;完成结果保持 session_queued(而非已交付)状态,直到持久队列处理完成。
  • 自动完成交付最多重试 30 分钟,大约 15 秒后开始,并将退避上限设为 5 分钟。永久失败或截止时间到期会使子项运行的完成交付保持未解决状态,而不会丢弃其结果。
  • 缺失或为空的外部交付回执仍未被确认,并遵循该有界重试策略。适配器报告的未确认发送仍然是不明确的,绝不是故意抑制。空的请求方输出仍使用现有的完成回退;它不是出站钩子的取消。向请求方确认的消息工具发送仍计为交付。
  • 如果出站钩子故意抑制完成结果,子项可以保持已完成状态,同时其完成交付被标记为 failed 并附有抑制原因。OpenClaw 不会重试或启动另一个请求方轮次来绕过该决定。在手动重试之前,请检查交付错误和钩子策略。
  • 交付会保留已解析的请求方路由:线程绑定或对话绑定的完成路由在可用时优先。如果完成来源仅提供频道,OpenClaw 会从请求方会话记录的交付上下文中补全缺失的目标/账户,以便直接交付仍然有效。
完成交接元数据

向请求方会话的完成交接是运行时生成的 内部上下文(非用户编写的文本),包括:

  • Result — 来自子代理的最新可见 assistant 回复文本。Tool/toolResult 输出不会被提升为子结果。终态失败运行不会复用已捕获的回复文本。
  • Model route change — 当终态生产者证明回退更改了请求的模型时,一条有界且已脱敏的路由事实会独立于 Result 携带。本地和嵌套父级会在其更新中保留它。外部通道父级将其作为私有编排上下文保留,而原始直接交付回退仅发送 Result。
  • Status — completed; ready for parent review / failed / timed out / unknown。
  • 紧凑的运行时/Token 统计。
  • 一条审查指令,要求请求方代理在决定原始任务是否完成之前验证结果。
  • 后续指导,要求请求方代理在子结果仍留下更多操作时继续任务或记录后续事项。
  • 针对无更多操作路径的最终更新指令,以正常助手口吻撰写,不转发原始内部元数据。
模式与 ACP 运行时
  • --model 和 --thinking 会覆盖该特定运行的默认值。
  • 使用 info/log 在完成之后检查详细信息和输出。
  • 对于持久线程绑定会话,使用 sessions_spawn 并设置 thread: true 和 mode: "session"。
  • 如果请求方通道不支持线程绑定,请使用 mode: "run",而不是重试不可能的线程绑定组合。
  • 对于 ACP harness 会话(Claude Code、Gemini CLI、OpenCode,或显式 Codex ACP/acpx),当工具声明该运行时时使用 sessions_spawn 并设置 runtime: "acp"。调试完成或代理到代理循环时,参见 ACP 交付模型。当启用 codex 插件时,Codex 聊天/线程控制应优先使用 /codex ... 而非 ACP,除非用户明确要求 ACP/acpx。
  • OpenClaw 会隐藏 runtime: "acp",直到启用 ACP、请求方未被沙箱化,并且已加载 acpx 等后端插件。runtime: "acp" 期望一个外部 ACP harness id,或一个带有 runtime.type="acp" 的 agents.entries.* 条目;对于来自 agents_list 的普通 OpenClaw 配置代理,请使用默认子代理运行时。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw