最近在用 Claude Code 写代码的时候,有个东西,我一开始完全没在意。

就是它在干活的时候,有时候会突然停下来,弹出一个选择界面。

在这里插入图片描述

有选项,有描述,方向键选择,回车确认。就像你在 RPG 里跟 NPC 对话,弹出的那种分支选择框。

一开始我根本没觉得有什么特别的。

AI 干活遇到需要我做决定的地方,停下来问一句,让我选一下,这不是理所应当的吗?

就像你让助手帮你订机票,他跑来问一句"东航还是南航",你回一句,他继续订。

天经地义的事。

但后来用得越来越久。用了几个礼拜吧,有一天我突然反应过来一个事情。

这个弹出来的选择框,技术上一点不稀奇。组件是提前写好的,AI 输出一个 JSON,前端匹配到对应的 UI 组件渲染出来。跟传统软件开发没有任何区别。

稀奇的是——该弹什么、什么时候弹、弹几个选项、选项内容是什么,这些全部是 AI 自己判断的。

不是设计师预先画好的页面流程。不是产品经理定的交互路径。

是 AI 在那一刻,根据上下文,自己决定的。

这跟传统软件完全不一样。

传统软件的页面流程是写死的——用户打开 A 页面,填表单,点提交,跳到 B 页面。每个人看到的都一样,不管你上一步说了什么。

但这里是——AI 看了你的上下文,自己判断"哦,这里需要问用户一个问题",然后自己决定问什么、怎么问。

展现逻辑的决策权,从设计师转移到了 AI 手上。

用完之后,它就消失了。再也不会出现。

一次性的。用完即焚。

然后我开始越想越不对劲。

这个功能在 Claude Code 里叫 AskUserQuestion。它让我开始想一些更大的事情。

一些说出来可能有人觉得我疯了的事情。


一. 一个写代码的,看到的东西不太一样

先聊聊这个 AskUserQuestion 是怎么回事。

Claude Code 是 Anthropic 出的编程工具,你可以在终端里跟它对话,让它帮你写代码、改 bug、重构项目。我平时用得最多,就拿它举例子。Cursor、Windsurf、Copilot 也有类似的交互,都一样。

重点是这个交互模式本身。

以前用开发工具,界面都是写死的。工具栏在哪、菜单在哪、设置面板有几个 tab,全部预先定好了。你打开 Eclipse 是这样,打开 VS Code 也是这样。你不需要说话,你只需要找到对应的按钮去点。

但 AI 编程工具不是这样。

你跟它说一句话,它去干活。干到一半,遇到需要你做决定的地方,它停下来,弹出一个选择界面。

在这里插入图片描述

比如它帮你装一个日期库,不会自己选一个就装了。而是弹出一个选择界面:date-fns、dayjs、Temporal,每个选项下面还有一句描述。你选完之后,它继续干活。

整个过程,就像你在指挥一个特别靠谱的助手。他遇到拿不准的地方就跑来问你,带着方案来问,不是空着手来问。你拍板之后他继续执行,绝不拖泥带水。

这个模式,大家已经习以为常了。

但我用了很久之后,某天突然反应过来一个事情——决定给你看什么界面的人,已经不是设计师了,是 AI。

以前,设计师画好页面 A → 页面 B → 页面 C,用户沿着这条线走。现在,AI 看了你的上下文,自己判断"这一刻该给你看一个选择框",于是弹了一个出来。你选完,它消失了。

展现逻辑的决策权,换了主人。

如果你把这个模式往外推一步呢?


二. 从"页面驱动"到"AI 决定展现什么"

这一下子让我想到了一件事情。

我之前做产品的时候,最头疼的就是表单设计。

一个信息登记页面,光"确定按钮放左边还是放右边"这种破事,就能跟设计师吵一个下午。然后字段顺序怎么排、校验规则怎么写、错误提示怎么措辞……搞来搞去搞了一个礼拜。

为什么这么费劲?

因为传统软件里,页面的展现逻辑是固定的。设计师必须在用户到来之前,把所有可能性都想好:用户第一步看到什么、点下一步看到什么、出错了提示什么、成功了跳哪里。所有人走同一条路,看同一个页面。

就像一本菜单。

菜品分类、配图、描述,全部排版妥当。你来餐厅了就翻菜单,翻到想吃的就点。菜单是提前印好的,谁来翻都一样。

这个模式统治了软件行业几十年。从桌面到 Web 到移动端,没变过。

交互设计的圣经《About Face 4》里面,花了大量篇幅讲怎么设计这些固定流程。怎么让用户在页面间导航,怎么减少认知负担,怎么让操作路径最短。

我自己把那本书翻烂了。

说实话,里面的东西到现在也不过时。但问题是,整个这套方法论的前提假设是——设计师要提前把用户可能走的每一步都设计好。

而 AskUserQuestion 打破的就是这个前提。

它不是"设计师画好了页面 A、B、C,用户按顺序走"。

