多智能体协作系统设计:从中心编排到自组织架构
一、多智能体:从"能跑"到"能协作"
单个 Agent 的能力边界是清晰的:一个会话、一个目标、一串工具调用。但当任务足够复杂——比如"重构一个大型代码库并保证测试全部通过"“把一个完整业务流程自动化”——单个 Agent 很快触达天花板:上下文爆炸、工具集混乱、单点故障、长任务漂移。
多智能体系统(Multi-Agent System)是应对复杂任务的自然演进:多个 Agent 分工协作,各自负责一个子任务,通过消息和共享状态协同完成整体目标。相比单 Agent 的序列执行,多智能体系统可以通过并发执行降低整体任务延迟,提升复杂真实任务的处理效率。
但"多个 Agent 一起跑"只是多智能体的起点,"它们如何高效、有效地协作"才是核心挑战——尤其当系统规模扩展到成百上千、甚至上万个 Agent 时,协作架构的设计直接决定系统的成败。这也是本文的主题:多智能体协作系统的架构演进,从中心编排到自组织。
二、当前主流架构:编排者-工作者模式及其瓶颈
今天主流的多 Agent 框架(如 Codex sub-agent、Claude Code sub-agent)普遍采用"编排者-工作者"(Orchestrator-Worker)结构:一个中心编排器负责接收任务、拆解子任务、分派给工作者、汇总结果。
这种结构的优势是直观:控制流清晰、进度可控、容错简单——编排器挂了,整个任务状态是明确的,可以重试。
但它的瓶颈同样明显:整个系统的可扩展性受限于编排器本身。当 Agent 数量从几十增长到几百上千,编排器要管理的工作者数量、要协调的消息、要整合的贡献急剧膨胀——编排器成为系统的单点瓶颈和延迟来源。更重要的是,编排器模式存在天然的"感知局限":中心调度器无法感知所有工作者的实时状态,任务分配往往是静态的、基于预设逻辑的,难以应对动态变化的真实任务。
三、自组织架构:Agensh 的设计启示
为了突破中心编排的限制,微软团队提出了一个可扩展的自组织多 Agent 框架——Agensh。它的核心设计是:不包含中央编排器,自组织的工作者并发、异步地运行,通过轻量的"Agentic 组织基础设施"共享状态与进展。
Agensh 由两部分耦合而成:一个引导所有工作者的多 Agent 协作循环,以及一个让积累的工作、发现和消息在整个组织内可用的组织基础设施。
3.1 五步协作循环
每个工作者持续执行一个多 Agent 协作循环,包含五个步骤:收集上下文(基于新整合的工作和同伴的最新更新)→ 认领子任务(自行提出并认领)→ 执行动作 → 共享发现(把结果发布到组织基础设施)→ 验证并合并进展。
关键设计在于"自组织":工作者通过自行提出并认领子任务,在整个组织内完成子任务的发现与分配,不需要中心调度器指手画脚。由于所有工作者异步推进,任何人都不必等待同伴完成一轮迭代——系统的吞吐不再受制于任何一个中心节点。
3.2 三件套组织基础设施
组织基础设施由三个协作机制组成:共享工作区(Shared Workspace)、消息接口(Message Interface)和共享上下文(Shared Context)。
共享工作区是一个文件系统,存放组织正在开发和已经整合的成果。它需要支持并发写入和异步读取,保留版本历史,支持合并贡献,并把合并冲突暴露给工作者,由其回溯和解决。Agensh 用 Git 平台管理这一工作区:工作者修改私有检出和分支,再把贡献整合进主分支——版本冲突的解决机制直接复用成熟的分支合并模型。
消息接口是工作者之间异步通信的通道,支持发布/订阅模式:工作者把发现和进展发布到主题,感兴趣的同伴订阅消费。消息接口解耦了工作者之间的直接依赖——A 的产出不需要知道谁在用,发布即可。
共享上下文是组织层面的"公共记忆":任务目标、约束条件、领域知识、已确认的事实,存放在所有工作者可读的地方,保证整个组织对任务的理解一致。
3.3 规模化的实验证据
Agensh 的论文数据很有说服力:在 ProgramBench 最难的 5 个任务上,当 Agent 数量从 1 增加到 128 时,平均最终测试通过率从 19.31% 提升至 28.78%,相对提升约 49%;在 pandoc 任务上,把 Agent 数量从 1 扩展到 1024 后,测试通过率从 33.89% 提升到 55.06%。
这些数据揭示了一个重要命题:Agent 数量可能是多 Agent 组织扩展通用智能边界的一个新的 scaling 维度——为硬延迟约束或时间预算下的复杂任务提供了一个新的可行方案。不是把单个 Agent 做得更强,而是让更多 Agent 协作得更好,同样能提升系统的任务完成能力。
四、自组织架构的关键工程问题
自组织架构听起来优雅,落地时有一系列必须解决的工程问题。
4.1 任务分解的质量
自组织的前提是工作者能自己"找到活干"。如果任务分解不清晰,工作者要么扎堆抢同一个子任务,要么互相等待无人认领。实践中的做法是提供"任务市场":初始任务被拆成粗粒度的待办清单,工作者从中认领并进一步细化;认领机制要有原子性(一个子任务同一时刻只能被一个工作者认领),防止重复劳动。
4.2 冲突处理与合并
多个工作者并发修改共享工作区,冲突是常态而非例外。Agensh 的答案是把冲突交给版本控制机制:分支隔离(每个工作者在私有分支上工作)、合并检查(贡献合入主分支前要解决冲突)、冲突回溯(无法自动合并的冲突暴露给相关工作者,由拥有上下文的一方解决)。
4.3 状态一致性与共识
没有中心编排器,如何保证整个组织对"任务完成"的判断一致?这需要明确的验收标准和状态发布机制:每个子任务要有机器可读的完成定义,完成状态通过消息接口广播,其他工作者据此调整自己的行动。分布式共识是自组织架构最深的坑——设计时要尽量把一致性需求"下沉"到基础设施(如共享工作区的原子提交),而不是让工作者之间反复协商。
4.4 失控防护与可观测性
自组织系统最大的风险是失控:没有中心调度器,谁来踩刹车?答案是基础设施层面的硬约束:资源配额(每个工作者的 token 和计算预算)、执行超时(超过时限强制终止)、质量门禁(子任务合入前必须通过验证)、全局审计(所有工作者的行为可回放)。自组织架构不代表"无管理"——相反,它对治理的要求更高,只是把治理从"中心指挥"变成了"边界约束 + 事后审计"。
可观测性同样关键:工作者的认领记录、进度更新、合并历史都要有完整的日志,用于回答"这个任务为什么这样做、谁做的、做到哪一步了"。
五、两种架构的选择:编排 vs 自组织
编排者-工作者和自组织架构不是替代关系,而是适用不同阶段的两种选择。
任务规模小(几个到几十个 Agent)、任务结构清晰、对过程可控性要求高(如合规业务),编排者模式更合适——控制流清晰,审查方便,错误定位容易。
任务规模大(成百上千 Agent)、任务开放性强(探索型任务:重构、研究、内容生产)、对延迟有硬约束(时间预算内完成),自组织架构更有优势——并发天然、无中心瓶颈、容错分散。
现实中的成熟系统往往是混合形态:外层用编排器定义任务的粗粒度骨架(阶段、里程碑、质量门禁),内层用自组织机制让工作者在骨架内自由协作。骨架保证方向不偏,自组织保证效率最大化——这可能是当前工程实践中最务实的答案。
六、多智能体协作的设计清单
无论选择哪种架构,多智能体协作系统都有几条通用的设计原则。
第一,协作成本要显性化。多 Agent 之间的通信、同步、上下文传递都是有成本的,协作越频繁,系统越慢。设计时要控制协作粒度:能本地完成的不共享,能批量共享的不逐条广播。
第二,共享状态要最小化。共享工作区和共享上下文是协作的基础,但共享越多,一致性维护越难。把共享内容限定在"任务必需的公共事实"层面,工作者的私有中间状态留在本地。
第三,验收标准要机器可读。子任务的完成定义必须是可计算的(测试通过、格式合规、指标达标),不能依赖工作者的自我感觉——否则"任务完成"的判断永远有争议。
第四,幂等与可重试。工作者的执行可能中途失败,重试时不能产生重复副作用——所有对外动作(写文件、调 API、发消息)都要设计成幂等的。
第五,从单体 Agent 起步。不要一上来就设计上百个 Agent 的复杂系统。先做单 Agent 跑通流程,再拆成少数几个专业 Agent,验证协作模式,最后才考虑规模化——规模是最后一个考虑的问题,不是第一个。
七、结语
多智能体协作系统的设计,正处在一个关键的范式演进期:从"中心编排一切"走向"自组织 + 轻量治理"。微软 Agensh 的实验数据让我们看到,Agent 数量是一个新的 scaling 维度——更多 Agent 的并发协作,可以在时间预算和延迟约束下显著提升复杂任务的完成率。
但架构的演进不等于抛弃工程纪律。自组织架构对任务分解、冲突处理、状态一致性、失控防护的要求,比中心编排只高不低。真正的多智能体系统设计,不是"让一群 Agent 自由发挥",而是"用边界约束和基础设施,让一群 Agent 的高效协作成为可能"。
给正在设计多智能体系统的团队的建议:先定义清楚任务的协作边界(什么必须共享、什么不能共享),再选择架构形态(小任务用编排、大任务用自组织或混合),最后用机器可读的验收标准和完整的审计日志兜住系统的可靠性底线。架构会演进,但这三条原则不会过时。