A2UI(Agent-to-User Interface)是谷歌推出的一款开源项目,简单说就是帮 AI agents 快速生成实用又安全的用户界面的 “
工具包”。现在的生成式 AI 擅长写文本、编
代码,但要做出丰富又能互动的界面却很费劲,尤其是跨平台、跨信任边界使用时更麻烦。
而 A2UI 就解决了这个问题 —— 它定义了一套标准化的规则和相关库,让 AI agents 不用写复杂的
前端代码,只需要输出一段描述界面意图的 JSON
数据,客户端应用就能根据自己的原生组件库(比如 Flutter、
angular、Lit 这些常用
框架),自动渲染出对应的界面。既保证了安全性,又能做出有表现力的交互效果,目前项目处于 v0.8 公开预览阶段,功能已经能用,但还在持续优化迭代。
核心功能特色
安全第一,无代码注入风险:AI 输出的不是可执行代码,而是声明式的 JSON 数据格式。客户端会提前维护一个 “可信组件目录”,里面都是经过审核的安全组件(比如按钮、输入框、卡片这些常用 UI 元素),AI 只能从这个目录里挑选组件来组合界面,完全不用担心恶意代码注入的问题,安全性拉满。
对 AI 友好,支持增量更新:界面被设计成带 ID 引用的扁平组件列表,AI 很容易生成,还能实现 “渐进式渲染”—— 比如和用户对话时,先出基础界面,再根据用户的新需求逐步补充细节、修改内容,不用每次都重新生成完整界面,用户体验更流畅。
跨框架通用,移植性强:A2UI 把界面的 “结构描述” 和 “具体实现” 分离开来。同一个 AI 输出的 JSON 数据,不管客户端是用 Web 框架、Flutter 还是
react 做的,都能映射成自己的原生控件,不用为不同平台单独适配,大大降低了跨平台开发的成本。
灵活扩展,适配各类现有组件:支持 “开放注册” 模式,开发者可以通过注册 “智能包装器”,把自己已有的 UI 组件(哪怕是老系统的内容,或者需要单独隔离的 iframe 容器),和 A2UI 的数据绑定、事件系统连起来。而且安全规则由开发者自己掌控,能设置严格的沙箱策略,适配各种定制化需求。
配套资源全,上手简单:项目提供了完整的文档、示例代码(比如餐厅查找 demo),还有初始的渲染器集合。支持和 A2A 协议、AG UI 等传输工具兼容,只要是能生成 JSON 输出的 LLM 都能使用,不用额外适配复杂的生态。
应用场景
动态数据收集:AI 能根据对话场景生成专属表单。比如你和 AI 说 “想预订一个特殊需求的酒店房间”,它会立刻生成包含日期选择器、人数输入框、特殊需求文本框的表单,不用你自己找半天输入入口。
远程子代理协作:比如一个主 AI 负责统筹任务,把 “订机票” 的活儿交给专门的旅行代理 AI,这个子 AI 不用单独做界面,直接返回 A2UI 格式的 JSON 数据,主 AI 的聊天窗口里就能直接渲染出机票查询、预订的界面,无缝衔接。
企业自适应工作流:公司里的 AI 能根据员工的查询,实时生成审批面板、数据可视化图表。比如财务问 “Q4 部门预算使用情况”,AI 直接渲染出带筛选、统计功能的仪表盘,不用再打开单独的报表工具。
智能客服交互:用户咨询问题时,AI 不用只靠文字引导,比如用户说 “查订单物流”,它会生成订单号输入框、查询按钮,用户输入后直接显示结果,比纯文字对话效率高多了。
个性化服务界面:比如电商场景中,用户说 “找适合露营的装备”,AI 生成带分类筛选、规格选择的商品界面;教育场景里,根据学生的学习进度,生成定制化的练习题表单、学习资源推荐卡片,针对性更强。
快速上手指南
准备环境:先安装好 Node.js(用于 Web 客户端)和 Python(用于 agent 示例),还要申请一个有效的 Gemini
api 密钥(示例运行需要)。
克隆项目:打开终端,输入命令 git clone https://github.com/google/A2UI.git,然后进入项目目录 cd A2UI。
设置 API 密钥:在终端执行 export GEMINI_API_KEY="你的 Gemini API 密钥",完成密钥配置。
运行后端 agent:进入示例目录 cd samples/agent/adk/restaurant_finder,然后用命令 uv run . 启动后端服务。
运行前端客户端:打开新的终端窗口,先安装并构建 Lit 渲染器 ——cd renderers/lit →
npm install → npm run build;接着进入客户端目录 cd ../../samples/client/lit/shell,执行 npm install 和 npm run dev 启动前端。
体验功能:打开
浏览器访问 http://localhost:5173,就能和 AI 互动,比如输入 “查找附近的素食餐厅”,看看它如何动态生成交互界面。
问:A2UI 与发送 html 有什么不同?
答:A2UI 发送描述 UI 组件的结构化 JSON。你的应用使用原生组件来渲染,保持你的设计系统、无障碍性和安全性。HTML/JS 需要沙箱且无法与原生样式集成。
问:智能体能通过 A2UI 执行任意代码吗?
答:不能。A2UI 是声明式数据格式。智能体只能请求预批准目录中的组件。你的渲染器决定如何呈现它们。
问:A2UI 会取代 MCP(Model Context Protocol)吗?
答:不会,它们是互补的。MCP 将智能体连接到工具和数据。A2UI 定义智能体如何描述 UI。你可以在同一系统中同时使用两者。
问:AG-UI 呢?
答:AG-UI 是实时智能体-UI 通信的传输层。A2UI 定义载荷格式。它们完美协作。
问:A2UI 可以用于生产环境吗?
答:A2UI 是 v0.8(公开预览版)。功能可用但仍在演进中。生产使用应规划规范更新。
未来规划
项目后续会重点推进这些方向:一是完善规范,朝着 v1.0 版本迭代;二是增加更多官方支持的渲染器,比如 React、Jetpack Compose、iOS 的 SwiftUI 等;三是扩展传输方式,支持 REST 等更多协议;四是适配 Genkit、LangGraph 等更多 agent 框架。项目采用 Apache 2.0 许可证,欢迎开发者参与贡献,一起完善这个生态。
仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!
链接: https://fly63.com/nav/4878