它是"AI 根据用户当前说了什么、做了什么,自主判断这一刻该给用户看什么"。

展现逻辑不再固定了。它变成动态的了。

这就像你去了一家没有菜单的餐厅。

厨师不看提前印好的菜单,而是看你——你今天想吃什么、你有没有忌口、外面下不下雨、今天进了什么好食材——然后现场决定给你出什么选择。

你选一个,厨师去做。

选完之后,这个"菜单"就不存在了。下次你来,他出的可能是完全不一样的选择题。

以前是设计师把路铺好,用户沿着走。现在是 AI 看着你,临时给你铺一段路。走完了,路就撤了。

这个翻转。

太骚了。


三. 气泡渲染:一个越想越后怕的东西

想到这里,我开始往更大的方向想了。

如果"AI 自主决定展现什么"这个模式,不只是在终端里弹个选择框,而是推广到所有软件的交互场景呢?

如果未来人类跟软件的交互方式,真的变成了"在一个聊天框里发号施令",那所有的 UI,是不是都变成了聊天气泡?

先看一个最简单的例子。

以前你要做一个信息登记,得打开一个页面,上面有一大堆输入框:姓名、电话、邮箱、地址、紧急联系人……你一个个填,填完点提交。

在这里插入图片描述

流程是设计师定死的——打开页面 → 填表单 → 提交。每个人走的都是这条路。

但如果按照气泡渲染的思路,AI 会根据你说了多少,自主决定给你看什么。

第一种情况:你直接把信息说全了。

你说一句:“我要登记一下信息。张三,13800138000,zhangsan@example.com,住在朝阳区。”

AI 提取完信息,回一个气泡。气泡里面不是文字,而是一个小卡片。把你说过的信息逐条整理好展示出来,最底下,一个按钮:确认登记

你点一下,完事。
在这里插入图片描述

没有表单页面。没有一排排输入框。没有任何多余的东西。你该说的都说完了,AI 就只给你一个确认。

第二种情况:你没说全。

你说一句:“我要登记一下信息。”

AI 一听,啥信息都没给。于是它不做确认框——它在气泡里直接渲染出一个表单,姓名、电话、邮箱,该有的字段一个不少,你直接在气泡里填,填完提交。

看到了吗?

同一个功能,AI 根据你提供了多少信息,自主选择了完全不同的展现方式。

你信息给全了,它就给你一个确认按钮。

你信息没给够,它就给你一个表单。

没有设计师提前画好"用户必须走填表单这条路"。AI 自己判断的。

好,这是最简单的场景。你可能会说,这不就是把固定流程变成了动态选择嘛,有什么大不了的。

当你觉得做到这一步已经挺厉害的时候,更牛的来了。

再看一个复杂点的。

差旅报销。

按过去,你得打开报销系统。选项目、填行程、上传发票、选费用类型、一个一个金额手动录。录完提交,被打回来,因为发票日期和行程日期对不上。改了再提交,又被打回来,因为超过报销标准了。

来来回回搞三天。

我之前自己做公司报销的时候,光搞这个就能给我整崩溃。

但如果按气泡渲染的思路——

你直接把一堆照片往聊天框里一丢:“这个月出差北京,帮我报销一下。”

AI 识别所有发票,自动关联行程,自动匹配费用类型,自动算金额。

然后在气泡里弹出一个卡片:行程摘要 + 费用明细 + 合规性检查。底下两个按钮:确认提交 / 有异议
在这里插入图片描述

你点确认。

完事。

三天变三秒。

还没完。

再看一个更狠的。

项目管理。

以前开一个新项目,你得打开 Project 或者 Jira。建项目、建任务、分配人、设截止日期、搞看板……一套操作下来半天没了。然后你还得教团队怎么用这个工具。光培训就搞两场。

但如果按气泡渲染的思路——

你说一句:“帮我开一个新项目,要做个官网,下个月底上线。前端小王,后端小李,设计小张。”

AI 自动拆任务、自动分配、自动排期。

然后在气泡里渲染出一个临时的看板页面。

不是跳转到 Jira。是直接在聊天框里给你生成了一个看板。

你能拖拽卡片,能改截止日期,能加备注。

用完之后关掉,下次打开是另一个完全不同的页面。

这已经不是在聊天框里放了个表单了。

这是在聊天框里,生成了一整个应用。用完即焚。

说人话就是:以前是人去适应设计师画好的页面流程。

现在是 AI 根据你说了什么,自主决定给你看什么。

以前是人找功能。现在是功能找人。以前是设计师定流程。现在是 AI 定展现。


四. 不是所有东西都该变成气泡

说到这里,我自己也觉得有点上头了。

冷静下来想想。有很多场景,聊天并不是最好的交互方式。

比如你要填一个 50 个字段的企业报表。

用自然语言一个个描述?那个信息密度太低了。一句话说三个字段,你得说十七八句。效率还不如直接在表格里一个个敲。

比如你要调整设计稿里一个元素的像素级位置。

