从千问灵光 App 看生成式 UI 技术的发展
引言
2025 年 11 月 18 日,蚂蚁集团全模态通用 AI 助手 ------ 灵光 App 发布,上线两周用户已创建 330 万个闪应用。这一现象级数据的背后,不仅是开发效率的提升,更是人机交互范式正在从图形用户界面(GUI)向生成式用户界面(GenUI)的跨越。在新的范式下,应用不再是预先固化的静态资产,而是根据用户自然语言意图实时生成。闪应用所展现的数十秒构建能力,是生成式 UI 将界面从预先设计转变为即时生成的体现,它让应用 "按需生成、用后即弃"。本文将深入剖析生成式 UI 的基本概念、技术特征与渲染原理,并结合我们 OpenTiny 产品的落地实践,探索生成式 UI 在推动企业应用智能化的巨大潜力。
从阿里推出千问 App 和灵光 App 谈起
1.1 千问 App:覆盖全场景的 AI 智能中枢
2025 年 11 月 17 日,千问 App 正式发布,这是阿里大模型战略从技术后台走向市场前台的关键一步。这款定位为 "会聊天、能办事" 的个人 AI 助手,不仅仅是一个停留在 "帮用户思考" 1.0 时代的聊天工具,它直接迈入了替用户行动的 2.0 阶段。阿里表示,千问 App 将快速迭代,通过意图驱动的方式深度整合地图、外卖、订票、办公等生活场景。这意味着用户不再需要在大脑中构建复杂的应用菜单索引,只需表达目标,千问 App 即可直接完成任务闭环。
AI 助手注定将取代传统 App 甚至操作系统,成为未来数字世界的 "超级入口"。这一形态的护城河在于 "认知适应性",它能记录用户的习惯偏好,随着交互加深而变得更加默契,形成极强的粘性。 在这一 "兵家必争之地",阿里拥有得天独厚的先发优势:其背后庞大的生态体系(电商、导航、商旅、办公)构成丰富的 "原子化能力池"。一旦这些服务被深度打通,千问 App 将不再是一个简单的应用,而是一个聚合阿里全生态的 "智能编排器",真正形成覆盖生活全场景的超级入口。
千问 App 如何无缝连接这庞大的生态?答案是生成式 UI 技术。在传统的交互模式下,用户需在不同 App 间频繁跳转。而在千问 App 的对话中,系统不会强迫用户跳出当前语境,而是利用生成式 UI 技术,根据用户的需求,实时构建并渲染出一个 UI 界面。 例如,当用户提出购物需求时,不是跳转到淘宝,而是在对话中直接生成一个流式渲染的、可交互的商品卡片。这种 "用后即弃" 的界面消除了体验断点,将服务以原子化能力的形态直接呈现在用户面前。这正是生成式 UI 技术的核心价值 ------ 让应用界面 "隐形",让服务与意图实现 "零距离对接",从而提升用户在千问 App 内的停留时长与活跃度。
1.2 灵光 App:填补长尾场景的即时生成引擎
2025 年 11 月 18 日,就在千问 App 发布次日,阿里系蚂蚁集团推出了全模态通用 AI 助手 ------ 灵光 App。其突破性在于将生成式 UI 的能力引入移动端,实现自然语言 30 秒生成小程序。灵光 App 整合了灵光对话、灵光闪应用、灵光开眼三大功能,不仅支持传统的图文音视输出,还具备生成 3D 动画、动态地图及全功能小程序的全模态能力。
传统 AI 助手往往受限于 "文本堆砌" 或 "静态模板",而灵光对话基于生成式 UI 技术,重构了信息呈现方式。 当用户询问 "怎么做麻婆豆腐" 时,App 并非简单罗列步骤,而是实时构建一个包含色泽红亮的菜品图、图文并茂的教程。并且所有内容,无论是财报数据的交互式图表、天宫空间站的 3D 模型,还是量子纠缠的生成式动画,均由大模型在 "运行态" 即时生成,无需调用 "预设模板"。这种 "让复杂变简单" 的设计,消除了信息获取的认知障碍,体现了生成式 UI 技术将数据转化为直观体验的价值。
仅需一句指令 30 秒内生成实用工具,灵光闪应用是 "即时生成" 理念的完美诠释。 例如用户输入 "溏心蛋要煮多久",App 立刻生成一个包含鸡蛋大小选择、熟度参数调节的溏心蛋时间计算器。这些闪应用是为了满足 "无限长尾需求" 而实时构建的完整应用,也具备按需生成、用后即弃的特性。它跳出传统应用开发的 "覆盖率陷阱",让每一个微小的、个性化的需求都能拥有专属的应用界面,实现从 "开发应用" 到 "生成应用" 的范式跨越。
1.3 生成式 UI 技术的双轮驱动抢占未来入口
将千问 App 与灵光 App 结合来看,阿里的 AI 战略版图清晰浮现:千问 App 利用生成式 UI 界面聚合主流服务,解决高频、标准化的大场景需求;灵光 App 则利用生成式小程序填补个性化、非标准化的小场景空白。两者互为补充,共同构建了一个 "无死角覆盖" 用户意图的高粘性生态。不远的将来,谁能同时掌握原子化能力的调度、长尾需求应用的即时创建,谁就真正掌握了通往未来的 "超级流量入口"。
生成式 UI 的基本概念
2.1 从命令到意图的交互范式转移
人机交互的历史,本质上是一部不断降低用户意图与机器执行之间 "翻译损耗" 的历史。在计算时代的早期,命令行界面(CLI)占据统治地位,用户任何字符的输入错误都会导致交互失败。这种 "以机器为中心" 的交互范式要求用户必须 "像机器一样思考",即将用户意图转换成精确的命令字符。
随后图形用户界面(GUI)的出现降低了认知门槛。然而 GUI 建立在一个假设之上 ------"确定性"。在传统的 GUI 范式中,设计师与开发者在应用发布前,基于对目标用户群体的 "平均假设",预先构建所有的页面布局、导航路径与交互组件。这种确定性导致用户体验本质上是静态的。用户必须调整自己的思维模型,来适应固定的操作流程,通过在复杂的菜单树中进行 "导航" 来逼近其意图。换言之,GUI 虽然图形化了,但依然迫使用户去 "适应工具",而非工具适应用户。
生成式 UI 的崛起,标志着确定性交互范式正向 "意图驱动" 范式转移 。在生成式 UI 的框架中,界面不再是 "静态资产的集合",而是 "流动性组件的集合"。应用不再依赖预先定义的界面,而是基于大语言模型对用户自然语言指令、当前上下文环境及历史行为模式的理解,动态生成最适合当前任务的界面组件。这种转变将交互设计的重心,从 "界面布局设计" 转移到 "意图结果导向设计",即直接呈现完成任务所需的交互实体,而非让用户在工具箱中寻找工具。
2.2 关于生成式小程序的定义与应用
生成式小程序与微信小程序不同,不是预先开发、静态部署的移动端应用。它是指由 AI 根据用户意图和上下文实时生成的、短暂存在的、功能完备的交互式应用。其核心特征主要包括以下三个方面:
意图驱动:用户无需在复杂的菜单或界面中寻找 "功能入口",只需直接表达目标,AI 即可自动规划实现路径,并动态生成对应的小工具或应用界面。
动态流式构建:小程序不再依赖预先下载的静态代码包,而是随着 AI 的 "实时推理",通过流式传输等技术将所需的界面组件,按顺序推送到前端并即时渲染。
原子化能力封装:后端复杂的业务逻辑被封装为独立的 "原子化能力",AI 在运行时根据当前场景和需求,动态调用并组装这些能力,快速构建出完整功能。
生成式小程序的实际落地应用需要依靠 "端侧大模型"。传统模式下,商家需通过编写代码来开发微信小程序,而在 "端侧生成技术" 的加持下,商家只需描述服务需求,端侧大模型实时生成对应的交互应用。当用户访问该商家时,其本地的大模型能根据 "服务描述文件",实时渲染出交互界面。这意味着,小程序的形态从 "预先下载的代码包" 转变为 "下载的意图描述 + 本地实时生成 UI"。
此外,生成式小程序在企业级应用中展现出独特的 "隐私保护" 优势。以医院挂号或银行业务办理为例,这些场景通常涉及大量敏感信息填写。端侧大模型可在本地内存中直接处理用户证件照、自动提取信息并填入表单,或者结合用户历史记录动态生成个性化界面。所有推理与界面生成均在本地完成,规避因数据上传云端导致的隐私泄露与合规风险。
流式输出机制的深度解析
3.1 推理延迟与流式输出的必要性
尽管生成式 UI 描绘了理想的交互方向,但在工程落地上面临物理瓶颈:大语言模型的 "推理延迟"。与传统 REST API 毫秒级的响应速度不同,大模型生成完整响应往往需要数秒甚至更久。在传统的 "请求 - 等待 - 响应" 模型下,这种延迟会导致用户在空白屏幕前等待时间过长,进而放弃交互。
因此,流式输出不仅是一种性能优化手段,也是生成式 UI 能够成立的基础。通过流式传输,在服务端生成的第一个 Token 就开始在客户端渲染界面,将用户的 "等待时间" 转化为 "用户阅读与交互时间"。这种机制既解决了技术上的超时问题,也让用户对 AI 的思考过程有了感性的认知。
上图是流式输出示例 Demo,接下来将深入剖析生成式 UI 流式输出的技术原理,重点围绕 Markdown 文本流与结构化对象流(StreamObject)中的技术差异、渲染原理及 Diff 局部刷新机制等。
3.2 Markdown 纯文本流的局限性与渲染瓶颈
3.2.1 技术实现机理
早期的生成式 UI 形式(以 ChatGPT 为代表)主要依赖 Markdown 纯文本流。其技术链路相对直观:大模型输出包含 Markdown 标记的文本流,前端利用 Server-Sent Events (SSE) 或 HTTP 分块传输接收数据块,然后使用 markdown-it 等工具库,将接收到的字符串实时转换为 HTML。
这种方式的优势在于 "通用性" 与 "低耦合"。几乎所有的大模型都经过 Markdown 语法的微调,能够稳定输出格式化文本。然而它的局限性在于缺乏交互。Markdown 本质上是一种静态文档描述语言,它无法定义复杂的交互逻辑(如表单验证、动态图表交互等),它生成的界面是 "只读" 的,用户只能看不能操作。
3.2.2 渲染性能瓶颈
从渲染原理上看,Markdown 流存在严重的 "性能隐患"。由于 Markdown 的语法具有高度的 "上下文相关性",例如,一个星号 * 是列表项还是斜体,完全取决于后面的字符序列,这意味着大多数 Markdown 解析器难以实现真正的 "增量解析"。
每当新的文本块到达,前端通常需要将累积的上下文相关文本重新送入解析器,生成新的抽象语法树,并销毁旧的 DOM 节点以构建新节点。随着生成内容的变长,这种 O (N) 甚至 O (N^2) 的计算开销可能会导致明显的页面闪烁与滚动条抖动,破坏用户体验。这种 "重绘" 不仅消耗客户端资源,导致设备发热,还会打破流式输出的 "流畅感"。
3.3 结构化对象流(StreamObject)与部分解析技术
为了突破 Markdown 的交互限制,以 Vercel AI SDK 和 TheSys 为代表的技术方案转向了 "结构化对象流"。这一路径的核心是强制大模型输出符合严格 Schema 定义的 JSON 或 DSL 数据,并在客户端进行实时的 "部分解析" 与渲染。
3.3.1 Vercel 的 StreamText 与 StreamObject
Vercel AI SDK 提供了 streamText 与 streamObject 两种 API,分别对应非结构化与结构化流,其主要区别如下:
| 特性维度 | Markdown / StreamText | JSON / StreamObject | | --------------- | ------------------------------------ | ------------------------------------ | | 数据载体 | 非结构化字符串 (Unstructured String) | 类型化 JSON 对象 (Typed JSON Object) | | Schema 约束 | 无或弱约束 (Prompt 提示) | 强约束 (Zod / JSON Schema) | | 传输协议 | 纯文本 Delta | 数据流协议 (Data Stream Protocol) | | 容错机制 | 文本错误仅影响局部显示 | JSON 语法错误可能导致整个解析失败 | | 渲染目标 | 静态 HTML 文档 | 动态 React/Vue 组件树 |
streamObject 的核心价值在于它允许开发者定义一个 Zod Schema,并要求大模型严格按照该结构输出 。这使得前端可以直接将生成的数据映射为 React/Vue 组件(例如 <LineChart data={...} />),而非简单的 HTML 元素。
3.3.2 结构化流的部分 JSON 解析器
结构化流的最大技术挑战在于 JSON 格式的 "非流式特性"。标准的 JSON.parse () 方法要求输入必须是完整闭合的 JSON 字符串。然而在流式传输过程中,客户端在任意时刻接收到的数据都可能是 "残缺的"。例如,大模型可能输出了 {"users":。
为了解决这个问题,生成式 UI 框架引入了复杂的 "部分解析器"(Partial Parsers),例如 json-river 或 Vercel 自研的解析逻辑。这些解析器已不是简单的反序列化工具,而是基于 "状态机" 的编译器,其主要能力如下:
词法分析:解析器实时扫描字符流,识别出 JSON 词法元素,比如对象定界符、数组定界符、键值分隔符等。
类型安全修复:Vercel AI SDK 引入了 experimental_repairText 机制,利用微型模型或启发式算法,修复因大模型偶尔输出非法 JSON(如错误的转义字符)导致的数据流断裂。
3.3.3 TheSys C1 的 XML-like DSL 流式响应
与 Vercel 坚守 JSON 不同,TheSys 的 C1 API 选择了一条独特的实现方式:基于 XML 或自定义 DSL 的流式响应。其响应流可能包含 <thinking>(展示推理过程)和 <content>(UI 描述)等标签。
TheSys 这条技术路线的优势在于:XML 结构的起始标签和结束标签提供了明确的 "边界定界符"。流式解析器可以更容易利用正则或简单的栈结构来分割数据块,无需像解析 JSON 那样深度递归地追踪嵌套层级。这种设计在处理大规模并发流时往往表现出更高的 "鲁棒性" 与 "解析效率",尤其是在企业级高吞吐场景下,能够有效防止因单个 Token 丢失导致的整个 JSON 结构崩塌。
3.4 界面渲染的 Diff 机制与局部刷新
在解决界面初始化渲染的数据传输与解析后,如何在不阻塞主线程的情况下高效更新 UI 界面?这里涉及到数据层与视图层的双重 "Diff 机制"。
3.4.1 数据层 Diff:JSON Patch 与 Delta 更新
为了减少网络带宽占用并降低客户端的解析压力,生成式 UI 系统(如 LangDiff)不再传输累积的完整数据,而是传输 "变更集"(Deltas)。
更新原理:服务端并不发送整个更新后的 JSON 对象,而是计算当前帧与上一帧的差异,并生成符合 RFC 6902 标准的 JSON Patch 操作指令。例如:
[
{ "op": "add", "path": "/chart/series/0/data/-", "value": 25 },
{ "op": "replace", "path": "/status", "value": "generating" }
]
性能优势 :客户端仅需维护一个状态对象,并根据接收到的 Patch 指令进行 "局部修改"。这极大地降低了数据处理的时间复杂度,从全量解析的 O (N) 降低到了 Patch 应用的 O (1) 或 O (M)(M 为变更量),对于移动端低算力设备尤为重要。
3.4.2 视图层 Diff:React 与 Vue 的更新机制
当新的数据片产生后,前端框架需要将其映射到 UI 界面,以下分别从 React 和 Vue 的角度讲解视图层的 Diff 更新机制。
在 React 生态中,这依赖于 Fiber 架构的 "协调算法"。Vercel AI SDK 的 useObject Hook 内部维护了随时间变化的数据状态。每当流更新时,它触发组件重渲染。为了防止高频(如每秒 20 次)的数据流导致页面卡顿,生成式 UI 组件通常采用 React.memo 进行包裹,并使用 "深层比较" 或 "不可变数据结构" 作为 Props。这意味着,如果 Patch 仅仅更新了页面底部表格的最后一行,页面顶部的图表组件因 Props 未变,将直接跳过渲染过程。这种 "细粒度的局部刷新" 是生成式 UI 实现流畅动画效果的关键。
在 Vue 生态中,视图更新依赖于其 "响应式系统" 与 "虚拟 DOM Diff" 的双重机制。当响应式数据变化时,Vue 的响应式代理会精准追踪依赖关系,仅触发相关组件的更新。其虚拟 DOM Diff 采用双端比较 + 最长递增子序列算法,结合编译时的 "静态提升"、"补丁标记" 和 "树结构压平" 等优化,实现高效的 DOM 更新。对于高频数据流场景,开发者可通过 v-memo 指令、shallowRef 浅层响应式、computed 计算属性缓存以及 KeepAlive 组件实例复用等策略,实现细粒度的局部刷新。这种响应式驱动与编译时优化相结合的机制,确保了生成式 UI 在持续数据流下的流畅渲染体验。
3.5 非 Web 端的技术实现方式
尽管基于 Web 的 HTML/JSON 是目前的主流实现方式,但为了满足特定的性能需求、安全隔离或跨平台场景,业界探索出了多种替代实现方式。
3.5.1 移动端:Flutter 生成式 UI 与 A2UI 协议
在移动应用中,通过 WebView 渲染流式 HTML 往往面临 "性能"(帧率不足、内存占用高)和 "体验"(非原生交互手感)的双重挑战。Google Flutter 团队推出的生成式 UI SDK 展示了一种完全原生的,以 "Widget Catalog" 与 "A2UI 协议" 为核心的解法。Flutter 的生成式 UI 不生成代码,也不生成 DOM,它采用了一种 "预制件组装" 的策略:
Widget Catalog(组件目录):开发者在 App 编译阶段预先定义一系列原生的 Flutter Widget(如 WeatherCard, ProductList),并将这些组件的元数据(名称、参数 Schema、描述)注册到生成式 UI Manager 中。
A2UI (Agent to UI) 协议:大模型与客户端之间的通信不再是自由的文本,而是遵循 A2UI 协议的 "指令流"。这些指令类似于远程过程调用(RPC),指示客户端:"使用参数 X、Y 实例化组件 Z"。
客户端接收到指令后,Flutter 应用利用其底层的 Skia 或新一代 Impeller 图形引擎直接在 GPU 层绘制 UI。这意味着生成的界面与手写原生界面在性能上完全一致,可以轻松实现 120fps 的滚动与动画,且完全支持原生的手势操作。这种 "服务端决策逻辑 + 客户端原生渲染" 的模式,解决了 Web 生成式 UI 在移动端的用户体验问题。
3.5.2 服务端:Server-Driven UI 的 AI 化演进
服务端驱动 UI(SDUI)是一种成熟的架构模式,广泛应用于 Airbnb、Uber 等大型 App 中。SDUI 的 "生成" 发生在服务端,传统的 SDUI 由后端业务逻辑拼装 JSON 配置,而生成式 UI 下的 SDUI 则由服务端的 "大模型 Agent" 动态生成布局树。
SDUI 的技术优势在于:将生成逻辑完全收敛在服务端,使得企业可以在服务端部署重量级的 "安全护栏" 和 "校验逻辑",确保下发给客户端的 UI 结构安全合规。客户端完全沦为 "界面渲染器",这极大简化了客户端的逻辑复杂度。
Next.js 的 React Server Components 是 SDUI 在 Web 前端的现代进化版。与传输 JSON 数据不同,RSC 允许服务端直接流式传输序列化后的组件树(Flight 数据格式)。在 RSC 架构下,大模型生成的不再是待解析的数据,而是直接生成的 React 组件节点。这些节点在服务端被渲染成流格式,客户端接收到后直接 "水合"(Hydrate)进现有的 DOM 树中。这种方式模糊了数据与 UI 的界限,实现了真正的 "UI 流式传输"。
实时生成与设计态预设
在生成式 UI 中除了流式输出技术不同,界面的来源也存在分歧 ------"实时生成" 与 "设计态预设"。这个分歧的根本在于 AI 的定位:**AI 究竟是一个拥有自主意识、能够即兴创作界面的 "设计师",还是一个仅仅在预设规则下进行检索与调度的 "管理员"?** 下图是生成式 UI 实时渲染的工作流程:
4.1 实时生成范式:意图驱动与即时生成
"实时生成" 是生成式 UI 的理想形态。在这种模式下,用户界面不再是静态的软件资产,而是 "对话语境" 的即时产物。
4.1.1 即时生成与用后即弃
在传统软件工程中,开发一个功能页面通常需要经历漫长的周期,且页面是 "永久存在" 的。然而在实时生成范式中,用户提出一个个性化或一次性的需求时,AI 会 "即时" 编写代码或生成描述语言,渲染出一个仅服务于当前时刻、当前用户的 "微应用"。用户使用一次后,这个应用即被销毁。
4.1.2 用户认知适应性
实时生成允许应用 "感知" 用户的专业程度和当前状态。例如,对于数据分析师,它可能生成包含复杂回归曲线的交互式仪表盘;而对于普通管理层,同样的查询可能生成简明的摘要卡片和趋势箭头。这种 "布局层面" 的即时调整是传统 "响应式设计"(仅基于屏幕尺寸调整)无法企及的。
4.1.3 代码生成与沙箱环境
最激进的实时生成方式是让大模型直接输出 "可执行的代码"(如 React/JSX, Vue, HTML/CSS 等)。大模型输出代码块,前端应用内嵌一个 "沙箱环境",实时编译并挂载这些代码。这种方式非常灵活,AI 可以创造出前所未见的布局、动画效果,甚至发明新的交互控件。但在企业级应用中,这种方式极少直接使用,因为存在巨大的安全隐患(XSS 攻击)和 "样式失控" 风险(AI 生成的样式可能破坏原有品牌规范)。
4.2 设计态预设范式:确定性的避风港
作为实时生成的对立面,"设计态运作" 代表了工业界对生成式 UI 的 "务实妥协",尤其是在金融、医疗等对 "准确性" 要求极高的领域。
4.2.1 预制件组装策略
在设计态模式中,界面的构建权回归开发人员。产品经理与设计师在设计态规划并构建界面组件,并将其 "注册" 到组件库中。在运行态,AI 的角色被 "降级" 为意图识别和参数填充。AI 输出的不是界面描述,而是 "调度指令",例如 Call Widget: WeatherCard (city="Beijing")。这种做法的好处显而易见:
不可预测性的消除:企业可以确保用户看到的每一个像素都是经过人工审核的,完全符合品牌规范。
安全与合规:不会出现 AI 捏造虚假的按钮("幻觉 UI")或诱导性交互的情况。
性能优势:原生渲染(如 Flutter Impeller 引擎)通常比实时生成的 Web DOM 性能更高,体验更流畅。
4.2.2 覆盖率陷阱与体验退化
设计态的 "有限预设" 注定无法覆盖无限的意图,这就是 "覆盖率陷阱"。当用户提出一个并未在设计态预设的请求时,应用会遭遇 "匹配预制件失败",并退化到 "纯文字描述" 阶段。这种 "体验断层" 是目前基于设计态的产品面临的主要痛点。
例如,在一个旅游 App 中,如果预置了 "机票" 和 "酒店" 组件,但用户问:"我想找个既能看海又能滑雪的地方",App 无法找到对应的预制组件,只能回复一段纯文本建议。这种从 GUI 到 Chatbot 的 "退化",被用户视为体验的 "降级"。
4.3 工作流编排:折中方案的局限
为了缓解覆盖率问题并增强控制,业界普遍采用智能体 "工作流编排引擎"(如 n8n, Dify, Coze, LangFlow)。开发者通过可视化的 DAG(有向无环图)编排业务流程。
然而,这种方案本质上是设计态预设的变体。AI 在这里并不进行真正的 "规划",它只是一个 "智能编排器"。这种模式限制了大模型的推理能力,使得交互变得 "线性化" 和 "僵化",无法处理非线性的、跳跃的人类对话。真正的大模型推理能力体现在 "动态规划" 上,即 AI 面对问题自主决定第一步做什么、第二步做什么,而不是沿着人类画好的箭头走。
4.4 两者的融合与演进
既然实时生成拥有 "无限的适应性" 但缺乏 "可控性",而工作流编排拥有 "可控性" 但限制了 AI 的智能,生成式 UI 必然走向两者的融合。这种融合的关键在于:在 "设计态" 定义约束,在 "运行态" 释放自由。
4.4.1 动态设计系统
生成式 UI 架构不再是简单的全自动或全手动,而是 "基于规则的即兴演奏"。我们应将组件视为语言中的 "单词",并按照以下方式组装成 "句子":
设计态约束:设计师构建一套原子化的设计系统(Buttons, Cards, Lists, Charts),并定义它们的使用规则("语法")。这些是确定性的、安全的。
运行态组合:AI 不再直接生成 HTML,而是像写文章一样,调用这些 "组件单词" 来动态生成 "界面句子"。
在这种模式下,不需要预设僵化的流程图。AI 拥有一个 "工具箱",根据用户意图,它可以自主决定:"我先拿一个 Chart 组件,再拿一个 Table 组件,把它们拼在一起,展示给用户。" 这既保留了 AI 的推理决策能力(决定拼什么),又保证了界面的规范性(拼出来的东西是基于标准组件的)。
4.4.2 约束下的推理
为了解决实时生成的不可预测性,技术重心将从 "限制流程" 转向 "限制输出结构":
结构化流与类型校验:利用 Zod Schema 或 TypeScript 接口,强制 AI 的思维过程符合特定的数据结构。这是一种 "软性约束",它允许 AI 在框定的范围内自由发挥,而不是像工作流那样规定每一步必须怎么走。
上下文注入:利用 MCP 等协议,将业务规则、组件文档实时注入到大模型的上下文中,使得 AI 变成了一个 "熟悉业务的专家",它不需要被硬编码的流程图牵着鼻子走,而是能够根据原则自主处理各种突发情况。
生成式 UI 驱动应用智能化演进
生成式 UI 技术的落地,标志着软件架构正从 "以界面为中心" 迈向 "以意图为中心" 的转变。其最终形态,并非仅是生成简单的文本或 UI 交互页面,而是能够实时创建复杂、交互完整的轻量级应用(生成式小程序)。这些应用功能被进一步封装为原子化能力单元,供 AI 按需调度。在这一新范式下,应用的核心价值不再是提供一套固定的操作界面让用户 "学习与导航",而是化身为一个由 AI 根据用户意图 "实时组装与驱动" 的 "能力池"。
作为企业应用智能化改造的超级加速器,将生成式 UI 技术与 OpenTiny 的 WebMCP 技术相结合,能够以较低的侵入性甚至是非侵入性实现智能化改造:将传统 "人手动操作界面" 的模式,升级为 "AI 理解意图 - 调度原子能力 - 动态生成界面 " 的智能交互闭环,从而替代或协助人完成任务。
当前,企业应用的智能化改造主要有以下三种路径,体现了从高侵入性到非侵入性的渐进式演进:
5.1 后端 API 的 MCP 协议化改造(高侵入性)
这是最直接但侵入性最高的方案。其核心是 "绕过前端",直接将后端 API 改造为符合 MCP 协议的接口,供 AI 直接调用与编排业务逻辑。此方案将后端服务彻底转成原子化能力,但面临以下挑战:
改造复杂与权限重构:由于 AI 直接调用后端 MCP 服务,绕过了原本前端应用已经建立的权限机制,因此,必须基于 MCP 协议的鉴权体系重新建立一套新的权限机制,确保 AI 仅以 "代表用户" 的身份令牌执行操作。
双轨运维成本高:将遗留 API 改造成 MCP 服务,要求围绕 AI 的特点,实现 API 的 "AI 友好化" 和 "智能化"。开发者通常需要维护现有 API 服务和新的 MCP 服务的两套代码,导致开发和运维成本显著增加。
新型安全挑战:在缺乏生成式 UI 构建的交互界面进行关键操作确认的情况下,由于大模型尚未完全成熟,纯自然语言交互易遭受 "诱导性指令攻击",可能导致 AI 越权或执行恶意操作。
5.2 前端页面的 MCP 工具声明(低侵入性)
这种路径实现了应用从传统模式到智能模式的 "平滑过渡"。它在不改变现有前后端逻辑的前提下,通过使用 OpenTiny 的 WebMCP 技术,在前端将现有页面功能 "声明" 为 MCP 工具,使其成为 AI 可调度的原子能力,为后续智能化演进奠定基础。该路径的特点如下:
低成本与平滑过渡:无需改动现有后端 API 服务或前端交互逻辑,仅通过在前端添加脚本 "声明" MCP 工具,将页面功能定义为原子化能力,使得改造成本较低。
边界与权限可控:AI 能获取的页面信息及调用的功能,完全取决于该应用的开发人员在前端声明的 MCP 工具脚本。由于这些工具仅在用户登录可见,因此 AI 调用该 MCP 工具是以 "登录用户" 的身份执行,这让权限边界更清晰。
实现交互转移:基于声明的前端 MCP 工具,生成式 UI 技术可将复杂操作流程转化为 "对话式的确认交互"。AI 无需 "模拟点击",即可生成包含 "执行计划" 的交互卡片,实现高效的人机协同闭环。
5.3 浏览器扩展插件的 MCP 能力注入(非侵入性)
对于无法修改源码的遗留系统,这是理想的非侵入式改造方案。用户通过安装 OpenTiny 提供的浏览器扩展插件,向 Web 应用 "动态注入" MCP 工具,同时插件连接 OpenTiny 的 Agent 代理服务器,使得 AI 可以通过代理远程调用已注入的 MCP 工具。相比前两种路径,此方案的主要改进点体现在:
真正的非侵入性改造:通过浏览器扩展机制,无需修改现有应用源代码,即可实现将应用功能原子化。只需为相应的 Web 应用预先开发 MCP 工具脚本,由插件匹配网址后注入。
支持多环境执行:支持在 "主世界"(与页面同权限)和 "扩展隔离环境" 中执行。例如,既可在主世界通过执行脚本动态注入 MCP 工具,也能在浏览器扩展隔离环境中通过执行脚本注册 MCP 工具。
可扩展的技能:通过 Agent 代理服务器,AI 不仅能调用注入的 MCP 工具,还能集成地图、文档处理等 "云端或本地技能"。另外,还可结合 Computer Use 等 RPA 技术,使 AI 具备 "视觉感知" 与 "模拟操作" 能力。
生成式开发平台
生成式小程序如果让 AI 完全自由发挥,虽能覆盖海量长尾场景,却会引入不可控的工程与业务风险。为解决 "AI 的概率性创造" 与 "企业所需的确定性交付" 之间的冲突,确保生成式小程序在安全、合规与体验上的一致性,我们需要构建 "生成式开发平台"。
6.1 为何需要生成式开发平台
生成式开发平台的核心使命,是为 AI 的创造力设立 "安全的轨道",使其在满足企业级严苛要求的前提下,高效生成可靠、可用的交互界面。
6.1.1 消除幻觉 UI 与保障企业级安全
大模型本质是概率模型,让 AI 自主生成极易产生 "幻觉 UI"。例如调用不存在的方法、传递虚构参数,或在关键业务界面中生成具有误导性的危险操作按钮。而在金融、政务、医疗等领域,每一个像素、每一次交互都须准确无误且经过合规审核,这是 "自主 AI" 无法保证的。
生成式开发平台通过严格的 "类型安全校验"(如 Zod Schema)和 "预审的设计系统",强制 AI 只能在预定义的、安全的组件库范围内进行选择与组装,从根本上禁止 AI 自行绘制像素或编写不受控的样式代码,从而杜绝幻觉 UI 的产生。
6.1.2 构建动态设计系统与原子化能力池
前面提到过,生成式 UI 的演进将融合实时生成与设计态预设,为此需要构建 "动态设计系统",将标准化组件视为语言中的 "单词",作为设计态约束,然后在运行态组合,即调用这些 "组件单词" 来动态生成 "界面句子"。
生成式开发平台需要维护一个庞大的 "原子化能力池",包含基础的原子组件(Design System)和可复用的 "业务技能"(Agent Skills)。通过定义这些原子化能力,使得 AI 能够使用原子组件进行渲染,实时组装出一个可用的小程序,而不会退化为纯文本,从而解决设计态预设覆盖率不足的问题。
6.1.3 保证品牌一致性与 UI 规范
如果让 AI 随意生成,它可能在布局、色彩和交互上偏离企业的品牌规范,导致 "样式失控" 和用户认知混乱。生成式开发平台通过将设计系统转化为 AI 的 "系统提示词",或者通过 "UI 规范知识库" 等方式,将品牌规范注入模型的上下文中,形成一个 "安全护栏",从而确保 AI 生成的 UI 结构和样式始终符合企业的品牌规范。
6.1.4 提升 AI 推理的效率和质量
没有平台规划的 AI 可能会浪费大量的 Token 和算力来生成冗余或低效的代码。生成式开发平台将组件和逻辑动作封装为 Agent Skills,AI 不再是在自由地写代码,而是在 "调用能力"。这大幅减少了 AI 的 "决策复杂度" 与 Token 消耗,确保最终生成的界面代码具备高性能与可维护性,提升整体推理效率与输出质量。
6.2 低代码平台的新角色
传统低代码平台致力于构建 "长效、稳定" 的应用(如企业 CRM 系统),其界面结构与业务流程在发布周期内基本固定,用户需适应预设的导航与操作路径。
在生成式 UI 的驱动下,低代码平台正经历根本性变革:其核心角色从 "可视化搭建工具" 转变为 "意图驱动的实时开发平台"。平台在设计态维护一个丰富的原子化能力池(含组件、业务技能与数据连接器);在运行态则根据用户自然语言意图(例如分析销售数据并预测趋势)实时组装出功能完整的小程序界面(包含图表、筛选器与导出面板等)。任务完成后,该界面可自动销毁,将应用的 "生命周期" 从年月级缩短至分钟级。
6.2.1 自然语言替代拖拽
传统的拖拽式低代码平台虽然降低了编码门槛,但在面对复杂业务场景时,其交互效率存在明显的 "边际效应递减":
操作复杂度线性增长:构建一个包含 50 个字段的表单,用户至少需要进行 50 次拖拽操作,以及数百次属性配置点击。这种 "物理操作" 的累积导致了巨大的时间成本。
高维意图的翻译损耗 :用户脑海中的意图是 "高维" 的(例如,一个带有审批流的请假单),但拖拽工具迫使会将这一意图降维拆解为底层的 "原子操作"(拖入容器、拖入文本框、设置标签、绑定数据)。这种从 "意图" 到 "实现" 的翻译过程是低代码开发中最耗神的部分。
生成式开发平台利用自然语言作为构建入口,能将操作复杂度大大降低。用户只需描述高维意图,由大模型承担繁琐的拆解与配置工作,原因如下:
精准的语义理解:当前的 SOTA 模型(如 GPT-5, DeepSeek v3.1)在理解 UI 语义方面表现卓越。它们能够准确地推断出:收集用户反馈需要包含姓名、评分、意见和提交按钮。
隐式需求的上下文推断:大模型不仅能生成界面,还能根据上下文推断 "隐性需求"。例如,用户要求 "创建一个面向老年人的页面",引擎会自动生成大字体、高对比度且交互简单的界面,这是传统拖拽工具无法自动实现的认知适应性。
6.2.2 通过画布标注修改
自然语言的 "模糊性" 与 UI 的 "精确性" 存在天然矛盾。为此,平台引入 "人在回路" 的交互修正机制。用户可在 AI 生成的初稿上直接 "标注"(如圈选、批注),平台通过实时维护的 "DOM-DSL 映射表",定位并仅将相关 DSL 片段与修改指令发送给模型,实现 "局部增量更新"。这避免了全量重生成导致的 "上下文丢失",在体验上实现了 "所指即所得" 的精准调控。下面是画布标注的示例 Demo:
6.2.3 应用的定义描述语言
传统低代码依赖 JSON 描述页面结构,但在生成式场景中暴露明显短板:
Token 效率低下:JSON 语法中大量的花括号、引号和逗号占用了宝贵的上下文窗口,且不承载任何业务语义。
流式传输的脆弱性:标准的 JSON.parse 方法要求输入必须是完整闭合的字符串。在大模型 "逐字流式输出" 的过程中,客户端无法实时解析一个 "残缺的 JSON"。虽然存在 json-river 等部分解析库,但处理复杂的嵌套结构依然极其困难,容易导致渲染阻塞或失败。
缺乏推理痕迹:JSON 只能描述结果,不能包含 "思考逻辑过程"。
生成式开发平台,利用 Markdown 和 Agent Skills 替代 JSON,实现更优的表述与传输方案:
Markdown 作为设计态载体:Markdown 的非结构化特性使其成为承载大模型 "思维链" 的最佳格式。平台的运行时渲染引擎应允许大模型在输出具体的 UI 定义前,先输出一段 Markdown 格式的 "思考块",提供可解释性和容错性。
Agent Skills 作为动态组件定义 :这里的 Agent Skills 可以理解为将低代码平台中的组件和逻辑动作封装为大模型可调用的工具或原子化能力。大模型不再是在 "填空"(即填充 JSON),而是在 "调用能力"。这使得 AI 能够更灵活地组合组件,甚至在没有预设模板的情况下创造出新的布局组合。
XML/JSX 流式渲染界面:在运行态,采用标签结构明确的 XML 或类 JSX 语法进行流式输出与渲染。解析器可在收到 "开始标签" 时即刻创建容器框架,无需等待完整闭合,极大提升流式响应体验。
6.2.4 生成式开发平台的架构
生成式开发平台的整体架构可概括为以下四个协同部分,如下图所示:
生成式 UI 渲染引擎 将大模型输出的文本流,实时转换为界面描述的 Schema 流,并渲染为包含智能组件的动态界面。
生成式小程序设计工具 允许设计师通过自然语言描述小程序的页面外观与交互逻辑,AI 从生态中心获取相关智能组件,结合描述自动生成小程序预览。
生成式小程序运行引擎 根据用户意图,从生态中心资源池获取小程序描述,并基于描述实时生成代码并渲染,直接嵌入对话内容界面中。
生成式小程序生态中心 汇聚垂直领域的智能组件资产,支持设计工具调用,保存设计工具发布的小程序描述至资源池,为 AI 提供调用接口。
设计师的角色跨越
设计行业正处于自图形用户界面(GUI)诞生以来最为深刻的危机与机遇之中。长期以来,设计师与用户之间的 "契约" 建立在 "确定性" 的基础之上:设计师在软件发布前的 "设计态" 预测用户需求,构建固定的导航路径与静态页面,用户则在 "运行态" 通过适应这些预设路径来达成目标。然而生成式 UI 技术的爆发,正在瓦解这一契约。
7.1 从静态页面到流体界面
在传统的 GUI 设计中,设计师的核心产出物是 "页面"(Page)或 "屏幕"(Screen)。通过线框图定义布局,通过视觉稿定义样式,通过原型图定义跳转逻辑。这种工作流隐含了一个假设:能够穷尽用户的所有使用场景。然而,这种预设性的 GUI 迫使用户适应软件的逻辑,使得用户必须在复杂的菜单树中 "导航",以逼近其真实意图。生成式 UI 打破了这一假设。它引入了 "按需生成,即用即弃" 的概念,让界面仅为当前的一个特定任务而生,任务完成后即刻销毁。
在这种语境下,设计师不再设计最终的页面,而是设计组件的 "词汇量" 与组装的 "语法"。
从画图到定义元数据:设计师需要为每一个组件(图表卡片、信息列表等)定义详细的 "语义描述"。这不仅包括它长什么样,更包括它能做什么,以及什么情况下该用它。例如,设计师需要明确定义:"当数据量超过 50 条且包含地理位置信息时,优先展示地图组件,而非列表组件"。
Vibe Coding 与氛围设计:随着 "Vibe Coding"(氛围编码)技术的兴起,开发可以通过自然语言描述应用的功能,而设计师的工作则变成将感性的 "形容词"(Vibe)转化为可被 AI 理解的 "参数"(Design Tokens)。设计师需要建立一个 "风格映射库",比如,定义 "活力感" 对应的是哪一套色彩饱和度、圆角半径、动效曲线。
更多推荐



所有评论(0)