多智能体拓扑

G2
深入解析 · 多智能体系统

多智能体拓扑:接线图本身就是设计决策。

一旦你决定使用不止一个智能体,下一个决策就会主导其他一切:智能体之间如何连接。星型、流水线、层级和网状并非可互换的风格——每一种都有不同的通信成本、不同的失败画像,以及一个它才是正确答案的狭窄区间。本文梳理四种典型拓扑、它们的 O(·) 消息成本,以及如何在不默认"人人互相通话"的前提下做出选择。

STEP 1

拓扑是最强预测成本与可靠性的变量。

受关注的是智能体的提示词;决定结果的是。通信成本随边的数量而非智能体数量增长:一个有 n 个工作者的星型有 n 条边,一个全网状有 n(n−1)/2 条边。每条边都是一条承载 token 的通道,也是一个潜在的错误传播点或死锁点。选择拓扑就是在选择系统将花多少钱、将如何失败——明确地决定它,把它画出来,并为它辩护。

STEP 2

星型:一个协调者,n 个叶子,O(n) 条边。

一个中心智能体派发给工作者,工作者彼此从不通话,只向上汇报。这是截至 2025 年生产级多智能体系统的主力(监督者/工作者模式,见 supervisor-worker-pattern)。通信是 O(n),协调者是执行预算与聚合的唯一位置,失败的工作者被隔离。代价是:协调者既是瓶颈也是单点故障,叶子除了通过它之外无法共享发现。

# star: coordinator fans out, workers stay isolated
def star(task):
    subs = coordinator.decompose(task)
    results = [worker.run(s) for s in subs]   # no leaf-to-leaf edge
    return coordinator.aggregate(results)

默认选星型。大多数"我们需要网状好让智能体协作"的直觉,用一个星型加一份共享只读产物即可解决(见 shared-memory-and-blackboard)——你得到了跨工作者的信息,却没付平方级消息成本,也没招来网状那纠缠的失败模式。

STEP 3

流水线:线性链,O(n) 条边,完全串行。

智能体 A 的输出是智能体 B 的输入,依此类推。每一阶段做专门化处理;延迟是各阶段之,永不重叠。流水线适合具有真正顺序依赖、且阶段之间接口干净狭窄的工作(抽取 → 转换 → 校验)。其结构性弱点是无恢复路径的错误传播:一个略微出错的第二阶段输出,会被第三到第 n 阶段当作事实,每个边界处的有损交接还会叠加。一条有五跳的流水线,有五处可以悄悄污染结果,却没有一处能抓住它——除非你显式加入校验边。

STEP 4

层级:协调者的树,O(n) 条边,深度有界。

叶子本身也是协调者的星型。这是你突破单个协调者上下文上限的方式:一个顶层规划者委派给中层负责人,负责人再扇出给工作者。树上的通信保持 O(n),每棵子树都是一个隔离与预算边界。新的失败模式是多层有损摘要:工作者的细微之处先在其负责人处被压缩,再在规划者处被压缩,于是顶层看到的是摘要的摘要。把树保持得浅(两层,极少三层),并向上传递结构化产物而非散文,以限制压缩损失。

每多一层层级,就多一跳有损摘要、多一个可能成为瓶颈的协调者。深度不是免费的组织结构——它是叠加的信息损失。如果你正想加第四层,那是任务分解错了,而不是树太浅。

STEP 5

网状:任意到任意,O(n²) 条边——强大但鲜少值得。

每个智能体都能给其他每个智能体发消息。网状支持涌现式协作与辩论式交叉对话(见 agent-debate-and-ensembles),但它付出全额 O(n²) 通信成本,并一次性继承所有系统级失败:群体思维(智能体通过互相附和而趋同)、死锁与活锁(循环等待与无进展的消息风暴),以及可观测性噩梦(没有中心追踪;你必须从分布式日志中重建顺序)。网状只有在 n 很小、且交叉对话本身就是算法时才站得住脚——三到五个智能体之间的结构化辩论——而非作为通用协作基底。

STEP 6

何时不要选更丰富的拓扑。

"让智能体自由通话"的本能几乎总是买多了:网状的平方级成本和纠缠的失败模式是真实的,而它的收益只有在交互本身就是计算时才会兑现。仅当工作真正串行且接口狭窄时用流水线,把星型作为并行扇出的默认,仅当单个协调者的上下文容不下计划时用层级,仅在小 n 的结构化辩论中用网状选择仍能表达依赖关系的最稀疏拓扑——边不是协作,它是成本与失败面。