Skip to content

通信与协议 ​

编排模式解决“谁跟谁一组”,通信解决“怎么说话”。当 Agent 们分属不同进程、不同厂商、不同信任域时,通信需要协议。

同进程内的通信:三种传递物 ​

先看不需要协议的情况——同一个 Harness 里派生和编排的 Agent 之间,传递的无非三种东西:

  1. 任务描述(上行前):自足的目标 + 验收标准 + 上下文包。
  2. 结构化结果(下行后):结论 + 证据指针(文件路径、URL)+ 置信度。约定统一的结果格式(如 JSON schema),下游才能稳定消费。
  3. 共享工作区:双方读写同一批文件或数据库——见下一节“上下文隔离与共享”。

跨信任域:A2A 协议 ​

当 Agent 分属不同组织——你的 Agent 要委托第三方公司的报销 Agent 办事——就需要开放协议。A2A(Agent2Agent Protocol)由 Google 发起、捐献给 Linux 基金会,正是为此设计。核心概念:

  • Agent Card:每个 Agent 发布一张自我描述卡片(能力、地址、认证方式),发现机制的基础——相当于 Agent 的“名片”。
  • Task:协作的原子单元,有完整生命周期(提交 → 工作中 → 交付/失败),支持长任务与流式进度。
  • Artifact:任务的交付物(文档、数据、表单)。

A2A 的设计哲学是不透明协作:你不需要知道对方 Agent 内部用什么模型、怎么规划,只看它的卡片、发任务、收交付物。这与 MCP 形成精确的互补:

MCPA2A
连接的两端Agent ↔ 工具/数据源Agent ↔ Agent
对方是什么无智能的资源不透明的另一个智能体
比喻USB-C(接设备)名片 + 工作合同(找同行)

两条协议栈是叠加而非二选一

一个 A2A Server 背后的 Agent,完全可以同时用 MCP 连接自己的工具。行业现状(2025–2026):MCP 已成为工具接入的事实标准,A2A 起步较晚但正在获得厂商采纳。

通信设计的三条经验 ​

  1. 消息即上下文。发给另一个 Agent 的每条消息都会占据它的窗口——信息要完整但不冗余,无价值的历史会稀释对方的注意力。
  2. 异步优于阻塞。长任务的协作尽量用“派发 + 通知回填”,而不是发起方原地等待;阻塞式链路上任何一环超时都会级联。
  3. 协议边界就是信任边界。跨信任域的消息要做注入过滤——对方 Agent 的输出对你而言只是不可信输入,这在[安全与权限]一章展开。

参考 ​

最近更新