EN

多智能体系统实战:从协议选择到协同框架搭建

深入解析多智能体通信协议、经济协作机制与运行时框架,指导读者设计高效的多 Agent 系统

返回教程列表
高级30 分钟

多智能体系统实战:从协议选择到协同框架搭建

深入解析多智能体通信协议、经济协作机制与运行时框架,指导读者设计高效的多 Agent 系统

本文系统梳理多智能体系统的核心挑战与解决方案。首先介绍 A2A、ACP、ANP、Agora 等主流通信协议的特点与选型依据,并引入 ProtocolBench 评测基准与 ProtocolRouter 动态路由思想。其次探讨心智经济(EOM)框架,阐述如何通过拍卖、财富、租金等经济机制实现弱智能体的自组织与自演化。最后详解 OpenRath 以 Session 为中心的多智能体运行时,展示其 Session Graph、可插拔 Sandbox/Memory 等设计。文章还提供跨语言合同合规引擎等实战案例,并附 FAQ 解答常见问题。

引言:多智能体协作的三大核心问题

当单个 Agent 无法独立完成复杂任务时,多智能体系统成为必然选择。然而,构建一个高效、可靠、可扩展的多 Agent 系统绝非简单堆叠模型。开发者面临三大核心问题:

  • 通信协议:Agent 之间如何高效、安全地交换信息?
  • 协作机制:如何让多个智能体自发形成高效分工,而非依赖人工编排?
  • 运行时管理:当 Agent 数量达到上百个时,如何管理状态、调试、回滚与审计?
  • 本文将从这三个维度出发,结合最新研究与开源框架,提供一套完整的实战指南。

    一、通信协议:多智能体系统的“语言”

    1.1 为什么需要专用通信协议?

    早期多智能体系统常采用本地直连或自定义 HTTP 接口,这在规模较小时可行。但随着 Agent 数量增长、跨网络部署成为常态,标准化通信协议变得不可或缺。协议层直接影响系统性能、可靠性、安全性和可扩展性。

    1.2 主流协议对比

    UIUC 团队在 ICML 2026 论文《Which LLM Multi-Agent Protocol to Choose?》中提出了 ProtocolBench,系统比较了四种主流协议:

    协议全称核心特点适用场景

    A2AAgent-to-Agent轻量 HTTP + JSON-RPC,支持 Agent Card 身份声明,无状态通信层级化、Planner 驱动的多跳协作,企业级任务编排 ACPAgent Communication ProtocolREST/SSE 风格,异步请求-响应,低延迟高吞吐、低延迟的浅层服务,如流式数据处理 ANPAgent Network Protocol强调身份认证、端到端加密、安全路由跨边界、隐私敏感的任务,如医疗、金融 Agora—去中心化 P2P 网络,支持动态工作流协商异构网络、动态拓扑场景

    ProtocolBench 关键发现

  • A2A 在 GAIA Document QA 中任务效用最高(Quality avg 2.51),故障恢复能力最强(故障后答案保留率 98.85%)。
  • ACP 在 Streaming Queue 场景中平均延迟最低(9.66 秒),总耗时最短。
  • ANP 和 Agora 在安全维度覆盖最全,支持 TLS 传输、会话劫持防护、端到端加密等。
  • 结论:没有万能协议,选择取决于场景约束。

    1.3 ProtocolRouter:动态协议选择

    既然没有协议能通吃所有场景,论文进一步提出 ProtocolRouter——一个约束感知的协议路由器。它遵循“先满足硬约束,再做性能优化”的原则,可为整个场景或每个模块选择协议,甚至支持异构协议组合(通过 adapter 做无状态映射)。

    例如,一个金融合规系统可能要求端到端加密(硬约束),则 ANP 或 Agora 被选中;若同时需要低延迟,则结合性能先验(ProtocolBench 数据)做最终决策。

    实战建议:在系统设计初期,使用 ProtocolBench 对候选协议进行基准测试,再结合自身安全、延迟、成本等约束,选择或组合适用协议。

    二、协作机制:从人工编排到自组织

    2.1 传统多智能体协作的局限

    主流框架如 LangGraph、CrewAI 等通常要求开发者手动设计角色、交互规则、通信拓扑。这种自上而下的方式在 Agent 数量增多时面临扩展性瓶颈,且难以适应动态变化的任务。

    2.2 心智经济(Economy of Minds, EOM)

    受哈耶克去中心化市场理论启发,哈佛、MIT 等机构联合提出了 EOM 框架,将多智能体系统模拟为经济体,通过经济机制实现自组织与自演化。

    核心机制

  • 拍卖:每个时间步,满足触发条件的 Agent 通过出价竞争执行权,出价最高者获得本轮动作机会。
  • 桶链转账:获胜 Agent 将出价支付给上一轮执行者,价值沿成功行为链路反向传递,实现去中心化信用分配。
  • 财富与租金:Agent 积累财富,定期扣除租金;财富为负则破产淘汰。
  • 探索与利用:财富充足的 Agent 通过提示词微调产生子代(利用),破产 Agent 被改造为新 Agent(探索),维持种群多样性。
  • 实验结果

    在数学推理、金融研究、科学研究、加速器设计、分布式系统优化五大任务中,由弱智能体组成的 EOM 经济体全面超越单体强智能体与常规多智能体方案。例如:

  • 数学推理(Llama-3.1-8B):准确率从 15.9% 提升至 57.0%,超过同模型完整智能体的 51.9%。
  • 金融研究:准确率从 45.0% 提升至 60.0%。
  • 加速器设计:平均 EDP 降至 39.3,低于传统算法 DOSA 的 80.2。
  • 消融实验证明,拍卖、探索、利用、租金等组件缺一不可。

    理论支撑:论文证明拍卖出价收敛于真实价值、仅靠最终奖励即可训练、去中心化决策的遗憾值随训练收敛。

    实战启示:EOM 提供了一种“设计规则而非行为”的新范式,适用于需要长期演化、动态适应的场景。但当前仅支持提示词层面演化,未来可扩展至模型参数。

    2.3 蜂群模式:Kimi K2.6 的 300 智能体实践

    Kimi K2.6 的智能蜂群系统展示了另一种大规模协作模式:单次指令可调度最多 300 个并行子智能体,完成 4000 轮全局推演。其核心闭环包括:

  • 简报拆解:用户输出标准化执行规范,Kimi 自主拆解任务框架。
  • 蜂群运算:并行调度子智能体,每个拥有独立上下文窗口,避免长文本失真。
  • 校验审核:引入 Claude Opus 4.8 作为独立校验关卡,拦截漏洞与失真结论。
  • 经验沉淀:将完整工作流封装为可复用技能。
  • 复用推演:新任务直接调用已有技能库,实现越用越快、越用越准。
  • 关键原则

  • 撰写标准化规范而非简短指令,明确目标、范围、数据源、输出格式。
  • 以实体文件(PDF、表格、数据集)为输出目标,拒绝纯文本交付。
  • 校验环节不可省略,确保成果质量。
  • 三、运行时管理:以 Session 为中心

    3.1 传统框架的痛点

    当 Agent 数量达到几十上百个时,常见问题包括:

  • 每个 Agent 维护独立上下文,状态散落,难以追踪。
  • 任务分叉出多条推理路径,无法清晰回溯。
  • 调试、复现、审计变得极其困难。
  • 3.2 OpenRath:像 PyTorch 一样搭建 Agent 集群

    清华与中山大学团队开源的 OpenRath 提出了全新思路:Session 是核心,Agent 是变换层。它借鉴 PyTorch 的抽象,建立了清晰的映射:

    PyTorch 概念OpenRath 映射说明

    TensorSession流动的数据单元,包含结构化消息、工具调用记录、执行位置等 Module/LayerWorkflow/Agent对 Session 做变换的单元,实现 forward(session) -> session DeviceSandbox/Backend可插拔的执行环境(本地进程、容器等) ParameterMemory跨运行的持久状态,支持 BM25、向量检索等后端 FunctionTool工具调用,封装为 FlowToolCall 控制流Selector动态路由与选择

    三大支柱

  • Agent 是变换层:Agent 不持有状态,仅对 Session 做变换。同一接口可容纳工具调用、压缩、记忆读写等多种行为,可任意堆叠嵌套。
  • 可插拔后端:Sandbox(执行环境)和 Memory(长期记忆)可独立替换,只需实现统一接口。例如 session.to("local", spec="./") 即可切换本地执行。
  • 动态 Session Graph:Session 支持 fork、merge、detach,形成一张由 Agent 运行时演化出的动态图,天然支持分支、回滚、审计。
  • 实战示例

    python
    from openrath import Session, Sandbox, FlowToolCall, Agent, Workflow

    创建 Session

    session = Session()

    切换到本地沙箱

    session.to("local", spec="./workspace")

    定义工具

    tool = FlowToolCall( name="read_file", description="读取文件内容", parameters={"type": "object", "properties": {"path": {"type": "string"}}}, func=lambda path: open(path).read() )

    定义 Agent

    agent = Agent( name="reader", tools=[tool], system_prompt="你是一个文件阅读助手。" )

    定义 Workflow

    class MyWorkflow(Workflow): def forward(self, session: Session) -> Session: session = agent(session) return session

    运行

    result = MyWorkflow().run(session)

    多 Agent 多 Session(MAMS):OpenRath 面向的是四象限中的 MAMS 模式——多个 Agent 操作多个 Session,通过 fork/merge 实现复杂协作。这使得系统可扩展至上百个 Agent,且状态完全可控。

    四、实战案例:跨语言合同合规引擎

    基于 Google ADK 与 A2A 协议搭建的跨语言合同合规多智能体引擎,是一个典型的生产级案例。其架构特点:

  • Python 层:使用 FastAPI + ADK 完成合同接入、文本结构化提取、多智能体编排与 A2A 远程调用。
  • Go 层:纯规则校验服务,通过 JSON-RPC 2.0 与 Agent Card 实现标准化通信,执行刚性合规规则(金额、年限、强制条款等)。
  • 关键设计:LLM 负责模糊处理(文本理解),确定性代码负责硬规则校验,结果 100% 可复现、可审计。
  • 该架构可复用至风控、采购等强监管场景,解决了纯 LLM 方案结果随机、无法审计的行业痛点。

    五、总结与选型建议

    维度推荐方案适用场景

    通信协议A2A(通用)、ACP(低延迟)、ANP/Agora(高安全)根据 ProtocolBench 基准测试选择 协作机制EOM(自演化)、蜂群(大规模并行)长期演化任务 vs 一次性大规模任务 运行时管理OpenRath(Session 中心)上百个 Agent、需要状态追踪与审计

    核心原则

  • 不要将硬性规则交给 LLM,使用确定性代码保证可审计性。
  • 协议选择基于场景约束,而非工程惯性。
  • 运行时设计以状态管理为中心,而非 Agent 本身。
  • FAQ

    Q1: A2A 和 MCP 有什么区别?

    A2A(Agent-to-Agent)是智能体之间的通信协议,用于 Agent 之间交换任务、结果和状态。MCP(Model Context Protocol)是模型与工具之间的协议,用于 Agent 调用外部工具。两者互补:MCP 让 Agent 连接工具,A2A 让 Agent 连接其他 Agent。

    Q2: EOM 框架需要多少计算资源?

    EOM 的训练阶段需要多次调用 LLM 进行拍卖、出价、提示词微调等操作,计算开销较大。但评估阶段仅保留拍卖,开销与常规多智能体系统相当。论文实验使用 Llama-3.1-8B 和 Gemma-2-9B 等中等规模模型,在单 GPU 上可运行。

    Q3: OpenRath 与 LangGraph 的主要区别是什么?

    LangGraph 以图状态和 Supervisor 节点为核心,强调 Agent 之间的对话与路由。OpenRath 以 Session 为核心,将 Agent 视为对 Session 的变换层,更关注状态管理、可插拔后端和动态图。OpenRath 更适合需要精细控制状态、大规模集群、审计追踪的场景。

    Q4: 如何选择多智能体系统的通信协议?

    首先列出硬约束(如安全性、延迟上限、部署环境),然后使用 ProtocolBench 对候选协议进行基准测试,最后结合性能先验(如 A2A 适合层级协作、ACP 适合高吞吐)做出选择。也可使用 ProtocolRouter 实现动态协议路由。

    Q5: 多智能体系统如何保证结果可审计?

    关键是将硬性规则(金额、期限等)剥离给确定性代码,而非 LLM。同时,使用 Session Graph 记录所有 Agent 的 fork/merge 历史、工具调用参数与结果,并持久化到审计日志。OpenRath 的 Session 天然支持这种追踪。