多智能体对话框架:从流水线到会话智能体的范式转移
Google DeepMind 在 2025 年末发布的一项研究分析了 5 种架构和 3 个大语言模型(LLM)家族中的 180 种多智能体配置。在讨论部分被掩盖的一个发现是:与单智能体基准相比,非结构化多智能体网络将错误放大了高达 17.2 倍。不是修复错误——而是放大错误。智能体们自信地在彼此的幻觉基础上进行构建,创造出回声壁效应,使每个独立模型的失败模式显著恶化。
这是多智能体对话框架核心的悖论。赋予它们强大力量的特性——智能体进行协商、批判、委派和修订——如果缺乏周密设计,也正是让它们变得危险的原因。理解基于对话的编排(orchestration)与传统流水线链式调用(pipeline chaining)之间的区别,是正确使用这两者的第一步。
流水线 vs. 对话:真正的架构差异
LLM 编排的主流心理模型仍然是流水线:输入流向 A 阶段,输出喂给 B 阶段,结果从 C 阶段产出。LangChain 通过其“链”(chain)抽象概念普及了这一模式。它易于理解、易于调试,但对于一大类问题来说,它是完全错误的。
流水线假设解决问题的路径是预先知道的。当你编写流水线时,你正在将解决方案的假设编码到图拓扑(graph topology)本身中。这对于结构化、可预测的任务(如文档摘要、分类、数据提取)效果很好,在这些任务中转换是固定的,唯一的变量是内容。
基于对话的框架基于不同的前提:对于复杂任务,正确的步骤序列本身就必须在执行过程中被发现。你不知道需要三轮改进还是七轮。你不知道初始代码能否顺利运行,还是需要调试循环。交互拓扑不应该是预定义的;它应该从对话中涌现。
架构上的后果是显著的。在对话框架中,每个智能体都是可对话的(conversable,可以启动或响应任何其他智能体)、可定制的(customizable,拥有自己的模型、工具、系统提示词和回复逻辑),并可组合成更高层的协调结构。智能体不只是转换数据——它们在协商结果。
典型的双智能体模式使这一点变得具体:一个负责推理并生成解决方案(通常是代码)的 AssistantAgent,配对一个执行代码并返回结果的 UserProxyAgent。当代码失败时,代理返回错误。助手进行修订。循环继续,直到输出通过验证或触发终止条件。对话就是控制流。不需要编写显式的重试逻辑,也不需要添加错误处理——往复的对话隐含地处理了这一切。
四种对话拓扑结构
并非所有的对话框架都使用相同的通信结构。你选择的拓扑结构决定了你的可靠性上限、成本状况以及可调试性。
**双智能体聊天(Two-agent chat)**是最可靠的模式。一个思考者,一个执行者。交互图是固定的;唯一的不确定性在于轮数。这是对话框架表现最出色的地方——迭代编程、数学推理、数据分析。如果你的任务符合这种形式,请从这里开始。
**群组聊天(Group chat)**是事情变得既有趣又同样危险的地方。多个专门的智能体通过广播频道进行通信。协调器接收所有消息,决定下一个谁发言,并向群组广播。你可以将发言者选择配置为轮询(round-robin,可预测、廉价)、随机(random,不确定性)或基于 LLM(LLM-based,动态、昂贵、强大)。一个研究团队可能包含规划智能体、搜索智能体、代码智能体和批判智能体。规划者进行委派;其他人执行并汇报;批判者在最终确认前进行审查。
动态发言者选择的强大功能伴随着真实的成本:群组聊天中的每一次 auto(自动)选择都会触发额外的 LLM 调用。对于一个包含 20 轮对话的 10 智能体群组,除了任务工作本身,还有 20 次隐藏的编排调用。请务必为此做好预算。
**嵌套对话(Nested conversations)**实现了分层分解。外部智能体发起一个内部的双智能体子对话,等待结果,然后继续。这就是复杂系统解决真正复杂任务的方式:经理智能体将问题分解为子问题,将每个子问题分配给内部的智能体对,并汇总结果。外部对话看到的是整洁的输入和输出;复杂的解题过程发生在内部。
**双循环编排(Dual-loop orchestration)**是最先进的模式,用于生产级多智能体研 究系统。编排器维护两个账本:任务账本(Task Ledger,包含事实、假设、战略计划)和进度账本(Progress Ledger,包含接下来谁做什么、系统是否卡住)。外循环处理战略规划;内循环处理执行监控。如果内循环检测到停滞,它会反馈给外循环进行重新规划。在标准的智能体基准测试中,该架构已达到与最先进的单智能体基准相当的性能——考虑到多智能体协调要做到正确是多么困难,这是一个非常有意义的结果。
对话框架在生产环境中的胜出场景
医药行业提供了最清晰的生产验证。基于 Agent 的文档流水线将以往需要专家投入 40–50 人/周的任务压缩到了几分钟内。这些任务——关联临床试验数据、生成文档、运行迭代质量检查——正是那种定义模糊、步骤繁多、需要修改循环的工作,而对话框架在处理这类工作时比流水线(pipelines)具有天然优势。
更广泛地说,对话框架在以下四个场景中胜出:
迭代深度未知的任务:你不知道代码需要多少轮调试,也不知道第一条研究路径是否行得通。在流水线中构建这种不确定性需要显式的重试逻辑和回退分支;而对话框架可以隐式地处理它。
需要异构专业知识的任务:不同的子任务受益于不同的模型。让昂贵的推理模型处理战略规划和编排;将摘要任务交给更便宜的模型;使用专门的模型生成代码。对话框架让在同一个工作流中为不同的 Agent 分配不同的模型变得非常自然。
批判是核心支撑的任务:批判者模式(一个 Agent 生成,另一个 Agent 评审)产生的结果明显优于单 Agent 生成。多 Agent 系统研究的关键见解是:Agent 之间的分歧是一项特性,而不是 Bug。一个带有寻找缺陷显式指令的批判者 Agent,会发现自审生成器所遗漏的缺陷。
快速原型开发工作流:对话式 API 的实验速度确实比基于图形的编排更快。你可以用几十行代码搭建一个功能性的多 Agent 工作流。代价是生产稳定性;收益是验证该方法是否值得进一步构建的速度。
让你付出代价的七种失败模式
17.2 倍的错误放大效应这一发现,是对特定失败模式的警告:Agent 在彼此自信的胡说八道(nonsense)之上构建更多自信的胡说八道。但这并不是对话框架在生产中失败的唯一方式。
缺失终止条件是最常见的失败。Agent 在没有显式停止的情况下无限循环。务必同时设置最大轮数限制 以及 语义终止条件(例如,Agent 输出特定的 Token,如 TASK_COMPLETE)。只依赖其中之一是不够的——你需要两者兼备。
无限语义循环更难检测。对话在轮数上终止了,但 Agent 在最后 30 轮中一直循环相同的想法,没有任何进展。可以通过对最近的消息内容进行哈希处理并检测重复来解决此问题。如果最后三次助手的回复在语义上完全一致,则强制终止并将卡顿情况反馈给用户。
上下文窗口溢出是一个缓慢且耗费资金的问题。群聊历 史不断累积。一个消耗了 2000 万 Token 并在第三小时失败的工作流,通过使用内存指针(memory pointers)进行了重构——同样任务仅需 1,234 个 Token。选择性上下文(相关的内存指针,而非全部历史)不是可选的优化,而是任何运行超过几分钟的工作流的生产要求。
不受控的代码执行是一个安全漏洞。对话框架通常包含内置的代码执行功能,这既强大又同样危险。在生产环境中,执行必须在沙盒环境(容器化、网络受限、具有显式工具白名单和执行超时)中进行。默认设置对于本地开发没问题,但对于生产环境是不可接受的。
群聊中的级联故障发生在一个 Agent 的幻觉在群体中未受质疑地传播时。解决方法是结构性的:加入具有挑战假设指令的显式批判者角色,并在结果被接受之前在群聊流程中构建验证步骤。
动态发言者选择成本会隐形成本地累加。为了灵活性而切换到 auto 发言者选择的团队,通常直到第一个计费周期才会意识到编排调用的开销。请将你的编排调用量与任务调用量分开审计。
缺乏可观测性是让所有其他失败模式都更难诊断的失败模式。对话框架不提供内置追踪。你只能通过成本仪表盘了解无限循环,通过用户报告了解级联故障,通过 API 错误了解上下文溢出。从第一次提交代码起就接入 OpenTelemetry。按 Agent 角色进行成本归属分析和按对话步骤进行延迟剖析是最有价值的两个信号。
