跳转至

子智能体

子代理是从现有代理运行中生成的后台代理运行。每个子代理都在自己的会话(agent:<agentId>:subagent:<uuid>)中运行,并且默认情况下会将其结果通告回请求方以供审查。子代理运行由原生子代理生命周期所有者跟踪。

目标:

  • 并行化研究、长任务和较慢的工具操作,而不阻塞主运行。
  • 默认保持子代理隔离(会话分离、可选沙箱)。
  • 保持工具暴露面难以被误用:子代理默认不会获得会话或消息工具。
  • 支持可配置的嵌套深度,用于编排器模式。

Note

成本说明: 默认情况下,每个子代理都有自己的上下文和 Token 用量。 对于繁重或重复性的任务,请为子代理设置更便宜的模型,并通过 agents.defaults.subagents.model 或按代理覆盖,将你的主代理保留在较高质量的模型上。 当子代理确实需要请求方当前的对话记录时,请使用 context: "fork" 生成它。绑定到线程的子代理会话默认使用 context: "fork",因为它们会将当前对话分支到后续线程中。

子代理运行会结束,但会话不会。当你在 Control UI 中打开一个子代理运行时,其对话记录是只读的。使用 composer 区域中的 打开父会话 来继续与父级的对话。当 Gateway 报告存在可中止的运行(abortable run)时,你仍然可以使用 停止。使用 visible: true 创建的持久会话是会话树中的普通会话:它们保留其父级,用于导航和完成通告,并且你随时可以在其中输入内容,像操作其他任何会话一样引导它们。

在内部 QA、研究、编码、审查和测试通道中使用普通子代理,并将结果返回给父任务。仅当用户请求单独会话,或需要返回并独立引导该工作时,才创建持久可见的会话。仅凭一个 PR 或报告、一次长时间运行或一个隔离工作树,并不能让一个工作代理成为独立的面向用户的任务。请求子代理并不意味着请求新的侧边栏会话或分类。

本页是一个索引页。子代理在七个页面中有文档说明,每个页面对应一种读者任务。请打开与你的任务匹配的页面。

页面 适用场景
子代理斜杠命令 你想从聊天中检查某个运行,或需要了解完成投递规则。
子代理工具参考 你正在调用 sessions_spawn、sessions_yield 或 subagents,并且需要参数。
绑定线程的子代理会话 你正在将子代理绑定到频道线程,或需要允许列表和归档规则。
嵌套子代理与身份验证 你正在构建编排器,需要深度上限、通告链或身份验证。
子代理通告 你在调试子结果如何到达请求方。
子代理工具策略 你需要了解子代理始终无法使用的工具,或希望进一步限制这些工具。
子代理并发、恢复与停止 你在调整并发、在重启后恢复,或停止子代理树。

每个章节移到了哪里

旧版单页中的每个章节标题、折叠面板、步骤和参数 ID 都在此保留其锚点,因此诸如 /tools/subagents#thread-bound-sessions 的既有链接仍然可以解析。每个条目都指向现在包含对应内容的页面。

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