Logo
热心市民王先生

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 的设计遵循以下核心原则:

  1. REST 原生设计:使用标准 HTTP 约定,便于集成到生产环境
  2. 无需 SDK:协议足够简单,可使用 cURL、Postman 等标准工具交互
  3. 离线发现:Agent 可将元数据嵌入分发包,支持 scale-to-zero 环境
  4. 异步优先,同步支持:默认支持异步通信,适合长时间运行的复杂任务

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"
    }
  ]
}
字段类型说明
rolestring消息角色(user/agent/agent_name)
partsarray消息内容部分数组
content_typestringMIME 类型(text/plain、image/png、application/json 等)
contentstring实际内容或 base64 编码
content_encodingstring编码方式(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
协议发起方目标场景架构风格
MCPAnthropic (2024.11)LLM 与工具的集成Client-Server
ACPIBM BeeAI (2024)跨框架 Agent 协作Brokered
A2AGoogle (2025.4)企业级 Agent 协作Peer-like
ANP社区 (2024-2025)去中心化 Agent 市场P2P Decentralized

3.2 ACP vs MCP

IBM 团队在初期曾考虑适配 MCP,但发现了以下架构限制[7]:

特性MCPACP
流式支持基本流式,不支持细粒度 delta 流支持细粒度 delta 流,适合实时更新
内存共享不支持跨服务器的共享内存部分支持(开发中)
消息结构接受任意 JSON Schema,不定义消息体结构定义结构化消息格式,支持多模态
协议复杂度JSON-RPC,需要特定 SDKREST 风格,可直接用 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
特性ACPA2A
通信风格REST-based,简单 HTTPJSON-RPC 2.0,支持 gRPC
设计哲学轻量、开放、可扩展企业级、Google 生态优化
治理模式Linux Foundation,开放治理Linux Foundation,Google 主导
Agent 发现离线元数据嵌入Agent Card JSON
认证机制Bearer tokens, mTLSOAuth 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
            : 统一标准形成

合并的意义

  1. 避免标准分裂:两个相似协议竞争会导致生态碎片化
  2. 集中力量:合并后的社区和资源将推动更快发展
  3. 用户受益:开发者只需适配一个标准即可获得广泛兼容

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 优势总结

  1. 技术简洁性:REST 原生设计降低了采用门槛
  2. 多模态支持:原生支持任意 MIME 类型内容
  3. 离线发现:独特的 scale-to-zero 环境支持
  4. 框架无关:支持 LangChain、CrewAI 等主流框架

5.2 局限性分析

  1. 项目归档:ACP 已不再活跃开发,新用户应考虑 A2A
  2. 生态系统:相比 A2A 的 50+ 合作伙伴,ACP 生态相对较小
  3. 内存共享:跨服务器共享内存仍在开发中
  4. 企业认证:企业级安全特性不如 A2A 成熟

5.3 适用场景建议

场景推荐方案理由
新项目开发A2AACP 已归档,A2A 是未来标准
已有 ACP 项目迁移到 A2A官方提供迁移指南
研究学习ACP/A2A 均可理解协议设计理念
跨组织协作A2A更成熟的认证和治理机制

参考来源

  1. IBM Think Topics - What is Agent Communication Protocol (ACP)?
  2. IBM - ACP 协议介绍文档
  3. ACP 官方文档 - Core Concepts
  4. ACP GitHub 仓库 README
  5. ACP 协议规范 - Message Structure
  6. Zylos Research - Agent-to-Agent Communication Protocol Standards
  7. IBM - ACP vs MCP 技术对比
  8. IBM - ACP vs A2A 协议对比
  9. GitHub - i-am-bee/acp 仓库归档公告
  10. ACP 官方文档 - MIME Type Support
  11. ACP 官方文档 - Offline Discovery

本文档分析了 ACP 协议的技术架构与设计哲学。鉴于 ACP 已合并入 A2A,建议新项目采用 A2A 标准。