AI优先|善用Subagent:让一个主Agent同时调度多个子代理
上一篇讲的是:
不要把整个工作系统只压在一个独立Agent上。
这一篇讲另一个层级的问题:
一个Agent内部,也不应该什么事情都自己从头做到尾。
如果一个任务足够复杂,完全可以让主Agent自己再拆出几个Subagent,也就是子代理,分别完成不同部分。
最后再由主Agent汇总。
这和“多个独立Agent协作”不是一回事。
简单说:
多Agent,是几个独立智能体之间协作。
Subagent,是一个主Agent内部自己组织分工。
我觉得,真正复杂的AI任务,越来越会依赖后者。
一、Subagent本质上是“内部团队”
可以把主Agent想象成一个项目负责人。
它拿到一个复杂任务以后,不一定所有事情都自己做。
它可以把任务进一步拆开。
比如一个复杂法律研究任务,可以拆成:
- 一个子代理查法律法规;
- 一个子代理查案例;
- 一个子代理整理事实;
- 一个子代理专门找反方观点;
- 一个子代理检查引用和结论。
最后再由主Agent统一汇总。
所以Subagent的价值不只是“多开几个AI”。
而是:
让一个复杂任务内部形成分工。
这时候主Agent负责的是:
- 理解目标;
- 拆任务;
- 安排分工;
- 控制方向;
- 汇总结果;
- 做最终判断。
子代理负责的是:
把某一个局部任务做深。
二、什么时候适合用Subagent
并不是所有任务都需要子代理。
如果只是:
改一段文字;查一个问题;审一份简单合同;处理一个小文件;
直接让主Agent做就够了。
Subagent更适合几类任务。
第一类,任务天然可以拆成多个模块。
比如尽调可以按公司治理、劳动、知识产权、诉讼、合规分别处理。
第二类,需要并行搜索大量信息。
比如同时查多个公司、多个案例、多个监管文件。
第三类,需要不同视角互相挑战。
比如一个子代理支持某个结论,另一个专门寻找反例。
第四类,任务很长,容易把主上下文弄得很乱。
这时候可以把大量局部工作交给子代理,主Agent只保留关键信息。
所以我现在判断要不要用Subagent,会先问一句:
这个任务是不是已经复杂到“一个人做所有细节”不划算了?
如果是,就值得拆。
三、Subagent最大的价值,是并行
这一点和多个独立Agent有点像,但发生在不同层级。
例如让主Agent整理50家公司。
如果它一家公司一家公司处理:
第1家;第2家;第3家;
效率会比较低。
如果系统允许,主Agent可以同时分出几个子代理:
- 子代理A处理1—10家;
- 子代理B处理11—20家;
- 子代理C处理21—30家;
- 子代理D处理31—40家;
- 子代理E处理41—50家。
最后主Agent统一校验字段和格式。
这时候一个任务内部就实现了并行。
所以以后我们评估一个AI任务,不应该只问:
“模型一次能做多少?”
还可以问:
“这个任务能不能拆开并行做?”
四、Subagent还能减少上下文污染
这是我觉得很重要的一点。
复杂任务做久以后,主Agent的上下文容易越来越乱。
里面可能同时出现:
几十份文件;大量网页;多个尝试方案;报错;临时数据;废弃结论。
这些内容全部堆在主上下文里,会影响后续判断。
Subagent可以把很多“脏活”隔离出去。
比如让一个子代理专门查某个案例。
它可以自己:
搜索;打开网页;排除错误结果;比较多个来源;
最后只把结论和出处返回给主Agent。
主Agent不需要看到整个搜索过程。
它只需要收到:
结论 + 关键依据 + 来源。
这样主上下文会干净很多。
所以Subagent还有一个非常重要的作用:
上下文隔离。
五、不要让所有子代理做同一件事
有时候多子代理很容易变成:
让五个AI都回答同一个问题。
这当然也有一定价值,比如做交叉验证。
但更多时候,更有效的方式是让它们承担不同职责。
例如一个合同项目,可以这样拆:
- 子代理A:检查付款和违约责任;
- 子代理B:检查知识产权;
- 子代理C:检查解除、终止和期限;
- 子代理D:检查法律适用和争议解决;
- 子代理E:站在对方角度寻找我方修改方案的漏洞。
最后主Agent再统一处理。
这样每个子代理都有明确目标。
而不是五个人做五份重复报告。
所以Subagent的关键不是“数量”。
而是:
分工设计。
六、可以让一个子代理专门唱反调
这个用法我觉得特别适合专业工作。
主Agent形成一个结论以后,可以专门分一个子代理:
“不要支持当前结论,专门寻找这个结论可能错误的理由。”
比如法律分析中:
- 有没有相反规定;
- 有没有例外;
- 有没有反向案例;
- 有没有事实被忽略;
- 有没有监管口径不一致。
合同审查中:
- 我方提出的修改,对方最可能怎么反驳;
- 有没有隐藏的不利后果;
- 有没有前后冲突。
这种“反方子代理”,其实很像内部review。
它的目的不是生成更多内容,而是:
减少主Agent一路沿着自己原来思路走到底的风险。
七、主Agent必须负责统一标准
子代理多了以后,会出现一个很现实的问题:
每个人写出来的东西不一样。
比如:
格式不同;分类标准不同;措辞不同;风险等级不同;甚至法律判断尺度不同。
所以不能让子代理的结果直接拼起来就交付。
主Agent必须做最后一层统一。
包括:
- 统一字段;
- 统一口径;
- 去重;
- 解决冲突;
- 补充遗漏;
- 重新排序;
- 最终自检。
这和现实中的团队一样。
多人分工以后,最后必须有人统稿。
所以Subagent体系里,主Agent最重要的职责不是“自己做最多”。
而是:
控制质量和一致性。
八、子代理的任务应该尽量小而明确
我觉得Subagent和主Agent还有一个区别。
给主Agent,可以给一个比较大的目标。
给子代理,任务最好更加具体。
例如不要说:
“研究这个项目。”
而是:
“只检查A公司公开披露文件中与劳务派遣比例有关的问题,提取问询原文、回复逻辑、整改措施和最终审核结果,不处理其他劳动问题。”
这样子代理更容易把一个局部问题做深。
所以好的子代理任务通常具有几个特点:
- 范围窄;
- 目标明确;
- 输出结构统一;
- 尽量减少模糊判断。
主Agent负责“大脑”。
子代理更像“专项执行单元”。
九、不要无限制开Subagent
同样,Subagent也不是越多越好。
子代理越多,会带来新的问题:
- 结果重复;
- 观点冲突;
- 上下文汇总成本增加;
- 任务拆得过细;
- 工具调用成本提高。
如果一个十分钟能完成的任务,硬拆成十个子代理,反而更复杂。
所以原则还是:
有明确并行价值,再拆。
我更倾向于这样判断:
如果任务可以明显分成几个相互独立的模块,就适合;
如果不同模块之间高度依赖,频繁需要共享最新结论,就未必适合拆得太散。
十、Subagent和多Agent,解决的是两个不同问题
这两个概念可以再明确一次。
多个独立Agent解决的是:
系统级稳定性。
比如主Agent坏了,备用Agent能不能接手;
不同工具之间能不能交接;
不同运行环境之间能不能切换。
Subagent解决的是:
单个复杂任务内部的组织效率。
也就是一个任务进来以后,主Agent能不能把它拆开并行处理。
所以我的理想结构其实是:
人
负责最终目标和决策;
下面是:
主Agent
负责理解任务、规划和统筹;
主Agent内部可以调用:
多个Subagent
分别处理不同专项任务;
而在系统外部,还可以存在:
其他独立Agent
负责备用、交接或专项执行。
这几个层级如果分清楚,整个AI工作系统就会清晰很多。
十一、未来真正重要的,不是“一个AI有多聪明”
我越来越觉得,AI能力继续提升以后,单个模型的智力差距可能没有今天这么重要。
真正重要的可能变成:
它会不会组织工作。
- 能不能判断什么时候该自己做;
- 什么时候该拆任务;
- 什么时候该调用子代理;
- 什么时候该并行;
- 什么时候该让一个子代理专门检查;
- 最后能不能把所有结果重新整合成一个可靠结论。
也就是说,未来好的Agent可能不只是:
自己很聪明。
而是:
会带团队。
所以复杂任务来了以后,不一定要让一个主Agent从头硬做到尾。
可以让它先问:
- 这个任务能不能拆;
- 哪些部分可以并行;
- 哪些部分适合交给子代理;
- 哪些结果需要交叉检查。
如果上一层AI工作方式是:
让Agent替人执行。
那么再往前一步,就是:
让Agent自己组织一支子代理团队来执行。
这才是Subagent真正值得用的地方。
