我们这里所说的 Generative UI(GenUI,生成式用户界面)是指一种新型的AI 与用户的交互方式,用户在与 AI 交互时,AI 不仅生成文本内容,还可以以更丰富的 UI(用户界面)的形式呈现结果,并允许用户直接操作这些界面。UI 包括卡片、表单、表格、图表、地图、时间线、模拟器或小型应用等这种非文本形式的界面。
请注意,这里关注的不是 AI 生成那些 UI 代码的能力本身(Vibe Coding),而是一种用户与 AI 交互的方式逻辑。当然,代码生成能力是实现 GenUI 的基础,但 GenUI 的核心是在运行时由模型或 agent 决定界面呈现,而不是提前写好。
文字聊天和 Generative UI 相比,在用户使用体验上有很大区别:
- 地最明显的缺点是不够简洁、直观,用户需要阅读大量文字才能理解结果,降低了其使用效率和体验;
- 如果 GenUI 生成的界面可以直接操作,则会减少用户的操作链条:用户就不需要再把结果记在脑子里,然后跳转到别的 App 寻找对应的功能或按钮。
但文字聊天也有其优势,比如在需要详细解释或复杂讨论时,文字可以提供更丰富的上下文和细节,更适合表达开放问题。
因为用户的需求和意图往往是非常多样且个性化的,而传统的 UI 设计往往是固定的,无法满足所有用户的需求。例如,用户在使用传统的 App 时,可能会发现自己不需要所有的功能,或者需要的功能没有方便的放在一起,而 Generative UI 可以根据用户的当前意图和上下文,动态生成最适合的界面,从而提高用户的使用效率和体验。
此外,传统的 UI 设计迭代周期长,需要公司投入资源和人力迭代、验证、测试、上线等,为了满足用户的个性化需求,频繁地迭代 UI 是不现实的。
动态 UI 是指界面在运行时可以根据用户的操作、数据变化或其他条件进行更新和调整,而 Generative UI 是指界面在运行时由模型或 agent 根据用户的意图和上下文从头生成。动态 UI 本质上是预定义的界面,只是留了一些参数可以在运行时进行调整。
两者从结果上看都是 AI 生成了 UI 代码,但发生阶段和最终用户不同:
- 设计时/开发时 UI 生成:开发者用自然语言或设计稿生成代码,再审查、修改、测试并部署;
- 运行时 Generative UI:终端用户提出任务后,系统当场决定并呈现界面,界面可能随对话和 agent 状态继续变化。
设计时生成有正常的软件工程审核链路,更接近 AI 辅助编程;运行时生成直接面对用户,必须额外解决低延迟、输出校验、状态同步、权限控制、沙箱隔离、可访问性和失败回退等问题。