前言
也算做了好长一段时间的LLM-based MAS,有几个协议一直在这段时间出现在我周围:
MCP
A2A
ACP(新的)
然后于是,想来了解一下,这究竟具体是何方神圣。
正文
1. MCP(Model Context Protocol)

1.1 什么是MCP?
Model Context Protocol(简称 MCP)是由 Anthropic 发起并开源的一种标准化通信协议,用于让大语言模型(LLM)和代理系统以统一方式访问外部工具、数据源与服务。它被比喻为“AI 的 USB-C 接口”,正在成为连接智能体与软件生态的通用标准。
关键信息
发布机构: Anthropic(2024 年开源)
核心作用: 统一 LLM 与外部系统的数据与功能接口
通信方式: 基于 JSON-RPC 2.0 的双向协议
主要组件: Host、Client、Server
常用语言 SDK: Python、TypeScript、C#、Java、Rust 等
架构与机制
MCP 采用主机-客户端-服务器(Host-Client-Server)架构。主机是运行 LLM 或 AI 代理的应用(如 Claude Desktop 或 IDE 环境),负责权限与上下文聚合;客户端在主机中创建,与单个服务器建立 1∶1 连接;服务器由外部工具或数据源实现,向客户端暴露三类能力:
Resources(资源): 各类结构化数据,如文件、数据库记录;
Tools(工具): 可执行动作的接口,如提交 API 请求或运行查询;
Prompts(提示模板): 可复用的交互模板与任务工作流。
通信过程通过请求-响应与通知模式完成初始化、数据传输和能力协商。
技术特性
MCP 定义了安全边界与可扩展机制:
能力协商(Capability Negotiation) 确保客户端与服务器仅启用双方支持的功能;
多传输层 支持 stdio、HTTP (SSE) 与 WebSocket 通信;
安全模型 采用零信任设计,主机需显式授权所有外部调用;
可组合性 各服务器职责单一,可在同一主机中无缝组合使用。
重要意义与应用
在 MCP 出现之前,每个 AI 系统都需为不同应用编写自定义集成代码。MCP 将 N 个 AI 应用与 M 个外部工具的集成复杂度,从 N × M 降至 N + M。该协议已被 GitHub、Figma、Microsoft 等产品支持,用于实现 IDE 、桌面助手、企业 CRM 和多智能体系统的统一连接。
随着生态扩展,MCP 有望成为 AI 工具互操作的行业标准,使智能体能够在安全框架下跨平台访问上下文、执行操作并协调复杂任务。
1.2 MCP的实际应用
本质:JSON-RPC 风格的协议
1.2.1 工具注册(Tool Definition)
{
"name": "search_papers",
"description": "Search academic papers",
"input_schema": {
"type": "object",
"properties": {
"query": { "type": "string" },
"top_k": { "type": "integer" }
},
"required": ["query"]
}
}这一步是在告诉模型:“我有一个工具,你可以这样调用我”
1.2.2 模型发起调用(Tool Call)
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "search_papers",
"arguments": {
"query": "SBOM vulnerabilities",
"top_k": 5
}
},
"id": 1
}1.2.3 工具返回结果
{
"jsonrpc": "2.0",
"result": {
"papers": [
{ "title": "SBOM Security Issues", "year": 2024 },
{ "title": "Software Supply Chain Risks", "year": 2023 }
]
},
"id": 1
}1.2.4 MCP 的关键点
基于 JSON-RPC(请求-响应)
强 schema(input_schema)
工具是“被动调用”的
核心抽象:function call
2. A2A(Agent-to-Agent)

