子智能体
子代理是从现有代理运行中生成的后台代理运行。每个子代理都在自己的会话(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 的既有链接仍然可以解析。每个条目都指向现在包含对应内容的页面。
- 斜杠命令
- 线程绑定控制
- 生成行为
- 非阻塞、基于推送的完成
- 完成投递
- 完成交接元数据
- 模式与 ACP 运行时
- 上下文模式
- 工具:
sessions_spawn - 委派提示模式
- 工具参数
tasktaskNamelabelagentIdcwdruntimeresumeSessionIdstreamTomodelrunTimeoutSecondsthinkingthreadmodecleanupexpectsCompletionMessagesandboxcontextprojectIdprojectGitUrlvisiblegroupworktreeworktreeNameworktreeBaseRef- 任务名称与目标定位
- 工具:
sessions_yield - 工具:
subagents - 绑定线程的会话
- 支持线程的频道
- 快速流程
- 生成
- 绑定
- 路由后续消息
- 检查超时
- 分离
- 手动控制
- 配置开关
- 允许列表
agents.entries.*.subagents.allowAgentsagents.defaults.subagents.allowAgentsagents.defaults.subagents.requireAgentIdagents.defaults.subagents.announceTimeoutMs- 发现
- 自动归档
- 嵌套子代理
- 深度级别
- 通告链
- 按深度的工具策略
- 每代理生成限制
- 重置对话
- 级联停止
- 身份验证
- 通告
- 通告上下文
- 统计行
- 为何优先使用
sessions_history - 工具策略
- 通过配置覆盖
- 并发
- 活跃度与恢复
- 停止
- 限制
相关¶
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw