从MCP到A2A:Agent间通信协议栈的分层演进与选型之争
从MCP到A2A:Agent间通信协议栈的分层演进与选型之争
当AI Agent从“单机推理”走向“多机协同”,通信协议栈的分层逻辑正在被重写。MCP负责向下对接工具,A2A负责横向连接Agent,而2026年7月28日MCP的无状态化重构和A2A的150+生产部署,让这场分层演进成为业界焦点。
引言:协议为何突然变得重要?
“当你需要让一个Agent打电话给另一个Agent时,协议就不再是基础设施,而是架构本身。”
2026年7月,Agent通信协议迎来密集爆发。7月28日,MCP发布了自诞生以来最大规模的架构重构——取消协议层Session,改为每次请求携带完整处理信息,让MCP Server终于能在Kubernetes上正常扩缩容。同一周,A2A协议庆祝一周年并宣布150+组织生产部署,包括Microsoft、AWS、Salesforce、SAP和ServiceNow。中国发布GB/Z 185-2026《智能体互联互通》,29国在上海签署WAICO创始文件。
这一周被称为Agent协议层的“Kubernetes时刻”。协议从学术讨论走入生产战场,架构师必须回答:MCP和A2A是什么关系?如何分层?如何选型?
一、本质区别:两个方向,不是竞争
1.1 MCP:给Agent装上“手”
MCP(Model Context Protocol)解决的是Agent如何连接工具、数据和API的问题。它向下垂直延伸,让Agent能够调用数据库、操作文件系统、访问外部服务。
核心抽象:
- Tools:Agent可调用的函数(如执行代码、查询API)
- Resources:Agent可读取的结构化数据
- Prompts:可复用的提示词模板
2026年7月28日最大变化:移除Session,改为无状态请求。旧版MCP要求客户端与服务器维持长连接会话,导致Pod重启会丢失会话、负载均衡被迫做粘性路由、Kubernetes水平扩缩容形同虚设。新版让每个请求自带完整处理信息,任何实例都能接单,加机器就能解决并发问题。
1.2 A2A:给Agent配上“同事”
A2A(Agent-to-Agent)解决的是Agent之间如何发现、委托和协作的问题。它横向延伸,让Agent能够委派任务、协商能力、共享工件。
核心抽象:
- Agent Card:JSON格式的“身份名片”,描述Agent能力、端点、认证方式
- Task:工作单元,有完整生命周期(submitted→working→completed/failed)
- Artifact:任务完成后的产出物(文档、代码、图片等)
关键差异:A2A要求Agent之间互不信任,每个Agent不暴露内部状态或工具,只通过合约沟通。
1.3 一句话总结
| 维度 | MCP | A2A |
|---|---|---|
| 方向 | 垂直向下 | 水平横向 |
| 另一端 | 被动的工具/数据 | 自主的Agent |
| 核心抽象 | Tool, Resource, Prompt | Agent Card, Task, Artifact |
| 交互形态 | 请求-响应工具调用 | 长周期、有状态的任务委托 |
MCP给你的Agent装上手,A2A给它配上同事。
二、架构对比:学术研究的实证结论
一篇发表于arXiv 2026年7月的学术论文,对MCP和A2A在多Agent协调场景中进行了实现层面的实证对比。
2.1 核心发现
MCP可以支持Agent间协调,但协调关注点(如会话状态管理、任务生命周期处理)必须在应用层显式实现。A2A通过协议级任务和生命周期管理抽象,为有状态的多轮协调提供了更丰富的原生支持,但这伴随着更大的实现和协调复杂性。
研究结论:
- MCP方案:实现模型更轻量,协调复杂度较低,适合受约束的LLM系统
- A2A方案:原生支持有状态、多轮协调,但实现和协调复杂度显著更高
2.2 分层职责
InfoQ的一篇深度文章提出了清晰的分层架构策略:
- A2A层:作为“通信总线”,让编排器能发现并找到合适的专家Agent,无需硬编码连接
- MCP层:作为“通用功能语言”,确保Agent被委派后,无论底层实现如何,都能发现和使用必要的工具
三、代码示例:协议实战
3.1 MCP Server(Python)
以下代码使用FastMCP库构建一个暴露模型验证和部署工具的MCP服务器:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("mlops-server")
@mcp.tool()
def fetch_model(model_version: str) -> dict:
"""从模型注册表获取模型元数据"""
return {"model_id": "churn_v2.1", "accuracy": 0.94, "path": "s3://models/churn/"}
@mcp.tool()
def validate_model(validation_config: dict) -> dict:
"""验证模型性能"""
return {"status": "passed", "metrics": {"f1": 0.91, "auc": 0.96}}
@mcp.tool()
def deploy_model(deployment_config: dict) -> dict:
"""部署模型到指定环境"""
return {"status": "success", "endpoint": "https://api.example.com/v1/churn"}
if __name__ == "__main__":
mcp.run(transport="streamable-http")
关键点:函数的docstring会被模型读取用于决定是否调用该工具,这既是文档也是安全边界。
3.2 A2A Agent Card(JSON)
A2A的Agent Card是发布在/.well-known/agent-card.json的JSON文档:
{
"protocolVersion": "1.0",
"name": "deployment-validator",
"description": "验证并部署模型到生产环境",
"url": "https://agent.internal/a2a",
"skills": [
{
"id": "validate_model",
"name": "模型验证",
"description": "验证模型是否符合上线标准",
"inputModes": ["application/json"],
"outputModes": ["application/json"]
}
],
"securitySchemes": {
"oauth2": {
"type": "oauth2",
"flows": { "clientCredentials": { "tokenUrl": "https://idp/token" } }
}
},
"capabilities": { "streaming": true }
}
Agent Card让其他Agent发现该Agent提供的能力、如何调用、使用什么认证方式,从而无需硬编码就能实现动态协作。
四、选型指南:什么时候用什么?
4.1 决策框架
| 场景 | 协议 | 理由 |
|---|---|---|
| LLM需要调用数据库、API、本地工具 | MCP | 开箱即用的工具集成 |
| 多个专业Agent互相委派任务 | A2A | 原生支持任务生命周期和异步通信 |
| 复杂多Agent系统 | 两者都用 | A2A做编排层,MCP做工具层 |
4.2 建议路径
DigitalOcean的教程给出了明确建议:大多数团队应从MCP开始,只有当不同团队或供应商拥有的Agent真正需要互相委派工作时,才添加A2A。
反模式:试图用MCP做Agent间协调,或用A2A做工具集成。两者解决不同问题,不应混淆。
五、行业趋势:为什么现在是关注协议的时候?
- 无状态化开启规模化:MCP取消Session后,Agent服务终于能像普通微服务一样水平扩展
- 统一治理框架出现:AGTP(Agent Transport Protocol)作为传输层,让MCP和A2A可以在同一基础设施上运行,基础设施组件不再需要解析不同的协议载荷
- 中国标准入局:GB/Z 185-2026《智能体互联互通》出台,标志着Agent通信协议正式进入标准化轨道
六、总结:分层演进,各司其职
MCP和A2A不是对手,是同一协议栈的不同层级。MCP负责Agent与工具的对接,A2A负责Agent与Agent的协作。2026年,两者都在各自方向上完成了关键跃迁——MCP无状态化让它能规模化扩展,A2A的150+生产部署证明它已走出实验室。
选型建议:先用MCP让Agent拥有“手”,当Agent数量增长到需要互相委派工作时,再加上A2A——两条腿走路,Agent才能跑起来。
参考文献:
- Predoaia, I. et al., A Comparative Study of MCP and A2A for Inter-Agent Coordination in LLM-Based Systems, arXiv:2607.23884, 2026
- Kapoor, S. et al., 构建代理式MLOps:一种基于A2A和MCP的分层协议策略, InfoQ.cn, 2026-02
- A2A vs MCP - How These AI Agent Protocols Actually Differ, DigitalOcean, 2026-03
- MCP取消Session,也把状态这门生意让给了云厂商, IT168, 2026-08
- AI协作的四大支柱:协议详解与应用场景全解析, 阿里云开发者社区, 2025-08
- A2A vs MCP, Agent Communication Protocols for DevOps, KodeKloud, 2026-07
更多推荐

所有评论(0)