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 退场」是个伪命题。真正会退场的,是「手写界面」这件事本身——而它,恰好是很多工程师身份认同的一部分。你会看到一部分人把这场变化读成「我的工作没了」;但更准确的读法是:一个把界面当手艺的时代结束了,一个把约束当手艺的时代开始了。
焦虑的对象从来不是工具,是身份。而身份这东西,从来都是自己重新定义的,不是模型替你生成的。
相关阅读
- 《GPT-6 的回答里开始长出按钮了:生成式 UI 拆解,以及 A2UI 想当成的那层「标准」!》 —— 上一篇把生成式 UI 的协议层拆开,这篇聊它对软件产业意味着什么
- 《UHP 深度拆解:继 MCP 之后,Agent Harness 也要有自己的协议了!》 —— 编排与治理层为什么注定要独立于模型之外
- 《「在聊天框里点确认」撑不住了:Agent 的审批和权限,正在长成独立的一层》 —— 当界面开始生成「动作」,谁来决定这次点击是否被允许