01 - ACP 协议概述
ACP 协议的定义、起源、核心设计目标,以及与 MCP、A2A 等协议的对比分析
1. 协议定义与起源
1.1 什么是 ACP
Agent Communication Protocol (ACP) 是一个开放的 Agent 间通信协议标准,由 IBM 的开源项目 BeeAI 于 2024 年推出。该协议旨在解决 AI Agent 生态系统面临的根本性问题:碎片化。
根据 IBM 官方定义,ACP 是一个”用于 Agent 到 Agent 通信的开放标准,能够将当前孤立的 Agent 生态转变为可互操作的 Agentic 系统,实现更简单的集成与协作”[1]。
flowchart TB
subgraph "传统模式:孤立 Agent"
A1[LangChain Agent]
A2[CrewAI Agent]
A3[AutoGen Agent]
A4[Custom Agent]
A1 -.X.-> A2
A2 -.X.-> A3
A3 -.X.-> A4
end
subgraph "ACP 模式:互操作 Agent"
B1[LangChain Agent]
B2[CrewAI Agent]
B3[AutoGen Agent]
B4[Custom Agent]
B5[ACP Client]
B1 <-->|ACP Protocol| B5
B2 <-->|ACP Protocol| B5
B3 <-->|ACP Protocol| B5
B4 <-->|ACP Protocol| B5
end
1.2 协议诞生的背景
随着 Agentic AI 的快速发展,企业和开发者面临着一个严峻挑战:每个框架都有自己的通信方式。
根据 IBM 的分析,现实中的 Agent 系统面临以下问题[2]:
| 挑战类型 | 具体表现 | 影响程度 |
|---|---|---|
| 框架多样性 | 组织通常运行数百到数千个基于不同框架(LangChain、CrewAI、AutoGen、自定义栈)的 Agent | 高 |
| 自定义集成 | 缺乏标准协议时,开发者必须为每个 Agent 交互编写自定义连接器 | 极高 |
| 指数级开发成本 | n 个 Agent 可能需要 n(n-1)/2 个不同的集成点,大规模 Agent 生态难以维护 | 极高 |
| 跨组织复杂性 | 不同的安全模型、认证系统和数据格式使跨公司集成更加复杂 | 中 |
1.3 核心设计目标
ACP 的设计遵循以下核心原则:
- REST 原生设计:使用标准 HTTP 约定,便于集成到生产环境
- 无需 SDK:协议足够简单,可使用 cURL、Postman 等标准工具交互
- 离线发现:Agent 可将元数据嵌入分发包,支持 scale-to-zero 环境
- 异步优先,同步支持:默认支持异步通信,适合长时间运行的复杂任务
2. 协议架构与核心组件
2.1 系统架构
ACP 采用代理架构,定义了三个核心角色[3]:
flowchart LR
Client[Agent Client<br/>用户/应用] -->|HTTP Request| Server[ACP Server<br/>注册中心]
Server <-->|Discovery| Registry[(Agent Registry)]
Server <-->|Communication| Agent1[ACP Agent A]
Server <-->|Communication| Agent2[ACP Agent B]
Server <-->|Communication| Agent3[ACP Agent C]
Agent1 <-->|Direct| Agent2
style Server fill:#e1f5ff
style Client fill:#f0f0f0
style Agent1 fill:#fff3e0
style Agent2 fill:#fff3e0
style Agent3 fill:#fff3e0
| 角色 | 职责 | 示例 |
|---|---|---|
| Agent Client | 发起请求的应用或用户 | Web 应用、CLI 工具 |
| ACP Server | 提供注册和通信代理服务 | BeeAI Platform |
| ACP Agent | 实现 ACP 协议的 Agent | 各种框架构建的 Agent |
2.2 核心概念
2.2.1 Agent Manifest
Agent Manifest 是描述 Agent 能力的模型,包含名称、描述、可选元数据和状态,用于发现和组合,而不暴露实现细节[4]。
{
"name": "echo",
"description": "Echoes everything",
"metadata": {},
"capabilities": {
"streaming": true,
"async": true
}
}
2.2.2 Run(运行实例)
Run 代表 Agent 的单次执行,具有特定输入。支持同步或流式传输,可产生中间输出和最终输出。
2.2.3 Message(消息)
Message 是通信的核心结构,由有序组件序列组成,形成完整的、结构化的、多模态的信息交换[5]。
2.3 消息结构详解
ACP 消息采用多部分 MIME 格式,支持任意 MIME 类型的内容:
{
"role": "user",
"parts": [
{
"content_type": "text/plain",
"content": "Howdy!",
"content_encoding": "plain",
"content_url": null
},
{
"content_type": "image/png",
"content": "base64encoded...",
"content_encoding": "base64"
}
]
}
| 字段 | 类型 | 说明 |
|---|---|---|
role | string | 消息角色(user/agent/agent_name) |
parts | array | 消息内容部分数组 |
content_type | string | MIME 类型(text/plain、image/png、application/json 等) |
content | string | 实际内容或 base64 编码 |
content_encoding | string | 编码方式(plain、base64) |
3. 与 MCP、A2A 协议的对比分析
3.1 协议定位对比
2025-2026 年的 AI Agent 生态系统正在围绕四个互补的互操作性协议收敛[6]:
flowchart TB
subgraph "协议生态分层"
direction TB
Layer1[工具层]
Layer2[通信层]
Layer3[网络层]
Layer1 --> Layer2 --> Layer3
end
subgraph "对应协议"
direction TB
MCP[MCP<br/>Model Context Protocol<br/>Anthropic]
ACP_A2A[ACP / A2A<br/>Agent Communication<br/>IBM / Google]
ANP[ANP<br/>Agent Network Protocol<br/>Community]
MCP --> ACP_A2A --> ANP
end
| 协议 | 发起方 | 目标场景 | 架构风格 |
|---|---|---|---|
| MCP | Anthropic (2024.11) | LLM 与工具的集成 | Client-Server |
| ACP | IBM BeeAI (2024) | 跨框架 Agent 协作 | Brokered |
| A2A | Google (2025.4) | 企业级 Agent 协作 | Peer-like |
| ANP | 社区 (2024-2025) | 去中心化 Agent 市场 | P2P Decentralized |
3.2 ACP vs MCP
IBM 团队在初期曾考虑适配 MCP,但发现了以下架构限制[7]:
| 特性 | MCP | ACP |
|---|---|---|
| 流式支持 | 基本流式,不支持细粒度 delta 流 | 支持细粒度 delta 流,适合实时更新 |
| 内存共享 | 不支持跨服务器的共享内存 | 部分支持(开发中) |
| 消息结构 | 接受任意 JSON Schema,不定义消息体结构 | 定义结构化消息格式,支持多模态 |
| 协议复杂度 | JSON-RPC,需要特定 SDK | REST 风格,可直接用 HTTP 工具 |
类比理解:
- MCP 像是给一个人更好的工具(计算器、参考书)来提升其表现
- ACP 像是让一群人形成团队,每个人(Agent)协作贡献自己的能力
3.3 ACP vs A2A
ACP 和 A2A 都旨在实现 Agent 间通信,但在理念和治理上存在差异[8]:
flowchart LR
subgraph "ACP 特点"
A1[简单集成]
A2[REST 原生]
A3[开放治理]
A4[跨组织友好]
end
subgraph "A2A 特点"
B1[Google 生态集成]
B2[JSON-RPC 2.0]
C1[50+ 合作伙伴]
C2[企业级认证]
end
| 特性 | ACP | A2A |
|---|---|---|
| 通信风格 | REST-based,简单 HTTP | JSON-RPC 2.0,支持 gRPC |
| 设计哲学 | 轻量、开放、可扩展 | 企业级、Google 生态优化 |
| 治理模式 | Linux Foundation,开放治理 | Linux Foundation,Google 主导 |
| Agent 发现 | 离线元数据嵌入 | Agent Card JSON |
| 认证机制 | Bearer tokens, mTLS | OAuth 2.0, mTLS, API Key |
3.4 合并与演进
重要更新:截至 2025 年 8 月 27 日,ACP 已被归档,其技术和专业团队正贡献给 A2A[9]。
timeline
title ACP 与 A2A 的演进时间线
2024 : IBM 推出 ACP
: BeeAI 开源项目启动
2025.04 : Google 推出 A2A
: 50+ 合作伙伴支持
2025.06 : A2A 捐赠给 Linux Foundation
2025.08 : ACP 归档,合并入 A2A
: 统一标准形成
合并的意义:
- 避免标准分裂:两个相似协议竞争会导致生态碎片化
- 集中力量:合并后的社区和资源将推动更快发展
- 用户受益:开发者只需适配一个标准即可获得广泛兼容
4. 协议技术特点深度分析
4.1 REST 原生设计的优势
ACP 使用标准 HTTP 约定,这带来了显著优势:
| 优势 | 说明 | 实际影响 |
|---|---|---|
| 易于集成 | 可使用标准 HTTP 工具(curl、Postman) | 开发成本低 |
| 基础设施兼容 | 天然支持负载均衡、缓存、网关 | 运维简单 |
| 调试友好 | HTTP 请求/响应可直接查看 | 问题排查快 |
| 生产就绪 | 成熟的安全和监控工具链 | 风险低 |
4.2 多模态消息支持
ACP 使用 MIME 类型进行内容识别,可轻松扩展到任何数据格式[10]:
flowchart LR
Text[text/plain] --> Message
JSON[application/json] --> Message
Image[image/png/jpeg] --> Message
Audio[audio/wav/mp3] --> Message
Video[video/mp4] --> Message
Binary[application/octet-stream] --> Message
Message --> Agent
4.3 离线发现机制
ACP 的独特功能之一是离线 Agent 发现[11]:
sequenceDiagram
participant User as 用户/应用
participant Registry as Agent Registry
participant Package as Agent Package
User->>Package: 下载 Agent 包
Package-->>User: 返回包含元数据的包
User->>Registry: 查询可用 Agent
Registry-->>User: 返回 Agent 列表(含离线 Agent)
User->>User: 本地离线发现可用
应用场景:
- 安全隔离环境(无外部网络)
- Scale-to-zero 架构(资源动态分配)
- 离线开发和测试
5. 批判性评价
5.1 优势总结
- 技术简洁性:REST 原生设计降低了采用门槛
- 多模态支持:原生支持任意 MIME 类型内容
- 离线发现:独特的 scale-to-zero 环境支持
- 框架无关:支持 LangChain、CrewAI 等主流框架
5.2 局限性分析
- 项目归档:ACP 已不再活跃开发,新用户应考虑 A2A
- 生态系统:相比 A2A 的 50+ 合作伙伴,ACP 生态相对较小
- 内存共享:跨服务器共享内存仍在开发中
- 企业认证:企业级安全特性不如 A2A 成熟
5.3 适用场景建议
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 新项目开发 | A2A | ACP 已归档,A2A 是未来标准 |
| 已有 ACP 项目 | 迁移到 A2A | 官方提供迁移指南 |
| 研究学习 | ACP/A2A 均可 | 理解协议设计理念 |
| 跨组织协作 | A2A | 更成熟的认证和治理机制 |
参考来源
- IBM Think Topics - What is Agent Communication Protocol (ACP)?
- IBM - ACP 协议介绍文档
- ACP 官方文档 - Core Concepts
- ACP GitHub 仓库 README
- ACP 协议规范 - Message Structure
- Zylos Research - Agent-to-Agent Communication Protocol Standards
- IBM - ACP vs MCP 技术对比
- IBM - ACP vs A2A 协议对比
- GitHub - i-am-bee/acp 仓库归档公告
- ACP 官方文档 - MIME Type Support
- ACP 官方文档 - Offline Discovery
本文档分析了 ACP 协议的技术架构与设计哲学。鉴于 ACP 已合并入 A2A,建议新项目采用 A2A 标准。