Featured image of post 生成式界面的时代:当模型直接生成软件,Coding Agent 该退场吗!

生成式界面的时代:当模型直接生成软件,Coding Agent 该退场吗!

10 月 7 日 GPT-6 上线那晚,我刷到一个挺有画面感的例子:你问它「帮我规划一次三口之家的周末露营」,它不先铺五百字清单,而是直接长出一张能点选的地图、一个「几个人去」的旋钮、一份跟着人数重算的物资表,外加一张能勾选的打包清单。你点点旋钮,数字当场变。

同一周,A2UI、AG-UI 这些词在工程圈刷屏。有人兴奋,也有人慌。我被问得最多的一句是:既然模型能直接把界面吐出来,那我们搭的那堆 Coding Agent,是不是白搭了?

这个问题问得不对。但它错的方式很值得聊——因为它暴露了一个几乎所有人第一反应都会犯的错:把「生成界面」和「生成软件」当成了一回事。而这两样东西之间,隔着一个完整的产业。

先看 OpenAI 到底把什么塞进了模型

先说一个被几乎所有报道漏掉的细节。OpenAI 在开发者社区的发布说明里写了这么一句:

Intelligent UI appears progressively: a library of native components and a compiler display the interface as the model generates it.

翻译过来就是:模型负责吐,但它是吐给一套「原生组件库 + 编译器」去渲染的。界面不是从模型权重里长出来的,是模型产出一份声明式的规格(spec),再由模型外面的一套东西编译出来。

这条细节是整件事的地眼。如果模型真能「在内部生成软件」,OpenAI 根本不需要再发一套组件库和编译器——它发这套东西这个动作本身,就是在承认:生成界面需要的运行时,在模型外面。模型只是那个决定「这次用文本、图表还是表单」的大脑,真正把它变成可点可用的东西的,是另外一套基础设施。

我在昨天那篇生成式 UI 的拆解里把 A2UI 的协议层翻了一遍,那篇讲的是「怎么生成」。这篇往前退一步,聊两件更底层的事:模型这次到底生成了什么,以及它没有生成什么。

生成式界面生成的是「最后一屏」,不是软件

一个能跑的表单,看着就很像软件。但它和软件之间,差着一堆没人愿意提的东西。

我把这两类产物的差别摊开:

维度 生成式界面吐出来的东西 Coding Agent 交付的软件
生命周期 一次对话,用完即弃 数月到数年,持续演进
状态 会话内,通常无持久状态 有数据库、有迁移、有历史数据
责任主体 用户自己看着办 有人签名、有人 on-call
可版本化 不可(每次重新生成) 可(git、可 review、可回滚)
分发 不分发,就地渲染 打包、发布、有依赖和兼容问题
出错代价 刷新一下重来 事故、数据损坏、SLA 违约

左边这一列,本质是**「把结果翻译成界面」这一层**被自动化了。你查个航班,它不再把 JSON 塞回给模型写一段散文,而是直接渲染一张带真实数据的卡片。这很爽,但它解决的是「结果怎么呈现」,不是「系统怎么存在」。

右边这一列,才是软件工程真正吃力的地方——身份、状态、权限、迁移、相容、故障恢复。这些东西生成式界面一个都没碰。它吐的是软件的「最后一屏」,不是软件本身。

软件史,就是翻译层不断被吃掉的历史

「上一层要退场了」这句话,我听了快二十年。

写汇编的听说编译器来了,写编译器的听说框架来了,写框架的听说低代码来了,写低代码的听说生成式 AI 来了。每一代都有人笃定地说:这回轮到[上一层]退场了。但真实发生的事情,一直在重复同一个模式——被压到接近零的,永远是「把意图翻译成实现」这一层;被创造出来的,永远是「定义意图」和「判定对错」这两层。

我把这条线拉成一张表:

阶段 被压到接近零的工作 被创造出来的新工作
机器码 → 高级语言 手写寄存器分配、内存寻址 写编译器、定语言规范
高级语言 → 框架 手搭基础设施、样板代码 定架构约定、设计模式评审
框架 → 低代码 拖拽式页面搭建 设计组件库、定义业务规则
低代码 → 生成式 UI 手写结果页、图表、表单 定义组件目录、校验生成物