2.1 什么是A2A?
Agent-to-Agent Protocol(简称 A2A)是一项由 Google 于 2025 年推出的开放通信标准,旨在让不同平台、框架或厂商构建的自主 AI 代理(agents)能够安全、标准化地互相发现、交流与协作。它是多代理系统(multi-agent systems)实现互操作性的核心机制。
关键信息
发布方:Google,与逾 50 家技术合作伙伴联合发布(2025 年 4 月)
核心定位:为 AI 代理提供通用通信协议
主要技术:HTTP(S)、JSON-RPC 2.0、Server-Sent Events (SSE)
安全机制:TLS 加密、OAuth 2.0、API Key、mTLS
互补协议:Model Context Protocol (MCP)
核心设计与工作机制
A2A 通过“客户端代理(client agent)”与“远程代理(remote agent)”之间的交互完成任务协作。通信以 任务(Task) 为中心展开,支持异步和长任务流。每个代理通过一个标准化的 Agent Card(通常位于 /.well-known/agent.json)公开自身身份、技能、输入输出格式及认证要求,从而实现动态发现和自动匹配。
消息以 JSON-RPC 封装,可包含文本、结构化数据、文件甚至流媒体等多种内容类型。协议内置 任务生命周期管理(提交→进行中→完成/失败)及状态事件,使协作具备可追踪性和持久性。
与 MCP 的关系
A2A 与 Model Context Protocol 互为补充:
MCP 连接代理与外部工具或数据源(“agent-to-tool” 层)。
A2A 连接代理与代理(“agent-to-agent” 层)。
二者结合构成完整的智能系统通信栈,使代理既能调用工具,又能与其他代理协同。
应用与优势
A2A 使企业能够组合不同模型或服务的专用代理,如客服、检索、分析、生成等,从而构建可扩展、模块化的智能体系。其优势包括:
跨框架互操作:消除厂商锁定,实现多语言、多平台协作。
任务级协作:支持委派、协同、咨询等多种代理协作模式。
企业级安全:沿用现有身份认证体系,支持审计与追踪。
可扩展架构:任务模型天然支持水平扩展和并行处理。
当前地位与发展
A2A 由 Google 开源并已贡献至 Linux Foundation 的 Agentic AI Foundation 进行治理。其生态系统正快速扩展,被视为构建“智能代理网络(Agentic Web)”的重要基石。随着 MCP、ANP 等相关协议协同发展,A2A 正成为未来多代理通信标准的核心组成部分。
2.2 A2A的实际应用
本质:带角色 + 意图的消息传递
2.2.1 Agent 发任务给另一个 Agent
{
"from": "planner_agent",
"to": "coder_agent",
"type": "task",
"content": {
"goal": "Implement SBOM parser",
"requirements": [
"Support SPDX",
"Output JSON"
]
}
}2.2.2 coder_agent 回复
{
"from": "coder_agent",
"to": "planner_agent",
"type": "result",
"content": {
"status": "completed",
"repo_url": "https://github.com/example/sbom-parser"
}
}2.2.3 A2A 的关键点
有 agent identity(from/to)
有 message type(task/result/feedback)
payload 更自由(不像 MCP 那么 rigid)
核心抽象:协作对话
3. ACP(Agent Communication Protocol)【在我看来也就比A2A底层一点,除此之外没有区别】
3.1 什么是Agent Communication Protocol?
Agent Communication Protocol(ACP)是一种开放标准,旨在让不同框架、语言和运行环境的人工智能代理(AI agents)能够相互通信与协作。它为多代理系统提供统一的消息格式与接口,支持跨平台的互操作性与任务协调。ACP最初由IBM的BeeAI项目提出,现已并入Linux基金会旗下的Agent2Agent(A2A)计划。
关键信息
首次发布: 2024年(IBM BeeAI项目)
当前维护方: Linux Foundation(并入A2A协议)
通信方式: REST/HTTP,支持异步与同步模式
主要实现: BeeAI Framework、Python与TypeScript SDK
特性焦点: 开放治理、跨框架互通、多模态消息支持
核心设计与机制
ACP基于REST原则,通过HTTP端点发送和接收消息,无需专用SDK即可集成。其消息模型允许文本、图像、音频、结构化数据等多模态内容,并以异步通信为默认模式,以支持长时运行或复杂任务。协议还支持离线发现,即使代理暂未上线,也可通过嵌入的元数据被识别。其安全设计包括身份认证、元数据签名与加密通信。
生态与用途
ACP为多代理协作提供标准通信层。例如,不同企业的生产调度代理与物流代理可通过ACP交换实时库存与运输数据,而无需定制接口。它支持跨系统、跨组织的工作流,如企业内部客服、库存、与人力资源系统之间的协作。
ACP在BeeAI平台上作为通信底层,为发现、运行和共享符合协议的代理提供基础设施。其开放生态还允许开发者使用Python或TypeScript SDK快速封装和部署兼容代理。
与其他协议的关系
ACP常与Model Context Protocol和Agent2Agent Protocol相提并论:
MCP 聚焦于单模型与工具间的数据与上下文交换。
ACP 面向多代理间的点对点通信与协作。
A2A 由Google发起,现与ACP在Linux基金会下融合,形成统一的开放代理互操作标准。
当前发展
并入A2A后,ACP的规范与实现正持续演进,重点方向包括身份联合、访问委托、多注册表支持及跨组织的安全信任管理。其目标是为“代理互联网(Internet of Agents)”奠定通用通信基础,使未来AI系统能像网络服务一样自由互联与协作。
3.2 ACP:更底层通信协议(偏基础设施)
Agent Communication Protocol
本质:标准化消息 envelope(信封)
3.2.1 一个更通用的消息格式
{
"header": {
"message_id": "12345",
"sender": "agent_A",
"receiver": "agent_B",
"timestamp": "2026-04-01T12:00:00Z",
"protocol_version": "1.0"
},
"body": {
"action": "request",
"payload": {
"task": "analyze dataset",
"dataset_id": "xyz"
}
}
}3.2.2 响应
{
"header": {
"message_id": "12345-resp",
"correlation_id": "12345"
},
"body": {
"status": "ok",
"result": {
"accuracy": 0.91
}
}
}3.2.3 ACP 的关键点
明确的 header / body 分层
支持 tracing(correlation_id)
更像企业级系统(微服务通信)
核心抽象:message bus / API
4. 三者“协议层级”对比
我们可以这样理解
┌───────────────┐
│ A2A(协作) │ ← 高层语义(任务、角色)
├───────────────┤
│ ACP(通信) │ ← 传输规范(message format)
├───────────────┤
│ MCP(工具) │ ← 外部能力调用
└───────────────┘4.1 A2A 和 ACP
A2A 和 ACP 确实高度重叠,但不是同一个层级
A2A = “语义层(怎么协作)”
ACP = “通信层(怎么传消息)”
4.1.1 A2A:定义“协作语义”
Agent-to-Agent Protocol
A2A 更像是:“Agent 之间在干什么?”
比如:
{
"type": "task",
"goal": "write code"
}或者:
{
"type": "feedback",
"score": 0.8
}它关注的是:
task delegation
collaboration pattern
roles(planner / coder / critic)
4.1.2 ACP:定义“消息怎么走”
Agent Communication Protocol
ACP 更像:“这条消息怎么被可靠地送过去?”
比如:
{
"header": {
"message_id": "123",
"sender": "agent_A",
"receiver": "agent_B",
"timestamp": "...",
"retry": 2
},
"body": {
"type": "task",
"payload": {...}
}
}它关注的是:
message envelope
routing / addressing
reliability(retry / timeout)
tracing(correlation_id)
4.1.3 关键区别
总结
就是酱紫!
┌───────────────┐
│ A2A(协作) │ ← 高层语义(任务、角色)
├───────────────┤
│ ACP(通信) │ ← 传输规范(message format)
├───────────────┤
│ MCP(工具) │ ← 外部能力调用
└───────────────┘一句话:MCP 管“用工具”,A2A 管“干什么”,ACP 管“怎么传”
MCP = 让 AI 调用工具(AI → Tool)
A2A = 让 AI 分工协作(Agent → Agent,语义层)
ACP = 让 AI 可靠通信(Agent → Agent,通信层)
参考
[1] ChatGPT