文档 / 多智能体系统

多智能体系统

与其构建一个无所不能的庞大智能体,不如构建多个更小、更专业化并协同工作的智能体—— 就像一个人类团队,而不是一位全能个人。

Specialization Coordination Scalability

什么是多智能体系统?

多智能体系统由多个独立的智能体组成,每个智能体都有不同的职责、工具,有时甚至使用不同的语言模型, 它们相互交互以实现一个共同的目标。例如在一家在线商店中:一个产品搜索智能体、一个库存检查智能体, 以及一个支付处理智能体——每个都专注于一个领域。

为什么一个全能智能体不够用?

当一个智能体的工具和职责数量不断增加时,会出现几个问题:系统提示词变得过长且令人困惑,模型在数十个选项中 选择正确工具时容易出错,而排查错误行为也变得困难,因为一切都集中在同一个"大脑"里。 将职责拆分到多个更小的智能体中,每个智能体拥有有限的工具集和聚焦的提示词,可以缓解这些问题。

优势

  • 专业化 — 每个智能体在自己狭窄的领域内表现更精准
  • 开发可扩展性 — 不同团队可以独立开发不同的智能体
  • 更容易排查问题 — 可以精确定位是哪个智能体导致了错误决策
  • 可复用性 — 一个专用智能体(例如支付智能体)可以在多个不同场景中复用

挑战

  • 协调成本 — 智能体之间的消息交换会增加延迟和复杂性
  • 谁来最终负责? — 如果没有清晰的编排层(参见智能体编排),决策过程可能会变得混乱
  • 误差累积 — 如果第一个智能体犯了错误,后续的智能体会在同一个错误之上继续构建
  • 计算成本 — 多次模型调用而非一次,会提高成本和延迟

共享记忆/上下文与隔离记忆/上下文

设计多智能体系统时的一个基本架构决策是:所有智能体是访问同一个共享 State, 还是各自拥有独立、隔离的 Context,仅通过特定消息交换信息?

  • 共享 State(常见于 LangGraph 等框架中) — 所有节点都可以读取和更新同一个共享数据对象。实现起来更简单,但相互干扰的风险更高(某个智能体可能误改属于另一个智能体的数据)。
  • 隔离 Context(常见于不同组织之间的通信,例如 A2A) — 每个智能体只能看到明确通过消息传递给它的信息。对独立智能体而言更安全、更具可扩展性,但由于没有隐式共享的数据,需要更仔细地设计消息。

一般原则是:在一个你信任所有智能体的团队/组织内部,共享 State 能提升开发速度;而在不同组织 或第三方智能体之间的边界上,隔离 Context 是一项安全要求,而不仅仅是一种风格选择。

什么时候应该考虑多智能体系统?

如果一个只有少量工具的单一智能体已经运行良好,那就足够了——不要增加不必要的复杂性。 当出现以下情况时可以考虑多智能体方案:工具/职责的数量变得庞大且异质、各工作领域彼此明显分离 (例如搜索与支付),或者你需要对各部分进行独立扩展。常见的实现模式请参见 多智能体架构模式

常见问题

多智能体系统中的所有智能体都必须使用同一个语言模型吗?

不需要。简单任务可以使用更小、更便宜的模型,而更复杂的决策可以使用能力更强的模型。

智能体之间如何通信?

在同一个组织内部,通常通过类似 LangGraph 这样的框架中的共享状态;在不同组织之间,则通过开放的 A2A 协议。