字节的跨端框架今天换了个活法:AI 生成的界面,可以一行代码都不执行

Lynx 4.0 把”AI 生成界面”从口头约定变成了两条工程约束:一份机器可读的能力清单,加一条不执行任意代码的渲染通道。

先说那个所有人都在忍的问题。你让 AI 写页面,它张口就是 display: grid、就是你没实现的某个 CSS 属性——因为它的经验全部来自 Web,而你用的是一个能力边界小得多的跨端框架。你写完 rules 文件在提示词里列一堆”不支持 grid、不支持 XX 属性”,下次它照样犯。这不是模型不听话,是你把一份本该被机器读取的能力清单,塞进了自然语言里。

字节的 Lynx 4.0(2026 年 9 月 11 日发布)干的第一件事,就是把这份清单从提示词里拿出来,做成一个 Agent Skill。

npx skills add lynx-community/skills -s lynx-api-docs

装完之后,AI 在动手写 Lynx 代码之前,会先加载 lynx-api-docs 这份本地参考,确认几件事:这个元素支持哪些属性和事件、这套布局到底该用 Linear 还是 Flex、Grid 能不能用、哪些写法是 Web 有而 Lynx 没有的。它的内容来自引擎自己的 @lynx-js/lynx-api-docs 包,不是某个人手写的博客,所以框架升级、文档跟着更新,AI 读到的边界始终和引擎对齐。

关键差别在这里:提示词里的约束是”建议”,AI 可以忽略;Skill 里的参考是”输入”,AI 要先读再写。前者靠模型自觉,后者靠流程保证。

但 Lynx 4.0 更激进的是另一半——A2UI,让 AI 干脆不写代码。

A2UI 是 Google 提出的开放协议,全称 Agent-to-UI,核心目标一句话:让 AI Agent 安全地生成富交互界面,而不执行任何任意代码。Lynx 把它接进来,做成了一个渲染器,包名是 @lynx-js/genui/a2ui,从 A2UI 0.9 开始支持。

它的工作方式和”AI 吐代码、你 eval”完全不是一回事:

Agent 不生成代码,而是根据应用声明的 Catalog,生成符合组件约束的协议消息;Lynx 渲染器收到消息后,把它翻译成原生 UI;消息一边到、界面一边更新。

这里的 Catalog 是整个机制的闸门。客户端先声明”我支持哪些组件、函数、参数”,Agent 只能在这个授权范围里挑。它挑不到你没注册的组件,也就没法凭空造出一个不存在的按钮。授权范围之外的东西,不是靠事后拦截,而是根本不在可选项里。

再往下是两个工程细节,决定了这东西能不能上生产。

一是流式生成。A2UI 协议原生支持流式:Agent 一边推理一边发 UI 片段,客户端边收边渲染。用户不用对着空白页等模型想完,界面是随着 Agent 的输出逐步长出来的。

二是线程模型。Lynx A2UI 继承了 Lynx 的双线程架构——协议消息在后台线程解析,UI 更新提交到主线程呈现,两条线并行、互不阻塞。Agent 高频吐 UI 片段时,界面依然跟得上,不会因为解析卡住主线程。

交互这块,A2UI 用 Action 机制替掉了”让代码跑起来”。组件把用户意图描述成结构化 payload,而不是执行任意脚本。协议还区分了两种 Action:functionCall 在本地执行、不通知 Agent;event 则回传给 Agent,触发下一步。Lynx 在这之上又加了自己的 API 形状——渲染容器订阅一个按到达顺序保存原始消息的 MessageStore,Action 触发时把统一的 { name, context } 交给你的代码:你可以往同一个 store 里塞一条后续消息做本地更新,也可以发给 Agent、把响应流回来。渲染器不变,这一次往返的主动权在你手里。

所以 Lynx 4.0 给出的答案,其实是两条互补的路:能力边界靠一份机器可读的 Skill 提前划好,界面生成靠一条不执行任意代码的协议通道完成。前者管”AI 别写框架不认的东西”,后者管”AI 生成的东西别直接变成可执行代码”。

如果你手上也有 Agent 驱动的前端场景,今天就能落的三步:

第一,把你项目里那份”框架不支持 XX”的提示词,整理成结构化的能力清单,做成 agent 能读取的 skill 或参考文件——别再让它躺在自然语言里。

第二,如果你的框架或组件库有能力,去看一眼 A2UI 这类协议:它的价值不在”多了一种生成方式”,而在把生成结果限定在声明过的 Catalog 内,把安全边界从”运行时拦截”提前到了”生成时就选不到”。

第三,界面渲染和协议解析一开始就分开线程或至少分开职责,否则 Agent 高频输出时,卡的一定是你。

Agent 负责推理,框架负责渲染。这句话的正确读法是:让 AI 只做它擅长的事,剩下的事交给一条被约束过的通道。Lynx 4.0 只是第一批把这个通道做进框架里的。

评论区

0 条评论

登录后可评论。

小智·AI工具控 35 阅读