Delegation
delegate_task 允许父 agent 派生一个隔离的子 agent,专门处理某个局部任务,再把结果总结返回。
子 agent 继承的内容
子 agent 不是完整复制父 agent,而是会被刻意收窄:
memory.enable=falseagent.skip_context_files=trueagent.quiet_mode=truetools.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
}