问题所在: 您不会用传真机去浏览互联网。那为什么我们还在强迫 AI Agent 只能用纯文本沟通?
A2UI (Agent-to-User Interface) 是面向 生成式 UI (Generative UI) 的开放协议。Agent 描述界面意图,宿主使用获准的原生组件完成渲染。
A2UI 不执行 Agent 生成的 HTML 或 JavaScript,而是传输声明式 JSON 蓝图。宿主将其映射到 React、Angular、Lit、Flutter 或社区 Renderer 组件。
项目状态: v0.9.1 为当前生产版,v1.0 为候选版,v0.8 为旧版。详见版本状态。许可证: Apache 2.0。
为什么纯文本不再够用
对于 Agentic (智能体) 工作流来说,纯文本交互是一个巨大的瓶颈。 想象一下预订机票的场景:
- ❌ 文本工作流:为了确认日期、时间和航司,需要进行 10 轮的来回对话。
- ✅ A2UI 工作流:Agent 直接渲染出一个交互式机票选择器,一步到位。
通过将 UI 视为“一等公民”,A2UI 将 Agent 的意图 与 视觉渲染 解耦,让 AI 应用更快、更安全,且颜值提升 10 倍。

上图:普通的“聊天框”与真正的“Agent 交互界面”的区别。
“原生优先” (Native-First) 哲学
为什么不直接让 AI 生成 HTML?因为注入原始 HTML 既不安全又丑陋。 A2UI 遵循由 Google 工程师 (Minko Gechev 团队) 设计的 原生优先 (Native-First) 哲学。
1. 是蓝图,不是代码 (Declarative)
把 A2UI 想象成建筑师的图纸,而不是建筑物本身。
AI 发送一个轻量级的 JSON 描述 ({ type: "button", label: "购买" })。您的应用使用您自己的设计系统来渲染它。
- 结果:组件词汇受到约束,视觉由宿主控制;仍必须执行校验和设计审查。
2. 为速度而生 (Streaming)
模型推理可能很慢,但 A2UI 很快。 它采用渐进式的 流式 JSON (Streaming JSON) 格式。当 AI 还在“思考”时,界面就已经开始在屏幕上绘制了,带来如魔法般流畅的用户体验。
3. 一次编写,处处渲染 (Framework Agnostic)
您的 Agent 不应该关心它是在和 Web App、iOS App 还是命令行对话。 A2UI 提供通用语言。官方维护 Renderer 覆盖 React、Angular、Lit 与 Flutter,其他平台见社区 Renderer 生态。
上图:观看 A2UI 如何飞速渲染复杂的交互式图表和地图。
架构:它是如何工作的

- 用户指令:“帮我找去东京的机票。”
- Agent 逻辑:LLM 决定需要展示一个机票选择器。
- A2UI 数据流:Agent 流式传输
createSurface、updateComponents、updateDataModel等 v0.9.1 消息。 - 客户端渲染:A2UI 库实时解析数据流。
- 原生呈现:您的 App 将 JSON 映射为您实际的
<FlightCard />React 组件。
担心安全性?阅读 AI 生成 UI 安全吗?(Trust & Security)
A2UI vs 其他方案
| 特性 | 原始 HTML/JS | Vercel AI SDK | A2UI |
|---|---|---|---|
| 执行边界 | 可能执行生成代码 | 框架相关 | 声明式数据映射到白名单 Catalog |
| 平台 | 主要是 Web | React/Next.js | 官方 Web 与 Flutter;社区覆盖更多平台 |
| 样式 | 生成或远端 CSS | 框架预设 | 宿主设计系统 |
开发者为什么爱 A2UI
本质上,它就是 “AI Agent 的前端框架”。
- Schema 校验:渲染前拒绝破损或不支持的消息。
- 高效:紧凑的数据包,节省 Token 成本。
- 灵活:只要您能用 React 写出来的组件,您的 Agent 就能用。