Blog
Agent 时代的界面为什么反着做

我身边有个九岁的孩子,用 Claude Code 做了一款益智塔防游戏,叫《Panther Defense》。有美术,有关卡,有一条像模像样的故事线。他还把班上的同学一个个做成了游戏角色,给每个人配了原创的画。游戏现在能玩,链接就摆在那里:panther-defense.zeroliu.com。
放在三年前,这是天方夜谭。那个年代被叫作「计算机天才」的孩子,八九岁也做不出这种东西。我第一次看到成品的时候,是真的愣住了。
让他做到这件事的,当然是模型。模型已经聪明到,能让一个九岁的孩子做出一款完整的游戏——这份聪明是真实的,也是前提。
但聪明本身不会自动落到每个人手里。他读不懂一行代码,真正把这份聪明交到他手上的,是界面。他能看见 agent 在干什么:「我在画地图」「这里报错了」「下一步我要加一个敌人」。看得见,他就能纠错;能纠错,他就能继续。模型有多强是一回事,这份强能不能被一个九岁孩子调动起来,是另一回事,而后者由界面决定。
这个孩子就是我心里那张「有心力的白纸」的活样本:有想法,有热情,但什么技术都不会。所以真正值得想的问题,不是「模型够不够聪明」——它已经够了——而是:什么样的交互,才能让更多这样的白纸,驾驭得了越来越聪明的 agent?

现在的 agent 交互,是反着上个时代做的
我本身就是做 AI 产品的,对 AI 交互有些自己的想法。这两年我横向扒了一圈现在的 agent 产品——Codex、Claude Code、Cowork、Claude Artifacts、Google Stitch、Manus,把反复出现的交互零件拆出来看,发现一件挺有意思的事:这一代的设计,几乎是把上一代的信条反过来做的。
上个时代的软件,核心信条是「把复杂藏起来」。黑箱,减摩擦,最好你点一下,结果就出来,中间发生了什么你不用知道也不该知道。一个好产品的标志,是让你感觉不到它在工作。
agent 偏不。它要把过程亮出来,甚至在关键的地方故意给你加摩擦。流式输出,让你一个字一个字看着它说;计划清单,先把要做的几步列给你;过程透明,读哪个文件、跑哪条命令、改哪段代码,每一个动作都摊在你面前;改东西之前先给你一个 Diff,再设一道审批闸门,等你点「允许」才往下走;出错了不甩给你一串堆栈,而是说人话告诉你哪儿错了、下一步可以怎么办;甚至能把整条时间线回放一遍。
这些零件背后,其实有个挺工程的真相。模型吐出来的根本不是「一段文字」,是一条带类型的事件流:文本、思考、工具调用、工具结果,按顺序排着。前端做的事,本质是一个组件路由器,按类型把每一块分发给对应的组件,再随着 token 一点点增量渲染出来。我去读过一个开源 agent 的源码,里面真有这么一张路由表:文本块走文本组件,工具块走工具卡片,思考块走可折叠的块。你在工具卡片里看到「参数边打边出现」的那种顺滑感,工程根源就在这条「流、路由、增量渲染」的链路上。
但零件不是重点。把这些东西收口成一句话:现在的 agent 交互,就是把 AI 的每一步摊开,让人能看、能拦、能续。这是它跟上个时代最不一样的地方。

