什么是多智能体系统以及何时使用

Multi-agent systems and when to use it

多智能体系统(Multi-Agent Systems,MAS)由多个智能体在共享环境中共同解决问题,交互方式可以是协作,也可以是竞争。每个智能体都是具有一定自主能力的实体,能够理解环境、作出决策并执行操作。通过相互交互,它们可以处理单个集中式系统难以完成的复杂任务。现代 AI,尤其是大语言模型(LLM)的发展,提高了智能体的推理和通信能力,使这种设计受到更多关注。

本课介绍多智能体系统的技术概念,讨论适用情况及使用原因,并引入 LangGraph 之外的另一个实现框架 CrewAI。还将讨论通过 Agent-to-Agent(A2A)协议,使不同框架或语言实现的智能体相互通信。

多智能体系统的含义

多智能体系统是一组相互独立、能够交互的智能体。这里的智能体通常是目标导向、具有自主能力的 AI 软件实体,能够在无需持续直接干预的情况下作出决策。每个智能体通常只掌握部分知识和局部状态,不一定有任何一个智能体了解整个系统的全部情况。它们通过协调和通信完成任务。控制和智能可以分布在多个智能体之间,也可以通过管理者组织协作。

形式上,MAS 可以定义为“由多个相互交互的智能体组成的计算机系统”。智能体彼此交互,也与共享环境交互。环境可以是数据仓库、网络或模拟世界,也可以是机器人所在的工厂等物理空间。交互包括为共同目标合作,协调任务依赖与执行顺序,以及在目标不同时进行竞争。

MAS 中智能体的主要特征

  • 自主性:智能体能够控制自身操作和内部状态,至少部分行为无需直接人工干预。
  • 局部视角与有限知识:智能体通常了解自身状态及部分环境。整体能力来自智能体之间共享信息,不要求单个智能体了解所有方面。
  • 分布式控制:控制可以分散在多个智能体之间,系统行为由交互共同形成。设有 manager 或 supervisor 时,它通常负责协调,也可以承担集中决策职责。

这些特征使多智能体系统可能出现自组织和复杂的涌现行为。集体行为可能超出各个智能体独立行为的简单相加,因此这种系统适合某些类型的问题,也成为讨论 AI 未来发展的重要方向。

例如,仓库中的配送无人机各自提取和运送包裹,同时避开碰撞并优化路线。每架无人机通过局部决策,以及与调度智能体或其他无人机通信,共同改善物流效率,因此无需掌握所有包裹的完整计划。这种自主实体协作形成的系统,可以完成单架无人机按预先规定路线难以实现的任务。

基于 LLM 的现代智能体还能够在各自角色中使用复杂推理、自然语言和学习策略。例如,一个智能体理解指令、制定计划或归纳资料,再与其他智能体共同完成复杂任务。当单个智能体或程序不足以完成任务,或者效率较低时,多实体协作可以成为适当设计。

为什么以及何时使用多智能体系统

多智能体系统在复杂、大规模问题中具有多项潜在优势,也带来相应代价。

  • 分布式问题求解:可以将复杂问题划分为多个子任务,并行交给不同智能体,每个智能体专注一个方面。例如,旅行规划包含查看天气、寻找航班、预订酒店等任务,可以由专门智能体分别处理,再组合为完整计划。并行处理可以缩短时间,也有助于为每个子问题选择有效方法。
  • 专业化能力:每个智能体可以针对特定角色或领域优化提示、训练方法或算法,并使用专门知识库和工具。一个智能体可以使用能力较强的 LLM 理解用户需求,另一个则使用较小模型或固定算法完成计算和数据库查询。将各自能力集中到适合的任务,有机会改善效果。
  • 模块化与可维护性:各智能体处理不同任务范围,形成明确职责。增加新能力时可以增加智能体,修改现有逻辑时也更容易控制影响范围。调试和测试时,可以定位负责某项功能的智能体,无需分析一个包含所有行为的庞大提示或程序。
  • 降低单个智能体的复杂度:过多工具和指令可能增加 LLM 的处理负担,使工具选择错误或幻觉增多。职责明确、只配置两个相关工具的智能体,通常比同时选择十个工具和多类任务更容易保持可靠。较小的提示和上下文也更便于管理,有助于减少信息混淆和误用。
  • 稳健性与容错:一个智能体失败时,其他智能体可能发现并纠正问题。通过冗余或交叉核查,可以减少单个组件出错对整体的影响。合理设计能够降低单点故障风险。例如,监督智能体发现执行异常后,将任务转给其他智能体或尝试另一种策略。外部检查可以帮助提高整体可靠性。
  • 扩展能力:需求增加时,可以增加专门智能体,无需持续扩大同一个智能体的职责。例如,电商助手需要推荐相关商品时,可以将推荐智能体加入已有团队,并尽量减少其他部分的变更。
  • 适合分布式环境:某些问题天然涉及不同地点、参与者或独立数据来源。例如,各地区仓库分别由智能体管理,市场中的买家和卖家各自拥有谈判智能体。MAS 能够直接表达这些参与实体及其交互关系。

