这两天,在和大家交流OpenClaw使用的时候,发现了一个很有意思的现象。
很多人聊Agent,要么只聊Single-Agent,要么笼统地说"Multi-Agent"。
但很少有人真正说清楚——平级多Agent和层级SubAgent,到底有什么区别?什么时候该用哪个?
这个问题,其实比你想象的更重要。
因为选错了架构,轻则成本爆炸,重则整个系统变成一坨难以维护的 spaghetti code。
今天,我就用一篇文章,把这个事讲透。
一、先打个比方
别急着看定义,我们先来做个类比。
多Agent,像是一家餐厅的后厨。厨师负责炒菜,采购员负责买菜,服务员负责上菜。
他们各自独立,地位平等,通过一个"传菜口"来沟通协调。谁需要什么,就喊一嗓子,大家商量着来。
SubAgent,像是主厨和帮厨的关系。
主厨决定今天做红烧肉,帮厨只负责切肉和焯水,做完就解散。
主厨不需要跟帮厨商量,而是直接下命令。
帮厨也不需要知道整桌菜是什么,只需要完成自己被指派的那部分工作。
这个类比,应该能让你建立直觉了。
二、核心差异
说完了比喻,我们来看硬核的技术差异。
多Agent的拓扑结构是网状或者星型的,节点之间平等。通信模式是协商式的,大家有商有量。
每个Agent长期存活,持续在线,各自维护自己的状态,需要显式同步。
单点故障影响有限,因为大家是平级的。
SubAgent则是树状结构,主从分明。通信模式是命令式的,Parent说啥就是啥。SubAgent按需创建,用完即弃,状态由主Agent统一协调。
但如果主Agent挂了,整个系统就瘫痪了。
一句话总结:多Agent是分权制,SubAgent是集权制。
三、三个容易被忽视的深层差异
这部分,是我觉得最有价值的内容。
上下文传递方式不同。
多Agent系统里,每个Agent通常持有完整的上下文,状态同步是一个显式操作,需要精心设计。
当然,还有一个特例。
在 Openclaw 里,同一个 agent 的不同频道上下文也是独立的。
所以单个 agent 的核心更在于独立的工作空间。
独立的记忆,独立的 skill,独立的 soul 等等。
SubAgent 则完全不同。
上下文由父 Agent裁剪后传递,SubAgent往往只拿到需要知道的部分。
举个例子,主Agent 让 SubAgent 查天气,只会传目的地和日期,而不会把整个旅行计划都塞过去。
这种最小权限原则,在控制成本和减少干扰方面,非常有效。
错误处理机制不同。
多Agent系统的一个Agent出错了,其他Agent可以协商如何补救。容错性是网状结构的优势。
SubAgent则不同。失败了必须上报Parent,由Parent决定是重试、降级,还是直接终止。故障传播是单向的,没有商量的余地。
这意味着,SubAgent对Parent的设计要求更高。Parent必须足够智能,才能处理好各种异常情况。
成本与延迟结构不同。
多Agent系统的并发执行潜力很大,多个Agent可以同时工作,但代价是通信开销高。
SubAgent通常是串行或深度优先的,延迟会叠加,但好处是避免了Agent间协商的扯皮成本。
如果你的场景对延迟敏感,多Agent的并发优势可能更明显。但如果你的场景对成本敏感,SubAgent的按需创建、用完即弃模式可能更划算。
四、怎么选择?
说了这么多,你可能还是不知道该怎么选。
如果你的任务本身需要多角度输入,比如竞品分析需要技术视角、市场视角、财务视角同时开工,那就选多Agent。
如果各子任务之间需要频繁协商,比如谈判Agent和价格Agent需要来回博弈,也选多Agent。
如果你对容错要求高,不希望一个Agent卡住影响全局,多Agent是更好的选择。
反过来,如果你的任务可以清晰拆解为主流程加子流程,比如写代码等于架构设计然后具体模块然后单元测试,那就选SubAgent。
如果你需要严格控制执行顺序和依赖关系,子任务之间有明确的先后依赖,也选SubAgent。
另外,如果子任务是通用能力,比如搜索、计算、代码执行,可以复用标准化的SubAgent,SubAgent模式更合适。
五、混合架构
说到这里,你可能会有一个疑问:实际项目中,是不是只能二选一?
答案是:不。
现实中的复杂系统,往往是混合架构。
顶层是多Agent协作,比如Research Agent和Writing Agent和Reviewer Agent各自独立工作。
但每个Agent内部,又用自己的SubAgent来完成具体任务。
开发 agent,可以唤起前端、后端、测试、项目经理等 subagent 并行任务。
管理 agent,也可以分配项目管理、里程碑管理?文档管理 subagent。
两者并不冲突。
多 agent 关键在于独立的工作空间和上下文。
在这种架构下,SubAgent 是 Agent的工具,而多Agent是团队。
这个洞察,我觉得非常重要。
六、写在最后
聊到这里,我想你应该对Multi-Agent和Sub-Agent的区别,有了一个比较清晰的认识。
核心记住这句话:
多Agent是分权协作的团队,SubAgent是授权委派的外包。
选哪个,取决于你的场景需求。
需要多角度并行、容错性高?选多Agent。
需要严格控制流程、子任务可复用?选SubAgent。
现实复杂?那就混合着来。
架构没有银弹,只有适合与否。
希望这篇文章,能帮你在设计OpenClaw系统时,少走一些弯路。
夜雨聆风