为什么偏偏要这么做
光说现状没意思,真正值得想的是:为什么是这套,而不是别的?我的答案有两面,一面在水上,一面在水下。
对用户这面:让普通人也能纠错
今天的模型干长活,一定会断。我自己天天用,断法逃不出三种。
第一种,任务一长,模型自己就迷失了。哪怕上下文给到 1M,它也会注意力衰减、忘事、绕圈,这就是所谓的上下文腐蚀,长度不等于记性。第二种,更朴素,网络断了。第三种最隐蔽:它从一开始就理解错了,你说 A,它听成 B,然后顺着 B 一路做到底,做得越认真离得越远。
正因为一定会断,界面就必须让你能看见它走偏、能拦住它狂奔、能从断点把它接回来。可见、可控、可恢复,说白了就是给一个不可靠的执行者配的一条安全带。
这条安全带的妙处,是它让白纸也能上手。那个九岁孩子读不懂代码,但他读得懂「我在画地图」「这里报错了」,于是他就能指挥一个比他强得多的东西。过程可见,本质上是一个让你跟比自己强的智能对齐认知的界面。这件事我觉得意义很大——它在衰减传统的数字鸿沟,甚至有机会帮人迈过智能鸿沟。我们其实已经走到一个后经验主义的时代了,过去那些要靠年头攒的 Know-How,正被模型和 agent 一点点蚕食掉。让一个连电脑都用不利索的人也能调动 agent 把事做成,这是我最近一直在想的事。
这一面,业界其实已经有不少共识。Karpathy 把它讲得很清楚:好的 AI 产品应该像一套「钢铁侠战衣」,是增强人、而不是甩开人去单干;他主张做「部分自治」的产品,给人留一个专门的界面和一个「自治度滑块」,让 AI 提议、人来确认或纠正,一边把人留在回路里,一边慢慢往上调自治度。做 agent 界面的人,做的差不多就是这件事。
对模型厂商这面:把用户放进回路,是一门好生意
但只讲到「为用户好」,是没讲完的。这套交互能成为行业默认动作,还因为它对模型厂商是一门相当划算的生意。这是水面下的那一半,我觉得也是这篇里最该说清楚的一点。
第一,它在帮厂商收训练数据。你每点一次「允许 / 拒绝 / 让它改」,其实都是在给一对结果贴偏好标签。RLHF 要的就是这种成对的「这个比那个好」的判断,拿去训一个奖励模型,再回灌进下一代。换句话说,审批闸门把每一个用户变成了不要钱的标注员,你的每一次否决,都喂给了下一版模型。这不是阴谋,是机制——只要交互长这样,数据就这么自然地流上去了。
第二,它在替模型的短板打掩护。今天的模型有两个挺硬的伤:token 慢,长上下文会腐蚀。流式输出把「慢」包装成了「观看」——你盯着字往外蹦,就不太会去想它其实没那么快。计划清单加分步执行,则把「长任务容易迷失」拆成了一串可控的小步,每步都短,绕开了上下文腐蚀最难受的区间。短板没补上,但被交互盖住了。
第三,它在表演智能。让 AI 在一个看得见的行动空间里一步步动作,读文件、跑命令、改代码、勾掉一个待办,比秒回一个结果更让人觉得「它真在干活,真聪明」。黑箱秒回反而显得廉价,像在偷工。把过程演出来,是在为「智能」这件事做现场演示。
所以我的结论是:现在这套交互不是凭空冒出来的审美,它是三股力收敛出来的产物:用户要纠错,厂商要数据,模型有短板。三股力恰好都指向同一个方向:把过程摊开。它能赢,是因为它同时喂饱了这三方。
但它一定不是终局
也正因为它是三股力的临时合力,我越来越确定:这套交互一定不是终局。它站在两个迟早会塌的前提上。
前提一,模型还不可靠,需要人盯着。可模型迟早能自主跑完长任务链,几十步、上百步连着做,不再需要你一步步审。到那天,闸门、回放、分步确认这些今天的「贴心」,会变成「碍事」。你想想,一个已经能稳稳跑完一百步的东西,每一步都停下来问你一句「可以吗」,那不是安全感,那是骚扰。
前提二,token 还慢。可一旦它快上 10 到 100 倍,「让你盯着它一个字一个字往外蹦」就从体贴变成了枷锁。现在这套「看着它干」的交互,反而会成为限制模型释放生产力的瓶颈,人成了流水线上最慢的那一环。
这不是空想,我自己已经有点这种体感了:今天这套交互,有点「满」了。它把过程铺得很开,信息很全,但说实话,它并没有真正让最强的那批人变得更快。很多时候,「看着它干」这件事本身,就是瓶颈。Karpathy 的那个「自治度滑块」之所以重要,恰恰因为它是个滑块,意味着会往上滑。今天我们停在偏「人盯」的那一档,是因为模型还没到;模型到了,滑块就会往自治那头走,今天这些精心设计的闸门也就到了该退场的时候。
所以我猜,终局会再反一次。当模型既可靠又飞快,界面会从「让你看着它、随时拦它」,变成「它替你把事想好,只在要紧的岔路口才回头问你一句」。不是不要界面,是界面退到背景里,只在真正需要你做决定的地方才浮上来。

回到那个孩子
说回那个九岁的孩子。他能做出一款有美术、有关卡、有故事的游戏,靠的是一个已经足够聪明的模型,再加上一层让他驾驭得了这份聪明的界面。模型给了力量,界面决定了谁能用上这份力量。
这层界面了不起,但它注定短命——它是为这一代「还不可靠、还很慢」的模型量身配的一条安全带,安全带的命运,就是等车足够安全的那天被解开。
真正的终局,我想是让白纸几乎感觉不到界面,就能调动顶级的智能,把心里想做的事做成。所以有点反过来说:我们今天拼了命去设计的这些「看得见的过程」,也许正是为了有一天,让它们体面地消失。
我上一篇写 AI 时代的 PM 到底在做什么,讲的是用 eval 和 benchmark 去对内定义 agent「该做什么」。这篇算是另一半:用界面去对外定义 agent「怎么把在做什么摊给人看」。一个让 agent 把事做对,一个让人敢把事交给 agent。两件事缺一不可。
最后留个开放的问题,也是我自己还没想透的:当模型既可靠又飞快,下一代 agent 的界面,到底该长什么样?
文中引用的业界观点参考:Andrej Karpathy 关于「部分自治产品」「自治度滑块」「钢铁侠战衣」的论述(Software 3.0 演讲);以及 RLHF 偏好数据的训练机制。其余为作者本人的思考与调研。