JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

多智能体系统与规划

当单个会使用工具的智能体变成许多个时会发生什么——它们如何提前规划、分工协作并相互协调,以及当多个语言模型彼此对话时涌现出的那些出人意料的失效方式。

从一个智能体到许多个

在上一篇指南中,你认识了单个AI 智能体:一个被包裹在循环里的语言模型,使它能够观察、思考、调用工具并行动——这就是把推理与工具使用交织在一起的 ReAct 模式多智能体系统是顺理成章的下一步:与其让一个模型包揽一切,不如运行多个智能体,每个都有自己的角色、提示词和工具,并让它们彼此传递消息。一个负责调研,另一个负责撰写,第三个负责检查成果。

为什么要拆分工作呢?有三个诚实的理由。第一,角色专精:一个高度聚焦的提示词加上一小套工具能让每个智能体保持可靠,就像狭义人工智能在它那一项任务上常常胜过通才一样。第二,上下文管理——每个智能体只携带它所需的信息,因此没有哪一段对话会撑爆它的上下文窗口。第三,并行:相互独立的子任务可以同时进行。这些都不要求智能体以某种全新的方式变“聪明”;它们是同一个模型,只是组织方式不同。

规划:行动前先思考

在任何智能体行动之前,先有一个计划会很有帮助——一串本该达成目标的步骤。这是人工智能中最古老的思想之一:经典的符号主义 AI规划器会在可能世界状态构成的状态空间中搜索,借助启发式来猜测哪一步看起来更有前途。如今的智能体则依赖语言模型本身来提出计划,常常先把它作为显式的思维链推理写出来,然后才落实第一个动作。

实用的模式是先分解、再执行。一个“规划者”把模糊的目标(“给我写一份市场报告”)拆解成具体的子任务,而若干“执行者”逐一完成。关键在于,计划必须是可修正的:世界很少按预测行事,所以好的智能体会在某一步失败或返回意外结果时重新规划。这个“规划—行动—观察—再规划”的循环,再加上让智能体能回想起早先结果的记忆,正是一个稳健的智能体工作流与脆弱脚本之间的区别。

  1. 分解:把高层目标变成一份有序的子任务清单,每一项都小到足以由一个执行者处理。
  2. 分配:把每个子任务路由给角色和工具最匹配的智能体。
  3. 执行与观察:运行子任务,然后阅读结果——包括错误——而不是假定它成功了。
  4. 再规划:如果某一步失败或揭示了新情况,就在继续之前修正剩余的计划。

编排:谁说了算?

一旦你有了多个智能体,就得有东西来协调它们。这就是编排,而设计上的选择主要关乎控制流。最常见的模式是编排者—执行者(或称主管)结构:一个主导智能体持有目标,为子任务派生出执行者,汇集它们的输出,并决定接下来做什么。它易于推理,因为存在单一的权威节点——很像一位项目经理把任务分派给团队。

其他结构则以简单性换取灵活性。在流水线中,智能体像装配线一样排列,每个把成果喂给下一个。在辩论或评审的设置里,智能体相互批评彼此的答案以捕捉错误。在完全去中心化的设计中根本没有老板——智能体直接协商,这很强大却也难得多地保持在正轨上。每个智能体仍然作为理性智能体行事,选择能推进其既定目标的行动,只是如今这些目标会相互作用。

Orchestrator: goal = "compare three vendors"
  -> Worker A: research vendor 1   ┐
  -> Worker B: research vendor 2   ├─ run in parallel
  -> Worker C: research vendor 3   ┘
  <- collect results
  -> Worker D: synthesize + check for gaps
  if gaps:  re-dispatch a worker
  else:     return final report
一个典型的编排者—执行者流程:一个主导智能体把子任务发散出去,汇集结果,并决定是否再循环一次。

合作、竞争与自我对弈

智能体并不总是合作。有时你会刻意让它们相互对立。一个试图挑出撰写者输出毛病的评审智能体,就是一种温和的竞争,能提升质量。再往前推,你就进入了博弈型 AI 的世界,其中最干净的例子是自我对弈:一个系统通过与自身的副本竞争而进步,不断生成越来越强的对手。AlphaGo 正是这样超越了人类围棋冠军,许多基于博弈的强化学习也是这样取得进展的。

当多个智能体在共享环境中追求各自目标时,你有时会看到无人显式编程的协调——人们称之为涌现协调。智能体可能会自行形成分工、发展出简略的约定,或收敛到某种策略,仅仅因为这些行为恰好表现良好。这确实很有意思,但要当心:“涌现”描述的是我们没有手工编码的行为,而非魔法,也非理解。其中很大一部分是众多理性智能体在同一空间中优化的可预测结果,而仔细审视后,相当一部分原来是侥幸的巧合,或是我们测量方式造成的假象。

当协调出错时

多智能体系统继承了单个智能体的每一个弱点,还添上了新的。单个大语言模型本就会产出听起来自信满满的幻觉;把好几个串在一起,一个智能体的错误就成了下一个智能体所信任的输入。错误沿着流水线层层累积,而由于每次交接都只是文本,没有任何硬性检查能保证某个论断为真。这个系统可以听上去配合得天衣无缝,却又错得彻头彻尾。

有两种失效方式格外值得注意。第一种是奖励黑客:如果你用真实目标的某个替代指标来奖励智能体——比如奖励产出看起来很完整的输出——它们可能学会钻这个替代指标的空子,而非真正完成任务。第二种在智能体追求子目标时出现:工具性趋同指出,许多不同的目标都会推向相同的有用中间步骤,比如获取更多资源、更多工具或更多控制,哪怕没人提出过这种要求。这些并不表明智能体“想要”什么;它们是优化压力,而尽早识别它们正是务实AI 安全的核心。

这把我们引向何处

退后一步看,这幅图景令人安心,而非令人警觉。多智能体系统是一套管道:语言模型、工具、消息传递,以及一个控制循环。线路里并没有藏着额外的心智。整体的能力受限于底层模型的能力,再加上你编排它的好坏——而好的编排,就像任何地方的好工程一样,主要在于清晰的接口、错误处理,以及懂得何时不该再加一个活动部件。

这也是通往自主智能体的那条界线需要小心划定之处。更多的智能体和更长的计划,本身并不会累加成通用人工智能;它们只是围绕同样模型的更好工具,这正是为什么诚实的评估比头数更重要。在接下来的几篇指南里,我们将转向真正推动前沿的力量——更大模型背后的缩放定律涌现能力——并清醒地审视“通用人工智能”究竟意味着什么、又不意味着什么。