Technical Guide
16. Delegation:子 Agent 和并行任务怎么跑
理解 Hermes 如何把复杂任务拆给子 Agent,并在隔离上下文里执行。
这篇解决什么问题
有些任务不适合一个 Agent 从头做到尾。
比如:一边查资料,一边读源码,一边做代码审查;或者让多个 Agent 并行比较不同方案。
Hermes 的 Delegation 解决的是:把一个任务拆给子 Agent。
Delegation 和 Tool 的区别
Tool 是一次函数调用。
Delegation 是启动另一个 Agent 执行一段任务。
可以理解成:
Tool:帮我读这个文件
Delegation:你单独研究这个模块,最后给我结论
子 Agent 有自己的上下文、终端会话和工具集。它最后只把总结返回给父 Agent。
为什么要隔离上下文
如果父 Agent 把所有细节都放进当前上下文,很快会爆。
Delegation 的好处是:
- 子任务细节不污染主上下文;
- 多个子任务可以并行;
- 每个子 Agent 可以只拿必要工具;
- 父 Agent 只接收最终摘要。
这适合研究、审查、比较、调试这类任务。
什么时候不要用 Delegation
不要把简单工具调用也丢给子 Agent。
比如:
读一个文件
查一个命令输出
跑一次 npm build
这些直接用工具更快。
Delegation 更适合:
有独立上下文
需要多步推理
会产生大量中间信息
可以并行完成
典型链路
简化看:
父 Agent 调用 delegate_task
→ 创建子 Agent 会话
→ 传入 goal / context / toolsets
→ 子 Agent 独立执行
→ 返回 summary
→ 父 Agent 根据 summary 继续决策
如果是 batch 模式,就会创建多个子任务并行跑。
工具集限制很关键
Delegation 最好给明确工具集。
比如研究任务只给:
web
file
代码任务给:
terminal
file
不要默认给太多工具。工具越多,子 Agent 的行为边界越宽,也越容易偏。
子 Agent 不是事实担保
子 Agent 的最终总结是“自报告”。
如果它说“我写好了文件”或“我上传成功了”,父 Agent 不能直接相信。对有副作用的任务,要验证:
文件是否存在
内容是否正确
URL 是否能访问
命令是否真的通过
git diff 是否符合预期
这点在多 Agent 工作流里很重要。
和 Cron 的区别
Delegation 不是长期后台系统。
它适合当前任务里的并行子工作。
Cron 适合定时、持久、无人值守任务。
如果任务需要明天继续跑,不要用 Delegation,应该用 Cron 或后台进程。
下一篇看什么
下一篇看安全边界。
当 Agent 能跑命令、读文件、接外部工具、拉子 Agent 时,安全边界就不能靠“模型自觉”。