a2ui-project/a2ui
AI 工程一套开放规范与渲染器库,让 Agent 用安全、可增量更新的 JSON 描述 UI,而非执行代码。
A2UI 面向需要让 Agent 在已有应用中展示交互界面的团队,例如动态表单、仪表盘和审批面板。Agent 不生成可执行代码,而是输出一份声明式 JSON,描述组件意图和数据,由客户端用自己受信任的组件渲染。项目处于早期公开预览:v0.9.1 是当前生产版本,v1.0 为发布候选,v0.8 已属遗留版本。
工作机制
生成与执行是分离的。LLM 输出一份以 ID 引用组件的扁平 A2UI 响应;A2A 或 AG-UI 等传输层把消息送到客户端;客户端渲染器对照预先批准的组件目录解析它,再把抽象类型映射为原生控件。作者给出的安全模型是:Agent 只能请求应用目录中的组件,因此生成的 UI 被当作数据处理,而不是被执行。格式与框架无关,同一份载荷可以渲染在不同客户端上;增量更新则支持对话过程中的渐进渲染。
三种上手路径
没有唯一必需的整套技术栈,不同路径的前置条件也不同。餐厅查找快速开始会在本地运行 Gemini 驱动的 ADK Agent 和 Lit 客户端,需要 Node.js 18+ 且启用 Corepack、uv,以及 Gemini API key,最终在 5173 端口打开本地客户端(快速开始、完整说明)。AG-UI 路径先用 create-ag-ui-app 生成应用骨架,再开启 A2UI 渲染,适合已有 Agent 框架或运行环境的团队(AG-UI 指南)。浏览器里的 Composer 和 Theater 无需安装:Composer 通过可视化编辑生成 A2UI JSON,Theater 则演示 Lit、React、Angular 下的流式场景(Composer、Theater)。
渲染器与当前缺口
官方 TypeScript 渲染器覆盖 Lit、Angular 和 React,另有共享的 web core 与 markdown 渲染器(包列表)。Flutter 可通过底层使用 A2UI 的 GenUI SDK 支持,完整客户端清单见文档(GenUI SDK、渲染器参考)。SwiftUI 支持已存在但尚未发布。路线图包括稳定 v1.0,以及补齐 React、Jetpack Compose、iOS SwiftUI 渲染器和更多传输层、Agent 框架。
需要权衡的限制
作者明确提醒,规范与实现虽可使用,但仍在演进,应有变更预期。宿主应用目前必须基于受支持的框架构建,即 Web 或 Flutter。安全责任最终在开发者:组件目录的可信度取决于你注册的组件,严格策略和 iframe 沙箱等定制封装需要由开发者自己实现。部分包目前只能从源码使用,包括 TypeScript Agent SDK、Flutter 渲染器和 Swift 库。
HotRepo 点评
2026-10-31 的日榜观测显示 16,905 星,当日增加 14 星;单次快照不足以判断趋势,决策时应以设计契合度和预览期状态为主要依据。
本文由 AI 根据项目 README 生成,更新于 2026年10月31日,以项目官方文档为准。