Google 的 6 大 AI Agent 协议:互操作性是未来
TL;DR
Google 发布《AI Agent Protocols 开发者指南》,提出 6 大开放标准(MCP、A2A、UCP、AP2、A2UI、AG-UI),旨在解决 AI Agent 生态的”碎片化集成”问题。核心主张:停止为每个工具编写自定义集成胶水代码,拥抱可互操作的 Agent 未来。本文深度解析这 6 大协议及其关系。
📋 本文结构
- 为什么需要 Agent 协议
- 6 大协议全景图
- 协议详解:MCP
- 协议详解:A2A
- 协议详解:UCP、AP2、A2UI、AG-UI
- 协议之间的关系
- Google ADK 的实践
- 对比:OpenAI vs Google 生态
- 结论:协议战争还是协议和平
为什么需要 Agent 协议
当前痛点:集成地狱
现状:
Agent A → 自定义集成 → 工具 X
Agent A → 自定义集成 → 工具 Y
Agent A → 自定义集成 → 工具 Z
Agent B → 自定义集成 → 工具 X
Agent B → 自定义集成 → 工具 Y
...
问题:
- N 个 Agent × M 个工具 = N×M 个集成
- 每个集成都是定制开发
- 维护成本爆炸
协议的价值
有了标准协议后:
Agent A ──┐
Agent B ──┼──→ 标准协议 ──→ 工具 X
Agent C ──┤ ├────→ 工具 Y
... └─────────┴────→ 工具 Z
好处:
- 一次实现,到处使用
- 降低集成成本
- 促进生态繁荣
6 大协议全景图
协议总览
| 协议 | 全称 | 作用层级 | 核心功能 |
|---|---|---|---|
| MCP | Model Context Protocol | 工具/数据层 | Agent 与工具/数据的通信 |
| A2A | Agent-to-Agent Protocol | Agent 间层 | Agent 之间的协作通信 |
| UCP | Universal Control Protocol | 控制层 | 跨平台 Agent 控制 |
| AP2 | Agent Protocol 2.0 | 传输层 | 高效数据传输 |
| A2UI | Agent-to-User Interface | 用户界面层 | Agent 与界面交互 |
| AG-UI | Agent Graphical User Interface | 图形界面层 | Agent 图形化呈现 |
分层架构
┌─────────────────────────────────────────┐
│ 表现层:AG-UI / A2UI │
│ 图形界面、用户交互 │
├─────────────────────────────────────────┤
│ 应用层:A2A │
│ Agent 之间的协作 │
├─────────────────────────────────────────┤
│ 工具层:MCP │
│ Agent 与工具/数据的交互 │
├─────────────────────────────────────────┤
│ 控制层:UCP │
│ 跨平台控制与管理 │
├─────────────────────────────────────────┤
│ 传输层:AP2 │
│ 高效数据传输 │
└─────────────────────────────────────────┘
协议详解:MCP
Model Context Protocol
定位:Agent 与外部世界(工具、数据、服务)的通信协议。
核心概念:
# MCP 客户端示例
from mcp import Client
client = Client()
# 发现可用工具
tools = await client.discover_tools()
# [
# {"name": "calculator", "description": "计算数学表达式"},
# {"name": "weather_api", "description": "获取天气数据"}
# ]
# 调用工具
result = await client.call_tool(
"calculator",
{"expression": "2 + 2"}
)
# {"result": 4}
关键特性:
| 特性 | 说明 |
|---|---|
| 工具发现 | Agent 自动发现可用工具 |
| 类型安全 | 强类型的输入/输出 |
| 流式支持 | 支持实时数据流 |
| 认证集成 | 内置 OAuth 等认证 |
与 Function Calling 的区别:
| 维度 | Function Calling | MCP |
|---|---|---|
| 范围 | 单模型 | 跨模型、跨平台 |
| 发现 | 预定义 | 动态发现 |
| 生态 | 封闭 | 开放标准 |
| 复用 | 低 | 高 |
协议详解:A2A
Agent-to-Agent Protocol
定位:Agent 之间的协作通信协议。
核心场景:
用户:"计划一次商务旅行"
↓
主 Agent(协调者)
├── A2A → 航班 Agent(查询航班)
├── A2A → 酒店 Agent(预订酒店)
├── A2A → 日历 Agent(检查日程)
└── A2A → 报销 Agent(生成报告)
↓
整合结果返回用户
协议要素:
# A2A 消息格式
{
"message_id": "uuid",
"sender": "agent://flight-booker",
"receiver": "agent://travel-coordinator",
"intent": "query_flight",
"payload": {
"origin": "NYC",
"destination": "SFO",
"date": "2026-04-01"
},
"callback": "agent://flight-booker/callback"
}
关键特性:
| 特性 | 说明 |
|---|---|
| 意图识别 | 标准化的意图表达 |
| 能力协商 | Agent 之间协商各自能力 |
| 任务委托 | 主 Agent 可以委托子任务 |
| 结果聚合 | 多 Agent 结果整合 |
协议详解:UCP、AP2、A2UI、AG-UI
UCP:Universal Control Protocol
定位:跨平台 Agent 控制协议。
解决的问题:
场景:在手机上启动 Agent 任务
在电脑上继续和监控
在智能音箱上获取更新
问题:不同平台如何协调同一个 Agent?
UCP 解决方案:统一的控制接口
核心功能:
- 任务状态同步
- 跨设备切换
- 统一的权限管理
AP2:Agent Protocol 2.0
定位:高效数据传输协议。
特性:
- 二进制传输(vs JSON 文本)
- 压缩支持
- 流式传输
- 低延迟
适用场景:
- 大量数据传输
- 实时 Agent 通信
- 移动网络环境
A2UI:Agent-to-User Interface
定位:Agent 与用户界面的交互协议。
解决的问题:
Agent 如何:
- 在网页上填充表单?
- 在 App 中点击按钮?
- 在 CLI 中执行命令?
A2UI:统一的操作抽象
核心概念:
# A2UI 操作示例
{
"action": "fill_form",
"target": "#booking-form",
"data": {
"name": "John Doe",
"date": "2026-04-01"
}
}
AG-UI:Agent Graphical User Interface
定位:Agent 图形化呈现协议。
解决的问题:Agent 如何向用户展示复杂信息。
支持的 UI 元素:
- 卡片(Cards)
- 图表(Charts)
- 表格(Tables)
- 交互式表单(Forms)
示例:
{
"type": "card",
"title": "航班查询结果",
"content": [
{"label": "航班号", "value": "UA1234"},
{"label": "时间", "value": "10:00 AM"},
{"label": "价格", "value": "$299"}
],
"actions": [
{"label": "预订", "action": "book"},
{"label": "查看详情", "action": "details"}
]
}
协议之间的关系
完整的数据流
用户通过 AG-UI 看到界面
↓
用户操作通过 A2UI 传递给 Agent
↓
Agent 决定需要什么工具
↓
通过 MCP 调用外部工具
↓
如果需要其他 Agent 协作
↓
通过 A2A 通信
↓
结果通过 AG-UI 展示给用户
全程:UCP 保证跨设备同步
AP2 保证高效传输
协议栈类比
| 网络协议 | Agent 协议 | 作用 |
|---|---|---|
| HTTP | MCP | 基础通信 |
| REST API | A2A | 协作接口 |
| WebSocket | AP2 | 实时传输 |
| CSS | AG-UI | 界面呈现 |
| JavaScript | A2UI | 交互逻辑 |
Google ADK 的实践
Agent Development Kit
Google 使用 ADK 构建了一个 B2B Agent,演示了这 6 大协议的实际应用。
架构示例:
# Google ADK 示例
from google.adk import Agent
from google.adk.protocols import MCP, A2A
# 创建主 Agent
agent = Agent(
name="business_travel_agent",
protocols=[MCP, A2A, A2UI]
)
# 注册工具(通过 MCP)
@agent.tool
async def search_flights(origin, destination, date):
"""搜索航班"""
pass
# 注册子 Agent(通过 A2A)
@agent.sub_agent
async def hotel_booking_agent(requirements):
"""酒店预订 Agent"""
pass
# 定义 UI(通过 A2UI/AG-UI)
@agent.ui
def render_results(results):
"""渲染结果界面"""
return {
"type": "card_list",
"items": results
}
协议实现状态
| 协议 | 状态 | 文档 |
|---|---|---|
| MCP | ✅ 已发布 | modelcontextprotocol.io |
| A2A | ✅ 已发布 | a2a-protocol.org |
| UCP | 🔄 开发中 | - |
| AP2 | 🔄 开发中 | - |
| A2UI | 🔄 开发中 | - |
| AG-UI | 🔄 开发中 | - |
对比:OpenAI vs Google 生态
战略差异
| 维度 | OpenAI | |
|---|---|---|
| 协议策略 | 主导自有标准 | 拥抱开放标准 |
| 生态开放性 | 相对封闭 | 更加开放 |
| 标准化 | Function Calling | MCP、A2A 等 |
| 跨平台 | 有限 | 重点支持 |
技术对比
| 功能 | OpenAI | Google (ADK) |
|---|---|---|
| 工具调用 | Function Calling | MCP |
| 多 Agent | 不支持原生 | A2A |
| UI 集成 | 无标准 | A2UI/AG-UI |
| 跨平台 | 有限 | UCP |
竞争还是合作?
可能的走向:
- 协议战争:各自推自己的标准
- 协议融合:形成统一标准
- 协议分层:不同层级不同赢家
当前趋势:
- MCP 获得广泛支持(包括 Anthropic)
- Google 推动更多开放标准
- OpenAI 相对谨慎
结论:协议战争还是协议和平
历史教训
VHS vs Betamax:技术标准不总是最好的赢,但通常是最开放的赢。
HTTP/REST:开放标准造就了互联网。
关键因素
协议成功的要素:
- 采用率:有多少开发者使用
- 生态支持:工具、库、文档
- 企业背书:大厂支持
- 技术优劣:是否解决真问题
给开发者的建议
现在应该做什么:
- 关注 MCP:已成为事实标准
- 尝试 A2A:多 Agent 是未来
- 保持开放:不要锁定到单一生态
- 参与社区:贡献反馈,影响标准
未来展望
短期(1-2 年):
- MCP 进一步普及
- A2A 开始落地
- 其他协议陆续发布
中期(3-5 年):
- 协议栈成熟
- 跨平台 Agent 成为可能
- 生态繁荣
长期(5+ 年):
- Agent 协议成为基础设施
- 类似 HTTP 的地位
- 开发者无需关心底层集成
参考与延伸阅读
- Developer’s Guide to AI Agent Protocols - Google 官方指南
- Model Context Protocol - MCP 官网
- A2A Protocol - A2A 官网
- Google ADK - Agent Development Kit
本文基于 Google 发布的《Developer’s Guide to AI Agent Protocols》深度解读。
💬 评论
💡 使用 GitHub 账号登录 即可参与讨论