
A2A、A2UI、AG-UI——三个协议,三个名字,你能一口气说清楚它们分别是干嘛的吗?如果你犹豫了超过3秒,说明你需要这篇文章。
2026年的AI Agent生态,协议爆发了。
去年大家只需要知道一个MCP就够了——Agent怎么调用工具,MCP搞定。
但今年突然冒出来一堆"A2X"协议:A2A、A2UI、AG-UI——名字像是同一个产品经理在不同心情下起的,区别模糊到让人怀疑人生。
更要命的是,这几个协议由不同公司推出,解决不同层次的问题,但它们的名字和描述又高度相似。搞混了不仅丢面子,还可能在架构选型上犯大错。
今天这篇文章,一次性讲清楚:这四个协议分别解决什么问题、处在哪一层、怎么协同工作,以及你的项目该怎么选。
在深入技术细节之前,先用一个所有人都能理解的类比把四个协议的关系说清楚。
想象你在经营一家公司:

协议 | 类比 | 解决的问题 |
|---|---|---|
MCP | 员工使用的办公工具(Excel、打印机、数据库) | Agent怎么访问外部工具和数据 |
A2A | 部门之间的协作流程(跨部门审批、任务委派) | Agent之间怎么通信和协作 |
AG-UI | 公司跟客户的实时通话(电话、视频会议) | Agent后端怎么跟前端实时交互 |
A2UI | 发给客户的报价单模板(格式化文档、表单) | Agent怎么生成用户界面组件 |
用一句话说清楚它们的关系:MCP解决"用什么工具干活",A2A解决"找谁一起干活",AG-UI解决"干完活怎么实时汇报给用户",A2UI解决"汇报的时候展示成什么样"。
注意:它们不是竞争关系,而是协议栈的不同层次——就像TCP、HTTP、HTML不是竞争关系一样。
MCP(Model Context Protocol):Anthropic推出的开放协议,标准化Agent如何发现和调用外部工具与数据。
这是四个协议里最成熟、采纳最广的一个。 如果你只记一个,记MCP。
MCP定义了三种资源类型:
类型 | 控制方 | 说明 | 类比 |
|---|---|---|---|
Tools | 模型控制 | Agent可调用的函数 | 员工用打印机打印文件 |
Resources | 应用控制 | 只读数据源 | 员工查看公司知识库 |
Prompts | 用户控制 | 可复用的提示词模板 | 标准化的工作流程SOP |
MCP是"全票通过"级别的协议——Anthropic、OpenAI、Google、Microsoft以及所有主流AI框架都支持。 在AI Agent的世界里,MCP就像HTTP一样,不支持它你就别玩了。
A2A(Agent-to-Agent Protocol):Google推出的开放协议,标准化不同框架、不同平台上的Agent之间如何通信和协作。
如果MCP解决的是"人和工具"的关系,A2A解决的是"人和人"的关系——只不过这里的"人"是Agent。
没有A2A的世界:
你的Agent(用LangGraph写的)
↓ 想调用同事的Agent(用CrewAI写的)
↓ 但两个框架的API完全不同
↓ 你得写一堆适配代码
↓ 换一个框架就得重写有了A2A的世界:
你的Agent → A2A协议 → 同事的Agent
↑
不管用什么框架,通信格式统一用人话说:A2A就是AI Agent世界的"普通话"——不管你是用LangGraph、CrewAI还是AutoGen开发的Agent,大家都说同一种语言。
Agent Card(名片机制)
每个Agent在 /.well-known/agent.json 路径发布一张"名片",声明自己是谁、能做什么、怎么认证:
{
"name": "OrderQueryAgent",
"version": "1.0",
"skills": ["查询订单", "修改地址"],
"auth": "OAuth2",
"endpoint": "https://api.example.com/agent"
}用人话说:这就是Agent的LinkedIn资料——别人看一眼就知道你能干什么、怎么联系你。
Task Lifecycle(任务生命周期)
A2A定义了完整的任务状态机:
submitted → working → completed
↘ input-required(需要更多信息)
↘ failed(失败)
↘ canceled(取消)通信方式
方式 | 协议 | 适用场景 |
|---|---|---|
同步请求 | JSON-RPC 2.0 over HTTP | 简单快速的任务 |
流式响应 | SSE(Server-Sent Events) | 长时间运行的任务 |
异步回调 | Webhooks | 任务完成后通知 |
A2A有一个很重要的设计哲学:Agent之间只暴露能力,不暴露内部实现。
你只需要知道"订单Agent能查订单",不需要知道它内部是用LangGraph还是CrewAI写的、用的是GPT还是Claude、数据库是MySQL还是MongoDB。
用人话说:你叫外卖,只需要知道餐厅能做宫保鸡丁,不需要知道厨师用什么锅、什么油。
AG-UI(Agent-User Interaction Protocol):CopilotKit推出的开放协议,标准化Agent后端到前端的实时事件流。
AG-UI解决的是"最后一公里"问题——Agent在后端算完了,怎么实时、结构化地传给前端展示?
没有AG-UI的时候,Agent到前端的通信没有标准:
AG-UI做的事情:定义一套标准的事件类型,所有Agent框架都按这个格式推送,前端只需要适配一次。
AG-UI定义了16种事件,分为5大类:
状态管理采用了快照+增量的模式——跟React的Virtual DOM Diff思路类似:
为什么这么设计? 因为Agent执行过程中状态变化很频繁(比如代码编辑器里的光标移动),每次都发全量数据太浪费带宽。只发增量,效率提升10倍以上。
AG-UI基于SSE(Server-Sent Events)——不是WebSocket,不是gRPC,就是最朴素的SSE。
为什么选SSE而不是WebSocket? 因为SSE基于标准HTTP,不需要额外的协议升级,穿透力强(防火墙友好),而且内置断线重连。对于Agent到前端的单向事件流来说,SSE是最合适的选择。
A2UI(Agent-to-UI Protocol):Google推出的声明式UI协议,让Agent能跨Web、移动、桌面生成交互式用户界面。
A2UI和AG-UI名字只差一个字母,但做的事情完全不同。
这是最容易搞混的两个协议,所以我要重点讲清楚。
AG-UI是"管道"——负责传输;A2UI是"包裹"——负责内容。
维度 | AG-UI | A2UI |
|---|---|---|
本质 | 运行时传输协议 | 声明式UI规范 |
解决的问题 | 事件怎么从后端传到前端 | 传过去的UI长什么样 |
类比 | 快递公司(顺丰) | 包裹里的货物(商品) |
数据流向 | 后端 → 前端(事件流) | Agent → 宿主应用(组件蓝图) |
协议类型 | 事件驱动(SSE) | 声明式JSON |
创建者 | CopilotKit | |
样式控制 | 不管样式 | 宿主应用控制样式 |
用人话说:AG-UI定义的是"怎么把东西送到你面前",A2UI定义的是"送到你面前的东西长什么样"。
它们是互补关系——A2UI的UI蓝图,可以通过AG-UI的事件流传输到前端。 Oracle、Google和CopilotKit已经发布了联合集成方案。
传统做法:开发者为Agent预先构建UI界面
A2UI做法:Agent自己声明需要什么UI组件,宿主应用按自己的风格渲染
Agent返回: {
"type": "form",
"fields": [
{ "name": "orderId", "label": "订单号", "type": "text" },
{ "name": "action", "label": "操作", "type": "select",
"options": ["查询", "退款", "修改地址"] }
]
}
↓
Web端:渲染为React Material UI风格的表单
移动端:渲染为Flutter原生表单
桌面端:渲染为Electron桌面组件关键词:声明式 + 宿主控制样式。 Agent只说"我需要一个表单,有两个字段",不管最终长什么样——长什么样由你的应用决定。
顺便说一下另一个容易搞混的概念——MCP Apps。
维度 | A2UI | MCP Apps |
|---|---|---|
UI控制权 | 宿主应用控制 | MCP Server控制 |
渲染方式 | 原生组件 | iframe沙箱 |
跨平台 | Web/移动/桌面 | 仅Web |
适用场景 | 动态UI,融入应用风格 | 第三方完整体验 |
用人话说:A2UI是"你给我菜谱,我用自家厨房做";MCP Apps是"你直接给我做好的外卖,我只管吃"。

