我最近在 Claude Code 里跑 superpowers 的工作流,走到需求澄清那一步时,它没有在终端里问我问题——它起了一个本地服务,浏览器里弹出一张页面,把布局草稿、配色选项、组件方案排成卡片让我点选。我第一反应是”这插件真花哨”。查完资料之后我改了判断:这不是花哨,这是一个正在收敛的趋势的前哨。同一个动作——把”和人确认”从聊天文本升级成结构化界面——过去一年在工具层、协议层、生成层、研究层同时发生。这篇讲清楚:为什么偏偏是”澄清”这一步长出了界面,它会往哪走,以及哪些部分我认为是趋势、哪些还是泡沫。
一、先看事实:同一个动作在四层同时发生
先把观察对象说死。我遇到的那个东西叫 Visual Companion,是 superpowers 插件 brainstorming(澄清)阶段的可选功能:Claude 生成一个临时 HTML 页面并在浏览器打开,把设计方案的候选项可视化,人选完它再动手写码(DataCamp 的评测称之为”在写出正确代码之前,先消灭『为错误设计写出正确代码』”)。superpowers 是 Claude Code 生态里最流行的插件之一,它的整个方法论我之前写过一篇:《从提示词到工作制度》——澄清页面只是它”把工作上下文结构化”哲学的最新延伸。
如果只有这一个插件这么干,那是作者品味。但把镜头拉远,四层证据摆在一起:
工具层——澄清从自由文本变成官方内置的选择题。 Claude Code 在 v2.0.21(2025 年 10 月)加入了 AskUserQuestion 工具:模型执行中遇到意图不明时,暂停并弹出结构化多选题(带”Recommended”标记、支持自定义输入、限时自动关闭),而不是猜一个假设继续跑。注意这是模型可以主动调用的工具,不是 UI 皮肤——“问人”第一次成了和”读文件""跑命令”并列的一等动作。
协议层——澄清界面被写进跨厂商标准,而且升级了两次。 这条线最能说明收敛:
- 2025-06-18,MCP 规范新增 elicitation:服务器可以发
elicitation/create请求,附带 JSON Schema,客户端渲染成表单让用户填,用户可拒绝可取消。这是表单级澄清入协议。 - 2025-11-21,Anthropic 和 OpenAI 联署提出 MCP Apps 扩展(SEP-1865),与 MCP-UI 社区(Ido Salomon、Liad Yosef)合作:引入
ui://资源、沙箱 iframe 渲染、界面与对话双向通信。这是网页级澄清入协议。2026 年 1 月它成为 MCP 首个官方扩展,Claude、ChatGPT、VS Code Copilot、Cursor 等都在支持矩阵里;2026-07-28 的规范版本把它并入扩展框架。两个直接竞争的公司为”agent 给人递界面”联署同一份标准——这种事在收敛度判断里权重极高。 - 同期还有第三条协议线 AG-UI:事件流协议(约 16 种标准事件类型,SSE 传输),定位是 agent 栈的”第三支柱”——MCP 管 agent 连工具,A2A 管 agent 连 agent,AG-UI 管 agent 连人,human-in-the-loop 审批是它的头号场景,AWS、微软 Agent Framework 都已接入。
生成层——界面本身开始按需生成。 2025-11-18,Google 在 Gemini 3 上线 Generative UI:对任意 prompt 现场生成完整交互界面(配套论文标题就叫 “Generative UI: LLMs are Effective UI Generators”)。Jakob Nielsen 的分析给了一个我认为比 demo 更重要的定性:软件界面从”造一次服务百万人的资产”变成”为单次上下文生成、用完即弃的一次性软件(ephemeral software)“。superpowers 那张临时 HTML 页面,就是一次性软件的手工版。
研究层——“何时问、怎么问”正在从直觉变成可优化的目标函数。 2024 年的 Learning to Ask(arXiv:2409.00557)先把问题定住:真实用户指令充满缺信息、指代模糊、包含错误、超出工具能力四类噪声,并造了 NoisyToolBench 来测 agent 该不该问。2026 年这条线密集加速:ClarEval(arXiv:2603.00187)直接批评现行评测在奖励”猜”——理想化 benchmark 里蒙对意图就得分,压根不考察对齐对话能力;RegretBench(arXiv:2607.21143)把澄清形式化为序贯决策问题(要不要问、问什么、何时停、何时答),用 regret 度量澄清策略的损失;arXiv:2606.03135 干脆给澄清问题设计了信息增益奖励(用贝叶斯信念向真实目标的更新量给问题定价)拿去做训练;arXiv:2606.19559 把 agent 的不确定性拆解成”行动置信度”和”请求不确定性”两个可分别测量的量。
四层拼起来是一条完整传导链:研究层回答何时问,工具层给出问的动作,协议层统一问的载体,生成层让载体本身可以现场制造。
timeline
title 澄清界面化的收敛时间线
1999 : Horvitz 混合主动性原则<br>打断人要算期望效用
2025-06 : MCP 规范新增 elicitation<br>表单级澄清入协议
2025-10 : Claude Code v2.0.21<br>内置 AskUserQuestion 选择题
2025-11 : MCP Apps 提案 SEP-1865<br>Anthropic 与 OpenAI 联署 : Google Generative UI<br>界面按需生成上线 Gemini
2026-01 : MCP Apps 成为<br>MCP 首个官方扩展
2026-07 : MCP Apps 并入规范扩展框架<br>工作流层实践普及
二、为什么偏偏是”澄清”这一步长出界面
功能罗列不解释任何东西,值得问的是:agent loop 里有那么多步骤,为什么界面偏偏从”澄清确认”这一步长出来?
因为澄清是整条 loop 里人机信息不对称最大的一点。 Agent 读代码、跑测试、查日志,这些步骤它掌握的信息不比人少;唯独”你到底想要什么”,信息 100% 在人脑子里,模型只能靠猜或者问。猜错的代价随 agent 自主性水涨船高——它一次跑得越久、动的文件越多,一个错误假设污染的下游工作就越多。这正是 ClarEval 抨击”奖励猜”的原因:猜在 benchmark 里是免费的,在生产里不是。
而”问”也有代价。这笔账 1999 年就有人算过:Eric Horvitz 在 CHI’99 的混合主动性界面原则里给出了框架——系统在”自动行动”与”询问用户”之间应该按期望效用选择,其中打断用户的注意力成本是不等式里的显式项。用今天的话翻译:
(这是我对 Horvitz 期望效用框架在 agent 场景下的改写,不是原文公式。)
这个不等式里藏着整个趋势的第一性解释。模型能力提升会缓慢压低 ;agent 自主性提升会快速推高 ;而界面化攻击的是右边两项——
- 选择题(AskUserQuestion)把 从”组织一段自然语言”压到”按一下键”;
- 表单(elicitation)把多轮追问压缩成一次结构化填写;
- 网页 mockup(Visual Companion / MCP Apps)把”在脑内想象设计再用文字描述偏好”压到”看见三个方案,点一个”——对视觉决策,这是几十倍的应答成本差。
所以我的核心判断是:澄清界面化的真正目的不是让 agent 更会问,而是把人的应答成本打到足够低,让”该问”的区间变宽。 右边越便宜,不等式在越多场景下成立,agent 就能在更多本来只能靠猜的地方选择问。界面不是装饰,是给 Horvitz 不等式的右侧做参数优化。
反过来这也解释了为什么纯文本澄清没有成为终局:文本是一条低带宽串行通道,问三个问题就要三轮往返,每轮都全额支付打断成本;一张页面把 N 个决策点并行铺开,打断一次,收回全部答案。
三、一次澄清的解剖:载体谱系怎么选
把上面的分析落成工程视角,一次澄清动作会经过这样的流水线:
flowchart TD
A[模型侦测意图不确定性] --> B{值得打断吗<br>期望效用判断}
B -->|否| G[按最优猜测继续执行]
B -->|是| C{决策的形态}
C -->|开放探索| D1[自由文本追问]
C -->|有限选项| D2[选择题<br>AskUserQuestion]
C -->|字段明确| D3[结构化表单<br>MCP elicitation]
C -->|视觉或多维方案| D4[临时网页<br>Visual Companion / MCP Apps]
D1 --> E[人应答]
D2 --> E
D3 --> E
D4 --> E
E --> F[结构化答案回流上下文]
F --> G
四种载体不是替代关系,是按”决策形态 × 应答成本”分工的谱系——这里用灰度思维给一张选型表:
| 澄清载体 | 应答成本 | 表达带宽 | 适用决策 | 代表实现 | 不适用 |
|---|---|---|---|---|---|
| 自由文本 | 高(组织语言) | 低、串行 | 开放式探索,选项无法枚举 | 所有 chat | 选项其实可枚举时——浪费人 |
| 选择题 | 极低(按键) | 中 | 3–4 个可枚举分支的路线决策 | AskUserQuestion | 需要看见才能判断的视觉决策 |
| 结构化表单 | 低 | 中(并行字段) | 字段明确的参数收集 | MCP elicitation | 探索期——字段还没定义出来 |
| 临时网页 | 低(点选) | 高(视觉并行) | 设计方案、布局、多维对比 | Visual Companion、MCP Apps、Generative UI | 一句话能说清的事——杀鸡用牛刀 |
注意最后一列:不是所有澄清都该界面化。“要不要我顺手把这个 typo 修了”弹一张网页是灾难。界面化有自己的固定成本(生成、渲染、切换窗口的注意力迁移),只有当决策密度够高(一次页面收回多个答案)或表达带宽差距够大(视觉方案)时才划算。这就是 Horvitz 不等式的另一面——右边的 里,弹网页比行内选择题贵。
四、收敛度判断:哪些已成定局,哪些还在赌
按决策地图系列的口径(存在论文讲清原理 + 多家生产系统落成默认组件 = 收敛),对这个趋势分层打分:
| 层 | 收敛度 | 判据 |
|---|---|---|
| 工具层:结构化提问成为 agent 一等动作 | ✅ 收敛 | AskUserQuestion 官方内置且默认开启;plan mode 协同;社区已在此之上建工作流 |
| 协议层:澄清/确认界面的标准载体 | ✅ 收敛 | MCP elicitation 入规范一年余;MCP Apps 由两家直接竞争的厂商联署并落为首个官方扩展,客户端支持矩阵横跨 Claude/ChatGPT/Copilot/Cursor |
| 生成层:界面按需生成、用完即弃 | ⚠️ 半收敛 | Google 有论文有产品,人类评估者偏好显著;但怀疑派指出复杂真实任务中结构性和一致性会崩,生产级案例还少 |
| 策略层:何时问、问什么的最优策略 | ❌ 未收敛 | benchmark 三个月内出了一批(ClarEval、RegretBench 等),reward 设计还在论文阶段,没有一家的”打断策略”成为公认默认 |
这张表也是对”这是不是趋势”最诚实的回答:载体已经收敛(问什么形式),策略远未收敛(何时该问)。 前者可以放心抄,后者值得盯住论文流。
五、三个预见
以下是观点和推断,不是已发生的事实——按我的置信度从高到低排。
预见一:确认界面会向不可逆边界聚集(置信度高)
门禁篇的结论是:门禁应该设在不可逆性跃迁的边界上。澄清界面就是门禁的人机形态——那么它的分布也会遵循同一条定律:部署确认、数据变更、对外发信、花钱下单这些不可逆动作前,将标配一张 agent 生成的确认 surface;而可逆动作(改个本地文件)的确认会越来越少,直接做了靠 diff 回看兜底。今天的雏形已经在了:Claude Code 的权限提示是最简版,MCP Apps 的沙箱 iframe 是标准版。推断的依据是两条已收敛定律的交集,所以置信度高。
预见二:聊天框退位为入口,一次性界面成为耗材——并制造新的验证真空(置信度中)
“对话式 UI 取代一切界面”喊了三年,我认为正在发生的是它的反面:对话负责路由,界面负责决策。聊天框退化为万能入口,一旦进入具体决策,agent 现场生成一张恰好适配这个决策的一次性界面,用完即弃。Nielsen 说的 ephemeral software 意味着界面从资产变成耗材——没有版本、没有测试、没有设计评审。
这直接把前端三条战线的问题推进一步:当界面由 agent 现场生成、只活五分钟,谁来保证它没把选项标签写反、没把”确认删除”和”取消”摆反位置?这是独立验证真空的界面版——生成澄清界面的 agent 和依赖澄清结果行动的 agent 是同一个,界面错了,人点得再准也是在错误的选项集里选。我猜测(未验证)会出现”确认界面的 lint/静态检查”这类工具生态位:对一次性界面做毫秒级的结构校验(选项与后续动作的绑定是否一致、危险操作是否有二次确认),就像今天对生成代码跑类型检查一样。
预见三:澄清将成为被评测、被训练的一等能力(置信度中高)
RegretBench 把澄清形式化为策略,信息增益 reward 把它变成训练目标——沿着评测系列的逻辑推:下一步就是澄清质量进入模型评测的常规科目,再下一步进入产品的路由决策(哪个模型更会在恰当时机问恰当问题,就把高歧义任务路由给它)。间接证据是厂商行为:Anthropic 把 AskUserQuestion 做成默认开启的内置工具,等于在生产流量里收集”问 vs 猜”的真实偏好数据——这正是把能力从工具层下沉到模型层的标准前奏(类比:工具调用先有 ReAct 式 prompt hack,再有 function calling 微调)。这一句是我的推断,Anthropic 没有公开说过这个意图。
反方观点:澄清疲劳是真实的
绿灯思维,接住最强的反对:AskUserQuestion 上线两天就有用户开 issue 要求关掉它——理由是被锁进线性多选流程,失去了自由度。这个抱怨完全成立:对高技能用户,打断成本高于平均;对定义清晰的任务,任何问题都是噪声。 Generative UI 的怀疑派同样有理:demo 里的界面是精选的,真实复杂任务里生成的界面会在结构性上露馅。
但注意这两个反对攻击的都是策略层(何时问、给谁问、问多少)——恰恰是上表里 ❌ 未收敛的那层——而不是载体层。“它问得太多太笨”和”问的时候该用界面”是两个独立命题。Horvitz 的框架早就容纳了这个反对:打断成本因人因时而变,所以策略必须个性化、上下文敏感。澄清疲劳不会杀死澄清界面,它会逼出更好的打断策略——就像通知疲劳没有杀死推送,杀死的是无差别推送。
六、元规律:确认带宽定律
控制面迁移史那篇的主线是:每次控制面迁移都拿确定性换能力,然后人类立刻在新的一层重建确定性。澄清界面就是这个循环的最新一站——agent 拿走了执行的控制权,人类在”意图传输”这一层重建控制,而且用的是比源代码时代带宽更高的载体。
收束成一条可复用的定律:
确认带宽定律:agent 自主性每升一级,人机边界上就会在「意图不确定性 × 行动不可逆性」最大的点长出确认界面;界面演进的方向不是让 agent 问得更多,而是让人的单位应答成本更低——应答越便宜,agent 敢于自主的半径反而越大。
最后一句是这条定律最反直觉的推论:更多的确认界面不是自主性的倒退,是自主性的前提。 刹车做得越好,车才敢开得越快。
| 带走的东西 | 一句话 |
|---|---|
| 事实 | 澄清界面化已走完 hack→官方工具→跨厂商协议 的收敛链,载体层已收敛 |
| 解释 | 界面化优化的是 Horvitz 不等式右侧:人的应答成本,不是 agent 的提问能力 |
| 选型 | 按决策形态选载体:可枚举→选择题,字段明确→表单,视觉多维→临时网页 |
| 预见 | 确认界面向不可逆边界聚集;对话路由+一次性界面决策;澄清进评测科目 |
| 风险 | 策略层未收敛:澄清疲劳真实存在;一次性界面有验证真空 |
诚实的提醒
- 本文所有产品行为、日期、规范条目均来自当日检索核实的公开来源(正文带链),但我没有亲手复现其中任何数字:Nielsen 的”90% 用户偏好生成界面”、各论文的 benchmark 分数、superpowers 的 star 数(教程称约 24.8 万,二手来源)都属”核实过的来源”档而非”亲手测出”档。
- “确认带宽定律”和三个预见是我的推断,置信度已逐条标注;Horvitz 不等式的写法是我的改写,原文是效用理论表述。
- 成本最低的亲手验证实验(约一小时):写一个 20 行的最小 skill,让 agent 在动手改代码前把 2–3 个候选方案渲染成单文件 HTML(选项按钮把选择写进本地 JSON),在同一个中等歧义任务上跑两遍——一遍纯文本澄清、一遍页面澄清——数两个数字:澄清轮次和返工次数。这能让你亲手摸到”应答成本”这个变量,也正是流畅错觉那篇立下的账本规矩。
参考来源
工程实践
- superpowers 插件(obra/superpowers)与 DataCamp 评测、Builder.io 分析
- Claude Code 工具参考:AskUserQuestion;issue #10258(用户要求可关闭)
- MCP elicitation 规范(2025-06-18)
- MCP Apps 官方博客(SEP-1865,2025-11-21);首个官方扩展落地报道;The Register 报道
- AG-UI 协议与 CopilotKit 定位文章、AWS Bedrock AgentCore 集成
- Google Research:Generative UI;Jakob Nielsen 的分析
论文
- Horvitz, Principles of Mixed-Initiative User Interfaces, CHI 1999
- Learning to Ask: When LLM Agents Meet Unclear Instruction(arXiv:2409.00557)
- ClarEval: A Benchmark for Evaluating Clarification Skills of Code Agents(arXiv:2603.00187)
- One More Turn, Less Regret: A Regret-Based Multi-Turn Benchmark for LLMs’ Clarification Policies(arXiv:2607.21143)
- Uncertainty-Aware Clarification in LLM Agents with Information Gain(arXiv:2606.03135)
- Uncertainty Decomposition for Clarification Seeking in LLM Agents(arXiv:2606.19559)
- Agentic Coding Needs Proactivity, Not Just Autonomy(arXiv:2605.06717)