核心观点:最好的界面是”没有界面”。Generative UI (生成式界面) 意味着 UI 不再是开发者预设死的静态页面,而是 AI 根据用户当下的需求,实时”画”出来的动态组件。
1. 引言:从 GUI 到 LUI 再到 GenUI
- GUI (Graphical UI):点图标,点菜单。用户适应机器。
- LUI (Language UI):ChatGPT 对话框。机器适应用户,但交互效率低(纯文字太慢)。
- GenUI (Generative UI):你在聊天时,AI 突然给你变出一个”机票预订卡片”,上面有按钮、滑块、地图。
既有自然语言的灵活性,又有图形界面的高效性。
2. 核心概念:流体界面 (Fluid Interface)
2.1 按需生成
用户说:”我想买个红色的杯子,50块以内。”
传统 APP:跳转到搜索列表页。
GenUI:直接在对话流中生成一个横向滑动的商品对比卡片,只显示红色杯子,且自动过滤了价格。
UI 是用完即走的。
💡 比喻:
- 传统 UI:像瑞士军刀。无论你切不切水果,那把刀永远折叠在那里,你需要去找它。
- GenUI:像《终结者》里的液态金属 T-1000。你需要锤子时,手变成锤子;需要钥匙时,手变成钥匙。
3. 技术解析:Vercel v0 与 A2UI
3.1 Vercel v0
v0.dev 是 GenUI 的先驱。
你输入提示词,它直接生成 React + Tailwind 代码,并实时渲染出来。
这不仅仅是原型工具,它可以作为 API 集成到应用中。AI 输出的不再是 Markdown,而是 UI Component JSON。
3.2 A2UI:Agent 驱动界面的标准协议
A2UI 是 Google 主导、CopilotKit 等社区贡献的开源协议(Apache 2.0),解决的核心问题是:AI Agent 如何跨越信任边界,安全地发送富 UI?
设计哲学:声明式而非可执行
- Agent 不发送可执行代码,只发送声明式组件描述(扁平的流式 JSON)。
- 客户端从自己的组件目录(Catalog)中选择预审批的组件进行渲染。
- 这从根本上杜绝了 UI 注入攻击。
💡 比喻:
Agent 说的是”给我一张红色椅子”(声明),而不是”执行这段代码画一张椅子”。
核心特性:
- 安全可控:只能使用你预先定义好的组件,不存在代码执行风险。
- LLM 友好:扁平 JSON + 流式生成,LLM 无需一次性输出完美结构。
- 框架无关:同一份 A2UI 消息可被 Angular、Flutter、React、原生 App 各自渲染为本地组件。
- 渐进式渲染:用户实时看到 UI 逐步构建,无需等待完整响应。
工作流程:用户输入→Agent 生成 A2UI 消息(结构 + 数据)→流式传输到客户端→客户端用原生组件渲染→用户交互→Action 回传给 Agent
3.3 Computer Use:AI 操作现有 GUI
与 A2UI 相对的另一个方向:AI 如何操作现有的 GUI?
Anthropic 的 Computer Use 能力,让 AI 能像人一样看屏幕、移鼠标、敲键盘。
这意味着 AI 可以使用任何未开放 API 的老旧软件。
Computer Use 模型通过训练,学习了 Screenshot -> Action 坐标的映射。

4. 工业实战:设计范式转移
在开发 GenUI 应用时,前端工程师的角色变了:
不再是画死页面,而是设计组件库 (Component System)。
- Atom: 按钮、输入框。
- Molecule: 搜索条、商品卡片。
- Organism: 结账表单、数据看板。
AI 的工作是组装这些原子组件。你需要告诉 AI:”当你觉得用户需要对比数据时,请调用ComparisonTable组件。”
工程师建议:
不要试图让 AI 生成所有 UI。目前的最佳实践是 Hybrid (混合模式):
框架是固定的,但内容区域(Content Area)由 AI 动态决定渲染文本、表格、图表还是表单。
5. 总结与预告
- 本章总结:
- GenUI 结合了 LUI 的灵活和 GUI 的高效。
- UI 组件化是 GenUI 的前提。
- A2UI 是 Agent 输出 UI 的安全协议:声明式、流式、跨平台。
- Computer Use 则是反向能力:让 AI 接管并操作传统软件界面。
- 下章预告:
我们聊了很多应用层的架构。但在某些垂直领域(如医疗、法律),通用大模型可能不够用。下一章《模型微调实战:LoRA 与 SFT》,我们将深入模型内部,看看如何打造你的专属模型。

