Technical Guide

13. Sub-agents 原理:多智能体什么时候值得拆

理解 Sub-agent 的边界:它适合隔离上下文和并行子任务,但不适合把一个模糊任务随便拆碎。

多 Agent 不是越多越好

Sub-agent 很容易被讲得很玄。

实际使用时,它更像临时同事:给它一个边界清楚的小任务,让它独立做完,再把结果交回来。

如果任务本身都没想清楚,拆成多个 Agent 只会更乱。

什么时候值得拆

适合拆的任务有几个特点:

子任务边界清楚
输入材料明确
输出格式明确
结果可以被主 Agent 验证

例如研究任务里,可以让不同子 Agent 分别查:技术架构、竞品、部署方式。

什么时候不该拆

不适合拆的情况:

任务很短
目标还不清楚
需要连续对话澄清
输出无法验证
多个子任务强依赖同一个上下文

这种时候,拆分只会增加沟通成本。

DeerFlow 里的相关目录

源码位置:

backend/packages/harness/deerflow/subagents/

能看到 registry、executor、config、status_contract、token_collector 等文件。

这些名字说明,子 Agent 不只是“再开一个模型”。它还涉及注册、执行、状态协议和 token 收集。

这一篇你要记住

Sub-agent 的价值是隔离和分工,不是制造复杂度。

拆之前先问一句:这个子任务能不能独立完成,结果能不能验收?

子 Agent 的输入要怎么写

给子 Agent 的任务要比给主 Agent 更窄。

不要写:

帮我研究 DeerFlow。

更好:

只查看 DeerFlow 的 tools 相关目录,列出工具注册和内置工具相关文件,每个文件用一句话说明职责。

边界越清楚,子 Agent 越不容易跑偏。

子 Agent 的输出要能验收

主 Agent 需要汇总结果,所以子 Agent 输出最好固定格式:

结论
证据
文件路径或来源
不确定点

如果子 Agent 只返回一段散文,主 Agent 很难判断哪些内容可靠。

一个简单判断

如果你不能写清楚子 Agent 的输入和输出,就先不要拆。