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 的输入和输出,就先不要拆。

实践:动手检查

把“分析 DeerFlow 的 Tools / Skills / MCP 边界”拆成两个子任务。每个子任务只写四项:输入材料、负责范围、禁止事项、输出格式。

完成标准

  • 两个子任务能独立完成;
  • 输出都包含结论、证据、路径或来源、不确定点;
  • 两者不会重复生成完整报告;
  • 主 Agent 能直接检查并汇总结果。

多走一步(可选)

删掉其中一个子任务,判断主 Agent 直接完成是否更省成本;如果是,就不要拆。