当任务能够自然划分为由独立参与者处理的子任务或领域,或者单智能体开始遇到复杂度和可靠性限制时,可以考虑 MAS。一个智能体同时回答问题、计算、查询数据库和控制设备,可能意味着划分角色更有帮助。尤其适合以下情况。

  • 任务涉及明显不同的数据来源或技能,例如个人助手需要网页研究、计算和起草邮件。
  • 工作流程包含复杂的顺序或并行步骤,例如规划、执行和验证分别由一个智能体或团队负责。
  • 环境天然分布式或涉及多个参与者,例如经济、交通模拟,或者分别监控不同服务器的网络管理智能体。
  • 需要提高可靠性,并愿意承担更多组件和流程管理工作。
  • 长期项目重视扩展和维护,需要在需求变化时管理多个较小的智能体。

如果单个智能体或固定工作流程已经足以解决问题,增加智能体可能带来多余开销。应遵循 KISS,即保持设计简单的原则,仅在任务确有需要时采用多智能体架构。

多智能体系统如何工作:架构与通信

设计 MAS,需要确定智能体如何组织和通信,并使它们能够协调操作以完成整体目标。

一个重要选择是集中式、分布式或混合架构。

  • 集中式架构:一个或少数智能体承担管理和监督职责,分配任务、传递信息并汇集结果。其他智能体作为执行者或专家向管理者报告。这使协调较为直接,也便于整体决策,但中央智能体失败或成为性能瓶颈时,会影响系统。
  • 分布式架构:智能体大体平等,通过点对点通信及约定协议进行协商和合作。整体方案由交互形成,可能具有较好的容错和扩展能力,但缺少中央协调者时,需要更仔细地保证行为一致。网络路由、群体机器人和重视容错的系统常使用这类方式。
  • 混合架构:结合两者,例如每组智能体有局部负责人,或者中央智能体负责部分决策,其余由成员协商。多层级管理结构也是常见形式,包括管理者、下一级管理者及执行者。

基于 LLM 的系统常使用层级监督模式。顶层 Supervisor Agent 将用户请求或复杂任务划分为若干部分,交给对应 Specialist Agents。每个专家智能体在自己的领域内相对独立地完成任务,监督者再汇集为最终结果。许多 Deep Research 系统也采用类似结构。

通信与协调

无论采用何种架构,智能体都需要交换信息、请求帮助和同步状态。常见通信方式包括以下两类。

  • 直接消息:一个智能体直接向另一个发送消息,例如调用其函数、API 或网络服务,类似微服务之间的调用。双方需要知道对方地址,并理解消息格式。
  • 通过共享环境间接通信:智能体读取和写入共同数据存储或状态。例如,使用共享记事板模型,将信息或任务放入共享记忆,其他智能体关注相关更新。发送者和接收者因此无需直接知道彼此地址。

通信设计需要规定消息结构或协议。现代 LLM 智能体常通过 HTTP 等网络协议发送 JSON,例如向服务端点提交包含任务和上下文的消息。同一进程内的智能体,也可以直接调用函数或方法,传递 Python 字典或对象。

