代理驱动界面的协议 (A Protocol for Agent-Driven Interfaces)¶
A2UI 使 AI 代理能够生成丰富的、交互式的用户界面,并在 Web、移动端和桌面上原生渲染——无需执行任意代码。
️状态: 早期公开预览
A2UI 目前处于 v0.8 (公开预览版)。规范和实现功能正常,但仍在不断演进。我们开放此项目是为了促进合作、收集反馈并征集贡献(例如,在客户端渲染器方面)。 请预期会有变动。
概览¶
A2UI 目前版本为 v0.8, 采用 Apache 2.0 许可, 由 Google 创建,并由 CopilotKit 和开源社区贡献, 目前在 GitHub 上积极开发中。
A2UI 解决的问题是:AI 代理如何安全地跨越信任边界发送丰富的 UI?
A2UI 不再使用纯文本响应或危险的代码执行,而是允许代理发送 声明式的组件描述,客户端使用其自己的原生小部件进行渲染。这就像让代理说一种通用的 UI 语言。
在这个仓库中,你会发现 A2UI 规范 和客户端的 渲染器 实现(例如:Angular, Flutter 等), 以及在代理和客户端之间传递 A2UI 消息的 传输层(例如:A2A 等)。
-
设计安全
声明式数据格式,而非可执行代码。代理只能使用你的目录中预先批准的组件——没有 UI 注入攻击。
-
对 LLM 友好
扁平的、流式的 JSON 结构,专为易于生成而设计。LLM 可以增量构建 UI,而无需一次性生成完美的 JSON。
-
框架无关
一个代理响应随处可用。在 Angular、Flutter、React 或原生移动应用上,使用你自己的样式化组件渲染相同的 UI。
-
渐进式渲染
随着生成的进行流式传输 UI 更新。用户可以实时看到界面的构建,而无需等待完整的响应。
5 分钟快速入门¶
工作原理¶
- 用户发送消息 给 AI 代理
- 代理生成 A2UI 消息 描述 UI(结构 + 数据)
- 消息流式传输 到客户端应用程序
- 客户端渲染 使用原生组件(Angular, Flutter, React 等)
- 用户交互 与 UI 进行交互,将操作发送回代理
- 代理响应 并更新 A2UI 消息

A2UI 实战¶
景观设计师演示¶
观看一个代理为景观设计师应用程序生成所有界面。用户上传一张照片;代理使用 Gemini 理解它并生成一个定制的景观需求表单。
自定义组件:交互式图表与地图¶
观看代理选择响应一个图表组件来回答数值摘要问题。然后代理选择一个 Google 地图组件来回答位置问题。这两者都是客户端提供的自定义组件。
A2UI Composer¶
CopilotKit 也有一个公开的 A2UI Widget Builder 供尝试。
