委派与子 Agent
delegate_task 工具允许 AI 将子任务交给独立的子 Agent 执行。子 Agent 拥有隔离的上下文和执行环境,完成后将结果汇报给父 Agent。
什么是委派
当主 Agent 面对复杂任务时,可以将子任务委派给子 Agent:
- 子 Agent 在独立的上下文中执行
- 子 Agent 继承父 Agent 的 Actor 身份(记忆归属一致)
- 执行完成后,子 Agent 返回摘要给父 Agent
- 父 Agent 综合各子 Agent 的结果继续推进任务
两种委派模式
同步委派(默认)
父 Agent 发出委派后等待子 Agent 完成:
- 子 Agent 执行结束后,父 Agent 继续
- 适合需要子 Agent 结果才能继续的场景
后台委派
设置 background=true 时,父 Agent 立即获得一个委派 ID 并继续工作:
- 子 Agent 在后台异步执行
- 结果通过异步完成队列回到父 Agent 的对话中
- 适合可并行执行的独立子任务
两种角色
| 角色 | 说明 | 能力 |
|---|---|---|
leaf(默认) | 专注的执行者 | 不能再委派、不能调用 clarify/memory/send_message |
orchestrator | 编排者 | 保留 delegate_task,可以继续拆分子任务 |
Orchestrator 角色受以下配置限制:
delegation.orchestrator_enabled:是否允许编排者角色(默认开启)delegation.max_spawn_depth:最大委派深度(默认 2 层)
批量并行委派
delegate_task 支持批量模式:传入 tasks: [...] 列表,每个任务获得独立的子 Agent 并发执行。
并发数量受 delegation.max_concurrent_children 限制(默认 3)。
Actor 继承
子 Agent 的 Actor 身份继承自父 Agent:
- 子 Agent 的记忆写入归属与父 Agent 相同的用户
- 子 Agent 产生的 Run 记录在观测面上归属同一个 Actor
- 子 Agent 的 Token 消耗计入同一个 Actor 的用量
这确保了多层委派下数据归属的一致性。
执行预算
子 Agent 共享父 Agent 的迭代预算(max_iterations):
- 所有层级的 Agent 共同消耗同一个预算池
- 防止深层委派导致无限递归
配置项
| 配置 | 默认值 | 说明 |
|---|---|---|
delegation.max_concurrent_children | 3 | 最大并发子 Agent 数 |
delegation.max_spawn_depth | 2 | 最大委派深度 |
delegation.child_timeout_seconds | — | 子 Agent 超时时间 |
delegation.orchestrator_enabled | true | 是否允许 orchestrator 角色 |
delegation.subagent_auto_approve | — | 子 Agent 是否自动批准操作 |
delegation.inherit_mcp_toolsets | — | 子 Agent 是否继承 MCP 工具 |
注意事项
- 后台委派是进程级的——如果应用重启,后台子 Agent 会丢失
- 需要持久化执行的任务,建议使用定时任务(Cron)而非后台委派
- 子 Agent 的工具集可以在委派时单独指定
相关文档
- Plan 系统使用 →
plan-usage.md - 定时任务 →
cron.md - HITL 审批 →
hitl-approval.md - Run 生命周期 →
run-lifecycle.md