看懂这张表,你就明白了 Coding Agent 的处境。它不是翻译层的受害者,它是翻译层的产物。 它的工作,本来就是「把人类意图翻译成能跑的代码」——这件事的边际成本,从 2023 年到现在一直在暴跌。生成式界面只是又往下咬了一口,吃的是「结果页」这一块。

那被吃掉之后,Coding Agent 会消失吗?不会。它会换一种活法。

Coding Agent 不会退场,它会沿着「责任时长」分叉

这是我的第一个判断,也是我认为最该记住的一条:判断一份实现工作归谁,标准不是「难不难」,而是「这份工作的责任要持续多久」。

  • 责任时长 = 一次对话(查个东西、算个数、做张图看一眼)→ 归生成式界面。用完即弃,错了刷新。
  • 责任时长 = 一次任务(改一个模块、跑一次迁移、生成一份报告)→ 归 Coding Agent。它要能重试、能回滚、能给你一个可 review 的 diff。
  • 责任时长 = 一年以上(一套要长期演进、要兼容旧数据、要有人背锅的系统)→ 归人 + Coding Agent 协作。这一层需要架构取舍和长期判断,生成式界面连门都摸不到。

所以 Coding Agent 的真实走向不是「退场」,是沿这条线分叉:短周期、低责任的实现被生成式界面吸走;它自己往上走,被推到长周期、高责任那一侧。它从「打字员」变成「工程约束的提供者」——负责的不是敲出代码,而是告诉模型「边界在哪、什么算对、出事了谁负责」。

顺带说一句我自己的观察:模型越会写软件,「约束」这件事就越值钱。当生成代码的成本趋近于零,稀缺的就反过来变成定义「什么算对」和「出事谁扛」的能力。这跟一个老工程原则是一回事——越自动化的系统,越需要有人守着它的失败模式。

顺手拆掉一个被说反的说法:harness 会沉进模型吗

顺着这个分叉,还有一个更技术、也更容易带偏的说法在传:「以后 agent 的 harness 会进到大模型内部」。这个方向同样反了,而且比上面那个更容易骗到懂技术的人。

先说 harness 是什么:编排循环、工具调用、持久状态、重试与幂等、凭据与权限、执行沙箱、审计取证。它想「装进模型」,得先过三道硬约束:

  • 状态。权重是冻结的,上下文是一次性的。跨会话的持久状态、可恢复的流程、幂等的重试,只能落在模型外面的运行时里。模型没有记忆,记性在别处。
  • 确定性。模型是概率函数,harness 需要的是确定性的控制流、熔断、失败保证。让一个天然随机的组件去承担确定性的职责,是把螺丝刀当锤子用。
  • 信任边界。harness 一旦进模型、进厂商,你的凭据、数据、执行就都交了出去。任何碰到敏感数据的场景,都不会接受这一条。

所以现实不是 harness 沉进模型,而是它被劈成两半:呈现的那一半被平台吸走、商品化——你不再拥有自己的界面层;执行与治理的那一半被挤出模型,而且更重、更值钱。这两半里,前面那半就是 OpenAI 那套「组件库 + 编译器」,后面那半才是真正决定 agent 能不能进生产的部分。一篇文章要是把这两半读成一件事,就会得出「harness 进模型了」这种把方向读反了的结论。

接下来一年,我会盯这三个信号

判断我上面这些判断对不对,不需要等太久。我会盯三个不那么性感、但很硬的信号:

信号一:组件规格会不会变成事实标准。 现在有开放的(A2UI、MCP-UI),也有围墙式的(OpenAI 自家的原生目录)。哪一边先把默认目录做成大家都绕不过去的东西,谁就定义了所有人用生成式界面时的默认积木。协议是免费的,目录是权力。

信号二:「界面注入」会不会变成一个正式的安全类别。 当模型能吐会提交的表单,一次不受信任的输入就能让界面长出一个诱导你点击的按钮。危险的不是那张图,是那个会触发真实动作的控件。如果这一年里它开始出现在安全厂商的威胁清单上,说明这条链真的在往生产里走。

