Language简体中文
客观评价
ExodeUI vs A2UI
ExodeUI 与 A2UI:一个是交互式 UI 的设计工具和运行时,另一个是开放的 JSON 协议,让 AI 代理描述接口。它们有何不同以及何时使用它们。
已更新 2026 年 10 月
简短回答
根本的架构差异
A2UI 是 Google 创建的开放式声明性 JSON 协议:AI 代理描述接口,客户端使用自己的组件呈现该接口。 ExodeUI 是交互式 UI 的设计工具和运行时:您构建组件,包括运动、状态机和输入,并在应用程序中播放相同的 .exode 文件。它们在不同的层上运行,因此 A2UI 不是 ExodeUI 的直接替代品,并且 ExodeUI 不是 A2UI 渲染器。 ExodeUI 不隶属于 Google。
并排比较
特性和功能细分
| 方面 | ExodeUI | A2UI | 优势 |
|---|---|---|---|
| 类别 | 交互式 UI 的设计工具和运行时 | 代理描述的 UI 的声明性协议 | 领带 |
| 谁是作者 | 编辑器中的设计师、开发人员或 AI 代理 | AI 代理发出 JSON 消息 | 领带 |
| 你生产什么 | 由运行时播放的打开的 .exode 文件 | 由客户端呈现的消息流 | 领带 |
| 成分 | 在工具中构建和设计 | 客户提供目录和渲染器 | 领带 |
| 运动 | 文件中的时间线、状态机和弹簧物理 | 留给客户端渲染器 | ExodeUI |
| 逻辑和输入 | 视觉逻辑、变量、输入和事件 | 不是协议的一部分 | ExodeUI |
| 跨平台 | React、Vue、Svelte、Angular、Solid、React Native、SwiftUI、Flutter | 为 Angular、Flutter、Lit、React 和 Markdown 列出的渲染器 | 领带 |
| 人工智能整合 | MCP AI编码工具服务器 | 专为代理输出和流式传输而设计 | A2UI |
| 安全模型 | 您创作并查看运行时播放的文件 | 声明性数据,无代码执行 | A2UI |
| 定价 | 免费社区;专业 29 美元/月 | Apache 2.0下开放规范;没有许可费 | 领带 |
用例 A2UI
何时选择 A2UI
- 人工智能代理必须在运行时跨信任边界描述接口,并且客户端使用自己的设计系统呈现它们。
- 您已经拥有客户端控制的渲染器和批准的组件目录。
- 您需要一个用于传输 UI 结构和数据的协议,而不是创作工具。
- 您需要一个开放的规范而不是一个产品,并且您的团队可以围绕它构建渲染器。
用例 ExodeUI
何时选择 ExodeUI
- 您需要设计和发布交互式运动,而不仅仅是描述结构。
- 该组件需要应用程序可以驱动的真实状态、物理、输入和事件。
- 您需要一个可以在 Web、移动和桌面框架上播放的文件。
- 您希望设计师和 AI 编码工具编辑同一个组件文件。
Google A2UI 协议架构与 ExodeUI .exode 组件架构
协议与组件架构// 1. Google A2UI Declarative Protocol (agent streams UI structure & data over JSON):
{
"type": "create_surface",
"surface_id": "cart_summary",
"components": [
{ "id": "checkout_btn", "type": "button", "label": "Proceed to Pay", "action": "checkout" }
]
}
// 2. ExodeUI Component Schema (defines layout, spring physics & state machines):
import { ExodeUICanvas } from 'exodeui';
// An A2UI client renderer embeds ExodeUI to handle living physics & state machines:
export function A2UIAnimatedSurface({ a2uiAction }) {
return (
<ExodeUICanvas
src="/components/checkout_button.bexode"
inputs={{ processing: a2uiAction === 'submitting' }}
onTrigger={(e) => console.log('ExodeUI event:', e)}
/>
);
}A2UI定义了代理到客户端的JSON消息协议; ExodeUI 定义了带有 spring 物理和运行时包的可交付交互组件。
直接回答