跳到主要内容

Delegation

delegate_task 允许父 agent 派生一个隔离的子 agent,专门处理某个局部任务,再把结果总结返回。

子 agent 继承的内容

子 agent 不是完整复制父 agent,而是会被刻意收窄:

  • memory.enable=false
  • agent.skip_context_files=true
  • agent.quiet_mode=true
  • tools.delegate_task.enabled=false
  • 只保留被允许的 builtin tools
  • 可选地切换到另一套 llm 配置

这意味着它更像一次“受限 worker 调用”,不是无限递归的多 agent 树。

参数

参数说明
goal子任务目标,必填
context背景信息或约束
allowed_tools子 agent 可见的工具白名单
max_iterations子 agent 的最大迭代次数

配置

tools:
delegate_task:
enabled: true
max_depth: 2
max_iterations: 20
blocked_tools:
- delegate_task

还可以额外配置 tools.delegate_task.model,让子任务用更便宜或更快的模型。

安全限制

  • 默认关闭,需要显式开启 tools.delegate_task.enabled
  • current_depth >= max_depth 时会拒绝继续派生
  • blocked_tools 永远优先于 allowed_tools
  • 子 agent 最终只返回一个结构化状态和纯文本总结

示例

{
"tool": "delegate_task",
"goal": "Summarize the HTTP channel implementation and list public endpoints",
"allowed_tools": ["read", "exec"],
"max_iterations": 8
}