信号三:企业采购的问题会不会换。 如果它从「哪个模型强」变成「证明这个 agent 做了什么、用谁的授权、碰了哪些数据」,那就说明价值确实迁到了验证和取证那一层——而那一层,模型自己够不着。

三个信号里,只要有两个往我这边走,我就更有底气说:被替代的是环节,不是职业。

对软件产业,有三记实锤

上面是分工逻辑,下面说三个我认为会真实发生的产业变化。判断依据是「交付单元」这个词,它正在变。

第一,SaaS 的「壳」在变浅。 过去一批 SaaS 的护城河,是它提前把那套界面搭好了——你懒得自己写,就订阅它。预置界面(pre-built UI)本身就是价值。可当每个用户都能用一句话原地生成自己想要的界面时,「我帮你把界面搭好」这件事的溢价会被压薄。价值会往下沉:沉到数据、沉到后端、沉到「这件事我敢替你负责」的信任上。界面是壳,壳会变浅,但壳里的东西反而更值钱。

第二,「为一个人、一次任务」的软件会成为一个真实品类。 我暂时叫它 software-for-one。它没有版本号、没有用户群、不进任何 marketplace、不需要维护——它只服务这一次需求,交付完就消失。这在旧世界里是不可想象的,因为写一份软件的成本太高,必须靠规模摊薄。成本趋零之后,「一次性软件」在经济学上第一次成立了。这不是「软件的终结」,是软件的碎片化。

第三,稀缺资源从「会写代码的人」换成了「能定义正确性边界的人」。 这一条我觉得最容易被低估。代码生成成本归零,不等于软件免费——它等于评判软件对不对的成本,成了新的瓶颈。谁能定义出「这段生成物在什么条件下算可信」,谁就卡住了这条链的咽喉。这也是为什么我越来越觉得,未来 AI infra 里增长最快的,不会是最会生成的那一层,而是最会验证的那一层。

说到这里得泼盆冷水。这波最大的赢家,大概率不是做「生成式界面」这件事的公司——生成能力谁都能做,两周就能被抄。真正通吃的是把它做成默认入口的大厂:GPT-6 免费铺给 12 亿周活用户,等于把「生成界面」变成了自来水。创业公司在这条光谱上,做通用能力没有分发,只有扎根到大厂懒得进、或进不去的角落才有活路。分发,还是分发。

什么情况下,我上面这些判断是错的

我不想只写「未来会更复杂」这种永远正确的废话。所以给一个可以被证伪的条件。

Coding Agent 真要退场的必要条件是:模型能够自主地理解模糊需求、做出架构取舍、保证长期演进不腐化、并且能为 bug 承担责任。 这四件事里,只要还有一件模型做不到,它就得在场。

而生成式界面这一波的进展,恰恰全发生在另一侧——短周期、无状态、低担责。它越成功,暴露出的越是它够不着的那些场景。换句话说:生成式界面每吃掉一块「轻松的实现」,就反过来把「困难的实现」衬托得越贵。这两条不是竞争关系,是跷跷板。

认清这点,你就不会因为「模型会生成软件了」而慌。被替代的从来不是某个工具,是某个环节。而环节被替代之后,人往上游走一格——这是过去五十年的固定剧本,没有一次例外。

写在最后

回到那个露营的例子。那张能点选的地图,确实很惊艳。但惊艳过后我注意到一件事:它生成了「怎么展示这次露营」,没有生成「谁来保证这张地图上的营地是对的、开放的、安全的」。

模型能生成一个界面,生成不了一套可信赖的系统。可信赖意味着可验证、可回滚、有人签名、出错有人负责。这些不是界面生成能解决的,是软件工程从第一天起就在解决的问题。

所以「Coding Agent 退场」是个伪命题。真正会退场的,是「手写界面」这件事本身——而它,恰好是很多工程师身份认同的一部分。你会看到一部分人把这场变化读成「我的工作没了」;但更准确的读法是:一个把界面当手艺的时代结束了,一个把约束当手艺的时代开始了。

焦虑的对象从来不是工具,是身份。而身份这东西,从来都是自己重新定义的,不是模型替你生成的。


相关阅读

By AI博士 万戈