┌─────────────────────────────────┐
│ A2UI(UI层) │ Agent生成什么样的界面
├─────────────────────────────────┤
│ AG-UI(交互层) │ Agent和用户怎么实时通信
├─────────────────────────────────┤
│ A2A(协作层) │ Agent之间怎么发现和协作
├─────────────────────────────────┤
│ MCP(工具层) │ Agent怎么访问工具和数据
└─────────────────────────────────┘类比网络协议栈:
Agent协议栈 | 网络协议栈 | 职责 |
|---|---|---|
A2UI | HTML/CSS | 定义内容和样式 |
AG-UI | HTTP | 传输协议 |
A2A | TCP | 可靠通信 |
MCP | 网卡驱动 | 底层接口 |
用户在前端点击"查询订单"
↓ AG-UI(RUN_STARTED事件)
前端→Agent后端
↓ MCP(调用订单数据库工具)
Agent→数据库
↓ A2A(委派给物流Agent查快递)
订单Agent→物流Agent
↓ MCP(物流Agent调用快递API)
物流Agent→快递API
↓ A2A(返回结果给订单Agent)
物流Agent→订单Agent
↓ A2UI(生成订单详情+物流时间线的UI蓝图)
Agent生成UI声明
↓ AG-UI(STATE_DELTA + TEXT_MESSAGE流式推送)
Agent后端→前端
↓ 前端渲染
用户看到订单状态和物流时间线四个协议各司其职,一个不多,一个不少。
你的Agent需要调用外部工具/数据吗?
└── Yes → 上MCP ✅(必选)
你需要多个Agent协作吗?
└── Yes → 上A2A ✅
└── No → 不需要A2A
你的Agent有用户界面吗?
└── Yes → 上AG-UI ✅
└── 需要Agent动态生成UI吗?
└── Yes → 加上A2UI ✅
└── No → AG-UI就够了
你的Agent纯后台运行,没有UI?
└── MCP + A2A就够了项目类型 | 推荐协议 | 说明 |
|---|---|---|
单Agent + CLI | MCP | 只需要工具调用 |
单Agent + Web UI | MCP + AG-UI | 加上实时交互 |
多Agent后台系统 | MCP + A2A | Agent间协作 |
多Agent + 用户交互 | MCP + A2A + AG-UI | 完整三层 |
动态UI生成应用 | MCP + A2A + AG-UI + A2UI | 四层全上 |
不要一开始就四个协议全上。 推荐的采纳顺序:
第一步:MCP → 90%的Agent项目都需要,先让Agent能调用工具
第二步:AG-UI → 当你要给Agent做前端时加入,标准化事件流
第三步:A2A → 当你有多个Agent需要跨框架协作时加入
第四步:A2UI → 当你需要Agent动态生成跨平台UI时加入
错。 MCP管的是Agent和工具之间的关系(纵向),A2A管的是Agent和Agent之间的关系(横向)。它们处在不同维度,完全正交。
一个Agent可以同时:通过MCP调用数据库工具,通过A2A委派任务给另一个Agent。
错。 AG-UI是传输管道,A2UI是内容格式。A2UI生成的UI蓝图,通过AG-UI的事件流送达前端。它们是管道和货物的关系。
CopilotKit(AG-UI的创建者)甚至参与了A2UI的设计,AG-UI对A2UI有Day-Zero兼容性。
看场景。 如果你的系统只有一个Agent调用多个工具——MCP够了。但如果你有多个Agent需要互相发现、互相委派任务——你需要A2A。
判断标准:你的Agent需要"找别人帮忙"吗?需要就上A2A。
等不起。 MCP已经是事实标准,所有主流厂商都支持。A2A由Google推出、50+合作伙伴支持。AG-UI被Microsoft、Oracle等采纳。它们不是会被淘汰的实验品——它们就是正在形成的标准。
等等党这次要输。
维度 | MCP | A2A | AG-UI | A2UI |
|---|---|---|---|---|
创建者 | Anthropic | CopilotKit | ||
解决的问题 | Agent↔工具 | Agent↔Agent | Agent↔前端 | Agent→UI组件 |
协议层次 | 工具层 | 协作层 | 交互层 | UI层 |
通信方式 | JSON-RPC / stdio | JSON-RPC / SSE / Webhook | SSE事件流 | 声明式JSON |
类比 | 办公工具 | 跨部门协作 | 客户电话 | 报价单模板 |
网络类比 | 网卡驱动 | TCP | HTTP | HTML |
成熟度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
是否必选 | 几乎必选 | 多Agent必选 | 有前端必选 | 动态UI必选 |
主要支持者 | 全部主流厂商 | Google+50家 | CopilotKit+MS+Oracle | Google+CopilotKit |
2026年的AI Agent协议栈,本质上是在重演20年前Web协议栈的标准化过程。
20年前,Web世界也经历过类似的混乱期——各种通信协议、数据格式、UI标准百花齐放,最终收敛为TCP/HTTP/HTML/CSS/JavaScript这套协议栈。
现在的MCP/A2A/AG-UI/A2UI,就是AI Agent世界的TCP/HTTP/HTML。方向已经很清晰了,只是各层的具体标准还在演进。
对开发者来说,最实用的建议是:从MCP开始,按需叠加。 不要被四个协议的名字吓到——它们各管各的,井水不犯河水。搞清楚每一层解决什么问题,选型就变成了一道简单的"对号入座"题。
一句话总结:MCP是必修课,A2A是多Agent的入场券,AG-UI是做前端的标配,A2UI是锦上添花。四个协议不是选择题,是叠加题——你的系统有多复杂,就叠多少层。
我是RiemannChow,一个在架构领域摸爬滚打多年的技术人。如果这篇文章对你有帮助,欢迎点赞、在看、转发三连。关注「老周聊架构」,每周深度解读AI和架构的最新趋势。