不同框架之间的互操作是一个持续发展的领域。LangChain、LangGraph、CrewAI 和自定义实现需要共同接口,以便相互通信。A2A(Agent-to-Agent)协议是一种标准化方案,通过 API 和消息 schema 描述智能体能力及交互方式。遵循同一协议后,LangGraph 智能体可以调用 CrewAI 智能体,反向调用也同样成立。

例如,监督者使用 Python 和 LangGraph 实现,某个专家则使用其他框架或语言。只要双方通过符合 A2A 规范的接口交换结构化消息,监督者就可以提交任务并接收结果。将智能体放在统一 API 后面,有助于为各角色选择适当工具,而无需全部使用同一框架。

MAS 还需要协调和冲突处理机制。存在依赖的任务应按正确顺序执行,目标冲突需要协调,共享资源修改也需要防止碰撞,例如两个智能体同时更新同一数据库记录。这些问题涉及多智能体规划、协商协议和共享记忆管理。在合作型助手中,监督者可以负责安排适当任务及时间;更分散的系统可能需要共识、负责人选举或事务机制。多智能体带来能力与灵活性,也需要仔细设计协作方式。

Amazon 购物助手的多智能体实现

可以将课程中的购物助手扩展为多智能体系统:除浏览商品及查询评论外,还支持管理购物车和下单。这涉及不同任务和数据来源,适合研究多智能体设计。

用户可以要求寻找“500 美元以内、电池续航时间长的相机”,询问“其他人如何评价这款相机的续航”,要求“将它加入购物车”,并继续查询“下周之前能送到吗”等配送信息。

可以为单个智能体配置库存、评论、购物车和下单工具,但随着职责增加,提示需要说明越来越多的操作和数据,出错概率也可能增加。采用专门智能体协作,可以更清楚地组织这些能力。

购物助手中的智能体角色

  1. Product Inventory Agent:搜索商品目录和库存,获取名称、价格、规格及库存数量。对于特定条件的商品查询,可以搜索库存数据集的向量数据库。若要检查实时库存及剩余数量,还需要能够访问仓库数据的工具。
  2. Reviews Analysis Agent:处理用户评论和评分。用户询问相机续航评价时,检索相关评论,归纳内容或分析情感,并通过 LLM 提取优点和缺点。
  3. Shopping Cart Management Agent:添加或移除商品、修改数量,也可以建议配套商品。用户要求添加商品或查看购物车时,通过购物车数据库执行操作,并确认结果或列出当前商品。
  4. Ordering/Checkout Agent:处理结账、配送和可购买情况。它可以核查所在地区是否支持商品配送,或选择能够最快发货的仓库。用户询问星期二前能否送达时,检查配送方式和仓库库存分布。付款处理通常由安全的外部流程完成,智能体可以组织相关步骤;测试环境也可以使用专门测试流程。
  5. 可选 Recommendation Agent:根据购物车或用户查询推荐相关商品,支持追加推荐或交叉销售。实现可以采用推荐算法或基于历史数据的协同过滤。

通常还需要 Supervisor 或 Orchestrator Agent 协调这些角色,用户交互的 Shopping Assistant 本身就可以担任这一角色。它决定哪个专家负责当前请求,并进行委派。复杂请求可能需要连续调用多个智能体,例如“找到评分高、价格低于 500 美元的相机,有库存就加入购物车,并说明何时送达”,依次需要库存搜索、评论检查、加入购物车和配送估算。监督者负责组织顺序并保留整体对话状态。

框架与互操作

多个专门智能体协作,可以完成单个通用智能体难以处理的任务,或提高效率和稳健性。LangGraph 提供详细控制,适合自定义工作流程;CrewAI 提供角色和团队等抽象,并通过其过程管理组织协作。两者也可以结合,借助 A2A 等标准实现不同框架之间的互操作。

这一领域持续出现新的流程管理工具、标准接口和实践方法,帮助构建可靠的多智能体 AI 系统。

搜索课程

正在加载课程目录…