你当然可以说"往右移 2px"。但如果你要连续微调十几次,用鼠标拖明显更直觉、更高效。

就像你让一个人帮你调吉他弦,你用嘴说"紧一点……再紧一点……过了过了松一点",跟你自己拧弦钮比,哪个快?

再比如你要浏览商品列表进行比较。

滑动+筛选的体验,大概率比"给我看红色的大衣"然后 AI 返回一个气泡要好。

因为浏览本身就是一种探索,你不知道你想买什么,你在找。找的过程需要眼球快速扫描,这个聊天做不到。

心理学上有个概念叫"选择过载"——当选项超过一定数量时,人反而做不了决定。

传统的解决方案是分类、筛选、排序。气泡渲染解决不了这个问题,甚至可能让问题更严重。

所以我说,未来更可能的形态,不是一个极端取代另一个极端。

而是一个分层结构

简单的事情,纯对话就行。

"帮我约明天下午三点的会议。"一句话搞定,连气泡都不用。

稍微复杂一点的事情,AI 在气泡中渲染一个微型交互组件。就像 AskUserQuestion 在终端里弹出的那个选择框。选项不多,决策很快,选完即消失。

再复杂一点的事情,AI 生成一个临时页面。

一个真正的、有布局有样式的页面,但它只在这一次任务中存在。用完即关,下次生成的可能是完全不同的页面。

最专业的事情,还是调起专业工具。

Figma 做设计、IDE 写代码、Excel 做分析。这些工具的交互密度太高了,不是一句话能替代的。Agent 可以帮你操作它们,但这些工具本身的界面形态不会消失。

说实话,写到这我自己都觉得,这可能是我个人的过度脑补。

一个终端里的选择框,就看到了未来软件的终极形态?

是不是有点扯。

但是。


五. 真正被改变的,是"入口"

但是。

不管我脑补的这些具体场景对不对。有一件事我觉得是确定的。

软件的入口,正在从"页面"变成"意图"。

传统的软件,用户要完成的操作是:打开 App → 找导航 → 找到对应功能 → 操作。

你得先知道这个功能在哪个 tab 下面,你得学会这个软件的信息架构,你得记住那个设置页面藏在三级菜单的哪里。

我自己做产品的时候就深有体会。

你花了大量时间设计信息架构、设计导航、设计面包屑,本质上就是在帮用户解决一个问题:帮他找到他想找的东西。

但 AI 时代的软件,这个需求直接消失了。

说出你的意图 → AI 找到最佳路径 → 渲染最小必要的界面给你确认。

用户不再需要知道功能在哪。AI 知道就行。

这意味着什么?

意味着不再需要首页了。

不再需要导航栏、面包屑、tab 切换。

不再需要用户去学习你的信息架构。

UI 的设计重心,从"页面布局"变成了"对话流设计"和"组件生成策略"。

设计师的工作,从"设计一个页面让用户在上面操作",变成了"设计一套规则,让 AI 知道什么时候该生成什么界面"。

这就像……

以前你是一个建筑师。你要设计一栋楼的每一层、每一个房间、每一条走廊,让住户自己去找到想去的地方。楼盖好了,住户进来迷路了,你得在走廊上贴指示牌,在转角处放地标。

现在你变成了一个管家。

住户说一句"我想看书",你要判断他是想在客厅沙发上随便翻翻,还是想去书房认真啃一本大部头。然后带他去最合适的地方,甚至帮他打开灯、泡好茶。

以前的设计是"空间设计"。

未来的设计是"服务设计"。

能力要求完全不同了。


六. 写在最后

凌晨三点。写完这篇稿子。

说实话,我自己都有点不确定。一个 Claude Code 终端里的选择框,就让我看到了"软件的终结"?

是不是想太多了。

我之前写过一篇文章,叫《AI,正在吞噬所有软件》。

当时写的是 Agent 如何通过 Skill 和 API 取代传统软件的功能。软件不再是一个个独立的 App,而是 Agent 身上的一个个能力。

但这次,我觉得 Marc Andreessen 那句 “Software is eating the world”,可能要被倒过来了。

World is eating the software。

软件这个概念本身,可能正在被消解。

不再是独立的 App。不再有固定的界面。

只有 Agent 和能力注册,用户按意图调用。

需要界面的时候,临时生成一个。

用完了,就消失了。

就像 AskUserQuestion 那个选择框一样。

出现的那一刻,你甚至不会意识到它是被"设计"出来的。

它只是在那个特定的时间点,为那个特定的问题,存在了那么一瞬间。

然后就不见了。

我不知道这个未来什么时候来。

可能三年,可能五年,可能更久。

也可能,它已经来了,只是我们还没注意到。

但我知道的是,当那个选择框在终端里弹出过无数次之后。

有一天我突然反应过来的那个瞬间。

浑身起鸡皮疙瘩。

就像 2007 年,第一次用手指在 iPhone 屏幕上滑动的时候。

你说不清楚它到底哪里不一样。

但你知道,有些东西,回不去了。


以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