Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
人工智能接口7 分钟阅读·Updated 2026 年 10 月·ExodeUI 团队

A2UI 解释:代理到 UI 协议的作用(和不作用)

A2UI 是一种声明性 JSON 协议,可让 AI 代理描述客户端要渲染的接口。它是如何工作的,存在哪些渲染器,以及它不做什么。

直接总结和定义

核心要点

A2UI(Agent to UI)是由 Google 创建的开放式声明性 JSON 协议。 AI 代理发送接口的描述,客户端使用自己的本机组件呈现它,而不是从代理执行代码。它是一种跨信任边界移动 UI 结构和数据的方法,而不是动画系统、组件库或成品渲染器。 ExodeUI 不是 A2UI 渲染器,也不隶属于 Google。

A2UI是什么?

A2UI 是代理驱动接口的协议。 AI 代理不是返回文本墙或执行生成的代码,而是发送描述 UI 的 JSON 消息流:要创建哪个表面、它包含哪些组件以及填充它们的数据。客户端接收这些消息并使用它已经信任的组件呈现结果。 A2UI 由 Google 创建,并获得 Apache 2.0 许可,并得到 CopilotKit 和开源社区的贡献。截至 2026 年 10 月,当前生产规范为 v0.9.1,v1.0 为候选版本。

A2UI正在尝试解决的问题

代理擅长产生有用的答案,但不擅长将其作为界面提供。文本回复无法显示比较表、订单表或仪表板。生成任意 HTML 或 JavaScript 解决了表示问题并创建了安全问题,因为客户端现在正在运行它未编写的代码。 A2UI 采用第三条路线:代理以受约束的格式描述 UI,客户端决定如何呈现它。代理只能使用客户端认可的组件,输出是数据而不是可执行代码。

A2UI 曲面是如何构建的

该协议使用一小组消息类型。确切的架构在版本之间会发生变化,因此在实现之前请检查规范,但形状是稳定的。

  • createSurface:告诉渲染器创建一个新的表面,这是代理可以更新的界面区域
  • updateComponents:添加或更改该表面上的组件定义
  • updateDataModel:更改组件显示的数据,而不重新发送结构
  • deleteSurface:删除不再需要的表面

渲染器和传输

A2UI 与传输无关。该规范描述了消息,而不是消息的传输方式。该项目列出了 Angular、Flutter、Lit、React 和 Markdown 的渲染器实现,以及 AG-UI、A2A 和 MCP 的传输绑定,还可以使用 WebSockets、SSE 和 REST。这种灵活性就是重点:相同的代理响应可以由 Web 客户端、移动应用程序或桌面应用程序呈现,每个应用程序都使用自己的设计系统。

A2UI 不做什么

A2UI 很容易被过度阅读。它不提供可放入应用程序的组件库,并且它本身不会渲染任何内容:您需要客户端控制的渲染器和组件目录。它不决定 UI 如何移动。它不会取代 MCP(向模型公开工具和数据)或 AG-UI(承载代理与前端之间的交互事件)。而且它并没有消除工程审查的需要:生成的接口仍然必须处理加载、空和错误状态、权限和可访问性。

A2UI vs AG-UI vs MCP

这三者经常被一起提及,因为它们解决同一问题的不同层面。一个有用的简写:A2UI 描述界面,AG-UI 承载交互,MCP 提供代理工具和数据。 A2UI自己的文档将AG-UI描述为A2UI的传输绑定,并且A2UI也可以通过MCP传输。它们是互补的,而不是竞争的标准。如果您选择集成,请从您的客户端可以呈现的内容以及它已经支持的传输开始,而不是从最具动力的协议开始。

动画和交互的契合点

A2UI描述结构和数据。运动是客户关心的问题:渲染器决定表面是否立即出现、淡入或从先前状态过渡。这对于产品团队来说是个好消息,因为它将动画系统保留在客户端中,可以尊重设计系统和辅助功能设置。这也意味着 A2UI 实现不会自动设置动画。如果生成的界面需要按下按钮、状态转换或吉祥物反应,则客户端必须提供该行为。 ExodeUI可以在客户端中播放交互式动作,并且它有一个用于AI编码工具的MCP服务器,但它不是A2UI渲染器,不应该被描述为一个。

生产实施片段

交互组件实现
// Simplified shape of an A2UI message stream (schema differs by version).
{ "createSurface":    { "surfaceId": "cart" } }
{ "updateComponents": { "surfaceId": "cart", "components": [ /* ... */ ] } }
{ "updateDataModel":  { "surfaceId": "cart", "data": { /* ... */ } } }
{ "deleteSurface":    { "surfaceId": "cart" } }

要记住的关键 Principle

  • A2UI 是用于代理描述接口的 JSON 协议,由 Google 创建并在 Apache 2.0 下获得许可
  • 客户端用自己的组件进行渲染;代理不会执行任意 UI 代码
  • 它定义消息并将渲染器、传输和运动留给客户端
  • 它不是动画系统或嵌入式组件库
  • ExodeUI 不是 A2UI 渲染器,与 Google 没有任何关系

常见问题解答

相关指南和示例

交互式 UI 只需设计一次,交付同一个文件。

在 ExodeUI 中可视化地构建状态、弹簧物理和逻辑,并在 React、SwiftUI、Flutter 等中播放同一个文件。免费开始。

免费试用