2025-2026 年涌现了三个重要的 AI Agent 通信协议,名称相近但定位各异。本页梳理三者的区别与关系。
一句话定位
| 协议 | 全称 | 主导方 | 一句话定位 |
|---|---|---|---|
| A2A | Agent-to-Agent Protocol | Agent 委托任务给另一个 Agent | |
| ACP (BeeAI) | Agent Communication Protocol | IBM / BeeAI | Agent 之间的通用 REST 通信接口 |
| ACP (Agent Client) | Agent Client Protocol | Zed Industries | 代码编辑器与 AI 编程 Agent 的通信标准 |
注:BeeAI ACP 已于 2025 年底并入 A2A,在 Linux Foundation 下统一治理。
ACP (BeeAI) 技术核心
ACP 围绕四个核心概念构建(来自 IBM BeeAI 规范):
- Agent Cards — JSON 文档,描述能力、支持的内容类型(text/images/JSON/自定义 MIME)和端点
- Discovery & Registration — 通过 mDNS 或中央 Registry 自动注册,实现零配置对等发现
- Task Lifecycle — 标准化端点:
POST /tasks(创建)、GET /tasks/{id}(状态轮询)、SSE 流式结果、取消 - Content Negotiation — 完整 MIME 类型支持,允许交换富媒体(结构化数据、二进制文件、图像)
三协议互补定位(非竞争关系):
- MCP — Agent 调用工具(垂直向下,tool calling)
- ACP — Agent 内部协作(本地优先,企业/离线场景)
- A2A — 跨组织 Agent 委托(跨框架协作)
生产系统通常同时使用三者:MCP 做工具访问,ACP 做内部协调,A2A 做外部合作伙伴 Agent 对接。
详细对比
| 维度 | A2A | ACP (BeeAI) | ACP (Agent Client) |
|---|---|---|---|
| 通信双方 | Agent ↔ Agent | Agent ↔ Agent | 编辑器 ↔ Agent |
| 传输协议 | HTTP/HTTPS | REST HTTP | JSON-RPC 2.0 / stdio |
| 发现机制 | Agent Card(/.well-known/agent.json) | Registry 注册 | ACP Registry |
| 核心单元 | Task | Run | Session + Prompt Turn |
| 流式支持 | SSE | SSE | JSON-RPC Notifications |
| 双向通信 | 否(单向委托) | 否 | 是(Agent 可反向调用编辑器) |
| 多模态 | 是(Text/File/Data Parts) | 是(MIME 类型 Parts) | 是(Text/Image/Resource) |
| 会话状态 | 无(无状态任务) | 有(Session ID) | 有(Session ID + 历史) |
| 工具调用 | 不涉及(委托给子 Agent) | 不涉及 | 有(含权限请求机制) |
| 认证 | Bearer Token 等 | 无内置规范 | 可选 authenticate 方法 |
| 现状 | 活跃,50+ 合作伙伴 | 已并入 A2A | 活跃,Zed/JetBrains 支持 |
分层关系
三个协议解决不同层次的问题,可以同时使用:
┌─────────────────────────────────────────────────────┐
│ 用户 │
│ ↕ ACP (Agent Client Protocol) │
│ 代码编辑器(Zed、JetBrains) │
│ ↕ ACP (Agent Client Protocol) │
│ AI 编程 Agent(Claude Code、Copilot 等) │
│ ↕ A2A / ACP (BeeAI) │
│ 专门子 Agent(搜索、代码分析、数据处理等) │
│ ↕ MCP │
│ 工具 / 资源(文件系统、数据库、API 等) │
└─────────────────────────────────────────────────────┘
- MCP:Agent 调用工具(垂直向下)
- A2A / ACP(BeeAI):Agent 委托任务给另一个 Agent(水平对等)
- ACP(Agent Client):编辑器与 Agent 的交互界面(垂直向上)
各协议核心 API 对比
A2A
GET /.well-known/agent.json # 发现 Agent
POST /tasks # 创建任务
GET /tasks/{id} # 查询任务状态
GET /tasks/{id}/events # 流式订阅(SSE)
ACP (BeeAI)
GET /agents # 列出 Agent
GET /agents/{name} # 获取 Agent Manifest
POST /runs # 创建 Run(sync/async/stream)
GET /runs/{id} # 查询 Run 状态
POST /runs/{id} # 恢复暂停的 Run
POST /runs/{id}/cancel # 取消 Run
ACP (Agent Client)
// JSON-RPC 方法(通过 stdio)
initialize // 握手
session/new // 创建会话
session/prompt // 发送消息(启动轮次)
session/cancel // 取消(通知)
session/update // 流式更新(通知,Agent → Client)
session/request_permission // 工具授权请求
fs/read_text_file // 读文件(Client 提供)
terminal/create // 创建终端(Client 提供)选型建议
| 场景 | 推荐协议 |
|---|---|
| 构建多 Agent 编排系统,需要跨厂商 Agent 协作 | A2A |
| 构建 AI 编程助手,需要接入多个编辑器 | ACP (Agent Client) |
| 构建支持 ACP Agent 的代码编辑器 | ACP (Agent Client) |
| 已有 BeeAI/OpenClaw 生态 | 迁移到 A2A(ACP 已并入) |
相关概念
- a2a-protocol — A2A 协议详细说明
- agent-client-protocol — Agent Client Protocol 详细说明
- openclaw-acp-protocol — OpenClaw 内部 ACP 机制(与上述协议无关)