fedorthinks

速成课 · No. 30

大多数 AI 课程讲的是引擎。这一门讲的是搭在引擎之上的体验——以及它正中央那条硬道理:模型自信、流畅、却有时会出错。好的 AI 产品设计不是去掩盖这一点,而是为它而设计——设定诚实的预期、展示过程、让人始终掌控、优雅地失败。赢得信任的是设计,而不是模型。

19 个概念 · 每个都配图示 · 结尾附速查表

§ 01

整门学问的起点,是接受模型本来的样子:聪明、有用,却以一种特定的方式不可靠。假装并非如此的设计,会让用户栽跟头。

地图:六组概念

一张地铁线路图:先看整条线路,再一站一站地坐过去。

本课的概念分成六组。第一组讲模型本身的性质。其余五组是设计给出的五个应对:诚实的预期、展示过程、让人掌控、优雅地失败和反馈回路。第七章把它们串起来,并补上收尾的原则——Design for the Unhappy Path。

Fallible modelFallible componentTrust by designAutonomy calibrationHonest expectationsAI disclosureDraft framingUnder-promiseShow the workCitationsVerifiabilityConfidence signalsHuman in controlSuggest, don't actEditable outputConfirm & undoFail gracefullyAbstentionLow-confidence routingGraceful degradationFeedback loopFeedback controlsCorrections as signalProd → evals
六组概念——第 1–6 章依次讲它们。第 7 章把它们连起来。

怎么读每个概念

一本护照:每个人的栏目都一样,所以方便对照。

从这里开始,每个概念都有相同的几个部分:一个英文名称(记住它——这是你在文章和指南里搜索用的术语)、一幅来自日常生活的画面、一张图示,以及一张带字段的卡片:问题、思路、例子、代价、何时使用和关联。整门课的唯一一条规则:模型会出错,而设计决定这件事会变成什么。

Fallible Component — 模型哪怕出错也一样自信

一位魅力十足的专家,给每个答案都用同样笃定的语气说出来——对的和瞎编的,听起来一模一样。

语言模型产出的输出流畅而自信,无论对错。它的错误不会带着忧虑的语气,也不会打上标记。这就是会出错的部件(fallible component)——AI 产品定义性的设计难题。界面无法指望模型自己发出不确定的信号:它答对时和胡说(hallucinating)时听起来一样笃定。

于是设计必须承担起模型不会承担的东西:关于可靠性的提示、留给核查的余地、可供恢复的途径。你是在围绕一个自信而会出错的部件包裹一层用户体验。

LLMfluent outputRight answersounds 100% sureHallucinationsounds 100% sureDesign layerreliability cuesroom to verifyways to recoversame tone, no warning flag — the design must carry the signal
正确的答案和胡说的答案听起来一样笃定。只有设计这一层能帮人把它们区分开。
ConceptFallible Component· 自信却会出错
是什么
一个答对时和瞎编时听起来一样笃定的模型。
为什么重要
界面无法指望模型自己标出它的怀疑。
例子

一个助手信心十足地引用了一条根本不存在的法律条文——语气和引用真条文时一模一样。

陷阱
如果设计忽略这一点,错误就会作为事实送到用户面前。
关联
整门课由此展开:Trust by Design、Verifiability、Abstention。

Trust by Design — 信任由设计建立,而非模型

你信任一家好银行,不是因为柜员永不出错,而是因为有回执、有对账单、还能对一笔扣款提出申诉——这套系统赢得了人单凭一己之力赢不到的信任。

用户不会因为某个 AI 功能强大就信任它。他们信任它,是因为围绕它的体验让他们觉得安全:他们能核查它、纠正它、撤销它,并知道会发生什么。这就是 trust by design:模型提供能力;设计提供信任。

一个绝妙的模型放进草率的界面里会显得不可信;一个平庸的模型放进周到的界面里则显得可靠。信任是你所造产品的属性,而不是你所用模型的属性。

Modelsupplies capabilityDesigncheck · correct · undoTrusted productsafe to rely oncapabilitytrusta brilliant model in a careless UI still feels untrustworthy
模型带来能力,设计带来信任。两者合在一起,才是一个可以依靠的产品。
ConceptTrust by Design· 信任是产品的属性
是什么
信任是整个产品的属性,而不是模型能力的属性。
如何运作
用户能核查、纠正、撤销,并且知道会发生什么。
例子
银行:信任靠的是回执、对账单和申诉的权利——而不是一个永不出错的柜员。
陷阱
一个强大的模型放进草率的界面里,依然显得不可信。
关联
由课程里的每一组共同构成:预期、核查、掌控、失败、反馈。

Autonomy Calibration — 让自由度与风险相匹配

你乐意让工具自动改正一个错别字,但在它发出一封法律函件之前,你想把每个字都读一遍——同一台引擎,护栏却大不相同。

你给 AI 多大的自由,应当取决于出错的代价有多高。这就是 autonomy calibration(自主权校准)。低风险、容易撤回的输出(一个建议的标签、一句草稿)可以更自动一些。高风险、无法撤回的操作(转账、删除数据、发布)则需要审核和确认。

这是 AI 产品设计中最重要的一个决定。两个方向都可能做错:自由给得太多,功能就鲁莽;给得太少,功能就胆怯得毫无用处。

low stakes · reversiblehigh stakes · irreversibleAuto-applyfix a typoSuggest + reviewdraft an emailConfirm requiredsend moneymore autonomymore control✗ too much autonomy = reckless✗ too little = uselessly timid
一把风险的标尺:出错的代价越高、越无法撤回,自主权就越少,控制就越多。
PrincipleAutonomy Calibration· 自主权与风险相匹配
问题
对所有操作给同样的自由:要么有风险,要么没用。
思路
让自主权随出错的代价和操作的可撤回程度而调整。
例子
错别字——自己改;邮件——起草后交人审阅;付款——只有确认后才执行。
代价
你得为每一个操作单独判断风险。
何时使用
始终——每个 AI 功能都要做这个决定。
关联
决定哪里需要 Suggest, Don't Act 和 Confirm & Undo。

模型哪怕出错也一样自信,所以设计必须承担起它不会承担的东西:可靠性的提示、留给核查的余地、可供恢复的途径。信任由产品建立,并与风险相匹配。

§ 02

AI 带来的大量失望,其实是预期不匹配。在用户栽跟头之前,诚实地告诉他们面对的是什么——这是你能买到的最便宜的信任。

AI Disclosure — 告诉用户这是 AI,而且可能出错

天气预报说“有 70% 的概率下雨”,而不是“会下雨”——先把不确定性说出来,即使预报不准,人们也依然信任它。

AI disclosure(AI 披露)是指坦率地说明某个功能由 AI 驱动,而且它的输出可能不完美。这不是道歉,也不是软弱——而是校准。知道自己拿到的是 AI 建议的用户,会恰当地去读它:有用、值得核对,但不是金科玉律。

隐瞒输出由 AI 生成,或者暗示它具有权威性,会让人过度信任,等它出错时又觉得被背叛。诚实的表述,能把一个错误的答案从一次背叛,变成一件意料之中、可以应对的事。

✗ hidden✓ disclosedAnswerAI-generated · may be wronglooks authoritative → betrayalhonest → expected, manageable
左:答案看起来很权威,所以出错就像背叛。右:一个“AI 生成,可能有误”的标签,让出错变成意料之中。
PracticeAI Disclosure· 说明这是 AI
问题
用户把 AI 的答案当作权威,出错时觉得被骗。
思路
清楚地标明:这是 AI 做的,可能不完美。
例子
答案上方有一个“AI 生成 · 可能有误”的徽标。
代价
几乎没有——界面上多一行字。
何时使用
凡是用户能看到模型输出的地方。
关联
与 Draft Framing 一起,让用户对模型保持正确的姿态。

Draft Framing — 把输出呈现为草稿

文件上盖一个手写的“草稿”章,你读它的方式就变了——你把它当作有待改进的起点,而不是必须服从的定论。

输出周围的措辞,决定了用户会多信任它。Draft framing(草稿式表述)是指把 AI 的结果呈现为草稿、建议或起点,而不是定稿的权威答案。它邀请用户带着批判的眼光去读、去改——这正是对待一个会出错的工具应有的姿态。

“这是一份你可以修改的草稿”,比“这就是答案”带来更好的结果、更少的事故。这种表述默默而持续地起作用,让用户与模型保持正确的关系。

“Here's the answer”final verdictUser obeyserrors pass through“Here's a draft”you can edit itUser reviews + editserrors get caughtsame model, same output — the framing changes the user's posture
同一个模型,同一段文字。“这就是答案”——用户照办。“这是一份草稿”——用户核对并修改。
PatternDraft Framing· 草稿,而非裁决
问题
用户不加核对就接受“定稿的答案”。
思路
把输出呈现为可编辑的草稿或建议。
例子
用“起草回复”按钮代替“回复”;文本在编辑器中打开。
代价
用户得多走一步——阅读并接受。
何时使用
用于文本、决策,以及用户事后要为之负责的任何事。
关联
自然通向 Editable Output 和 Suggest, Don't Act。

Under-promise, Over-deliver — 不要夸大

推销员保证某个小玩意儿什么都能做,会让你觉得被骗;而告诉你它到底擅长什么、不擅长什么的人,赢得的是长久的信任。

把 AI 功能宣传成魔法很诱人,但夸大必然带来失望:承诺与现实之间的落差,会变成用户的体验。under-promise, over-deliver(少承诺、多兑现)的原则,是把预期定得略低于模型的实际能力,让它带来惊喜。

诚实地说明它的局限——哪怕说得很醒目——建立的信任,远比第一次失败就被击碎的炒作更持久。

gap = disappointmentpleasant surprisepromiserealitypromiserealityOversellUnder-promise
左:承诺高于现实,落差变成失望。右:承诺低于现实,现实带来惊喜。
PracticeUnder-promise, Over-deliver· 不要夸大
问题
“这是魔法”式的宣传——第一次失败就击碎信任。
思路
承诺的比模型能做的少一点;诚实地说出它的局限。
例子
“帮你起草邮件”,而不是“替你写出完美的邮件”。
代价
推介时,这个功能听起来更谦虚。
何时使用
在引导页、落地页、提示语里——凡是设定预期的地方。
关联
诚实表述的一部分,与 AI Disclosure 相伴。

大多数 AI 带来的失望,都是预期不匹配。说明这是 AI、可能出错,把输出表述为草稿而非裁决,并且少承诺——诚实的表述是最便宜的信任。

§ 03

无法核查的答案,就无法信任。让用户看到输出从何而来,就把黑箱式的断言变成了可以验证的东西——而可验证性是信任的基础。

Citations — 标明答案背后的来源

带脚注的论文,让任何读者都能把一个论断追溯到出处——正是引用,让它显得可信,而不只是显得自信。

当模型根据检索到的信息作答时,把来源(citations)展示出来:链接到文档,引用那段话,指出论断出自哪里。引用让用户可以验证答案,而不是凭信念接受。它把模型从一个必须相信的神谕,变成一个可以核查的研究助手。

这就是 grounding(有据可依)在设计上的回报:答案在系统内部有出处还不够——用户必须看到这个出处,并且能够顺着它查下去。

AnswerRefunds take 5 business days [1].Disputes go through support [1].Digital goods are final sale [2].[1] refund-policy.pdfp. 3 · quoted passage[2] terms-of-sale.mdsection 4.2every claim links to a source the user can open
答案中的每个论断,都链接到用户可以打开的来源。
PatternCitations· 来源标注
问题
答案只能凭信念接受——没有任何东西可以用来核对。
思路
把论断与文档关联起来,并展示这些链接。
例子
“退款需要 5 个工作日 [1]”,其中 [1] 会打开政策中对应的那一页。
代价
你需要一个知道每个片段来源的系统(RAG)。
何时使用
当答案基于文档、知识库或搜索构建时。
关联
Verifiability 的主要工具;依赖 RAG 课程里的 grounding。

Verifiability — 可验证,而不只是看似合理

好会计不会只递给你一个数字——他会给你看明细,让你能够确认,而不是去信一个自信的总数。

Verifiability(可验证性)是指在设计上让用户能够核查输出,而不只是接收它。把模型回答所依据的东西亮出来,突出它用到的具体数据,让人容易对照现实去确认。

一个可验证的答案,即使偶尔出错也值得信任,因为用户能把错的挑出来。一个无法验证的答案,即使通常是对的也很危险,因为没有办法分辨好坏。为核查而构建,那些不可避免的错误就变成可以被发现的,而不是代价高昂的。

Right answerWrong answerVerifiableUnverifiableConfirmeduser checked itCaughtuser spots the errorTrusted blindlyright by luckHarmlooks just as sureverifiable + sometimes wrong beats unverifiable + usually right
可验证的错误答案会被发现。无法验证的错误答案看起来和正确的一样笃定——并且造成伤害。
ConceptVerifiability· 可核查的答案
是什么
用户能自己对照现实确认答案。
如何运作
展示源数据,突出答案所依据的内容。
例子
会计给你看明细,而不只是总数;AI 把它读取金额的那些发票字段高亮出来。
陷阱
看似合理 ≠ 可验证:一个流畅却没有依据的答案,即使碰巧对了也很危险。
关联

由 Citations 和 Confidence Signals 构成;是 Trust by Design 的基础。

Confidence Signals — 展示置信度与推理

一位医生说“我相当有把握,不过我们用一项检查来确认”,比用同样的把握宣布每一个诊断的医生,更能指引你。

在可能的地方,把置信信号(confidence signals)展示出来:一个置信度、推理的步骤、一个在模型不确定或证据单薄时亮起的标记。这能帮用户判断每个答案该依赖到什么程度,而不是把它们都当作同样可靠。

它不会完美。但哪怕只是一个粗略的“这条不太稳”的提示,也能大幅提升人们使用这个功能的安全性。把模型的语气所掩盖的可靠性信号交给用户,是你能做的价值最高的设计之一。

Invoice total: $1,240source: invoice.pdfhighDue date: March 3inferred from an emailmediumTax ID: 48-1022931weak evidencelow — checka rough “this one is shaky” cue helps users calibrate
每个提取出的字段都有自己的置信度和来源。不太稳的字段被标了出来——值得核对。
PatternConfidence Signals· 可靠性提示
问题
每个答案听起来都一样可靠——用户不知道该核对哪里。
思路
展示置信度、推理过程,或一个“证据薄弱”的标记。
例子
解析一张发票:总额标为“高”,税号标为“低——请核对”。
代价
置信度估计不精确;粗略的信号也胜过没有。
何时使用
当可靠程度不同的答案混在同一个流里时。
关联
同一个信号驱动 Low-confidence Routing;支撑 Verifiability。

无法核查的答案,就无法信任。标明来源,让输出可验证,并展示置信度——可验证性把不可避免的错误答案,从隐藏的风险变成可以被发现的问题。

§ 04

让一个会出错的模型待着最安全的地方,是副驾驶座。把设计做成让用户始终掌握主动——批准、编辑、撤销——才能让强大的 AI 安全地上线。

Suggest, Don't Act — 提供协助,不要擅自行动

一个好助手会起草邮件,留给你自己去发——而不是自己点下发送,事后再告诉你。

对于任何有后果的事,把 AI 设计成建议而不是行动:提出修改、起草消息、推荐选项——然后让人来决定。这让人留在回路中(human in the loop),参与那些重要的决定,于是模型的错误变成一条被拒绝的建议,而不是一个已经执行的错误。

一件事越重要、越无法撤回,模型就越该只做提议,由人来拍板。用户指挥的协助,比用户只是监督的自主性更安全。

ModelSuggestiondraft · proposalHumandecidesActionDiscardedacceptreject✗ acting unaskeda model mistake becomes a rejected suggestion, not an executed error
模型建议,人来决定:接受或拒绝。“模型 → 行动”的直通路径被封死了。
PatternSuggest, Don't Act· human-in-the-loop(人在回路中)
问题
模型自己执行操作——它的错误立刻变成现实。
思路
模型只做提议;决定权和扳机都在人手里。
例子
AI 起草一封给客户的回复;客服读过之后点下“发送”。
代价
比全自动慢;人要花时间审阅。
何时使用
用于任何有后果或无法撤回的事(见 Autonomy Calibration)。
关联

与 Editable Output(怎么接受)和 Confirm & Undo(怎么保证安全)并列。

Editable Output — 让用户能编辑,而不只是接受或拒绝

好模板让你改掉不合适的部分,而不是逼你在“完美”和“没用”之间二选一。

最好的 AI 交互,让用户能塑造输出,而不只是照单全收或整个丢掉。这就是 editable output(可编辑的输出):AI 的结果便于编辑、打磨,并且可以保留一部分。模型往往能带你完成 80%,价值就在于让人去完成最后那 20%,而不是因为一处瑕疵就把整个结果扔掉。

把输出当作可以揉捏的黏土,而不是定稿的裁决,才符合模型的真实表现:一份由人来改进的优质草稿。可编辑性把“差不多对了”从一次失败,变成一个领先的起点。

Editable outputmodel draft · 80%human · 20%DoneAccept / reject onlymodel draft · one flawreject allDiscardedit-ability turns “almost right” into a head start
有了编辑:80% 模型 + 20% 人 = 完成。没有它,一处瑕疵就让整份草稿进了垃圾桶。
PatternEditable Output· 塑造它,而不只是接受
问题
只有接受 / 拒绝的选择:一个差不多对的答案被整个扔掉。
思路
把结果在编辑器中打开;允许修改和保留一部分。
例子
生成的邮件以文本形式打开:改一句话,发送。
代价
界面更复杂:需要编辑器、部分接受。
何时使用
当模型通常“差不多对”时——文本、代码、表格。
关联
延续 Draft Framing;每一次修改都会喂给 Corrections as Signal。

Confirm & Undo — 在任何不可逆的操作之前先确认

银行对一笔大额转账要求二次确认——在无法收回的事情之前,刻意停一下。

在用户无法撤销的任何操作之前——发送、付款、删除、发布——放一个明确的确认步骤。这与安全领域的 blast radius(爆炸半径)是同一种思路,只是体现在用户体验上:模型的错误顶多产生一条被用户拒绝的建议,绝不该是自己执行的不可逆操作。

并且尽可能配上撤销,让已经接受的操作也依然可以恢复。能够退一步,才让用户敢于放心地依靠 AI 行动,而不是提心吊胆。

AI proposesSend $5,000 to Acme?CancelConfirmExecutedundo available 30 sundo — step back even after acceptingthe model can propose; only a human pulls the irreversible trigger
AI 提议,人确认,执行之后仍有一段可撤销的时间窗口。
PatternConfirm & Undo· 事前停一下,事后退一步
问题
模型的错误变成了一个无法收回的操作。
思路
在不可逆的操作之前明确确认 + 尽可能在事后提供撤销。
例子
“向 Acme 转账 5000 美元?”→“确认”;之后还有 30 秒可以“撤销”。
代价
多一次点击;频繁的确认会让人养成不读就点的习惯。
何时使用
在涉及钱、删除、发布、发送之前。
关联
Autonomy Calibration 最严格的一端;Suggest, Don't Act 的安全网。

让人始终掌控:模型建议,人来决定;输出可以编辑,而不是要么全收要么全丢;任何不可逆的事情都需要确认,最好还能撤销。

§ 05

一个会出错的部件终究会失败,所以它怎么失败,是一个设计决定,而不是边缘情况。优雅地失败——承认局限而不是编造——正是值得信赖的产品与危险的产品之间的分界。

Abstention — 让它能说“我不知道”

你最信任的专家,是那个说“这超出了我所知道的范围”的人,而不是信心十足地编点什么来填补沉默的人。

Abstention(弃权)是指把体验设计成允许——并且更倾向于——诚实地说一句“我不知道”或“我不确定”,而不是编造一个答案。AI 最危险的失败,是在毫无依据时信心十足地编出一个回答。让“拒答”成为一种有效而体面的结果的产品,比逼着模型总要给出点什么的产品安全得多。

把不确定性亮出来,而不是遮掩过去,不是功能的失败——而是功能在诚实地工作。一个知道自己局限的模型,加上一个尊重这些局限的设计,比一个什么都回答的赢得更多信任。

QuestionEnough grounds?Grounded answer“I don't know”honest, gracefulMade-up answerconfident fabricationyesno✗ forced to answer
依据充分——给出答案。没有依据——诚实地说“我不知道”。危险的路径:强迫模型总是作答。
PatternAbstention· “我不知道”
问题
被迫总要作答的模型会编造内容。
思路
让“我不知道”成为产品中一个有效而体面的结果。
例子
客服机器人:“我在我们的文档里没找到这个——要我转给专员吗?”
代价
有些问题得不到回答——这没关系。
何时使用
只要模型可能没有依据(缺数据、超出范围)。
关联
Low-confidence Routing 的温和版本;Fallible Component 的解药。

Low-confidence Routing — 把不稳的情况送上另一条路

垃圾邮件过滤器有把握时自动分拣,没把握时则标出来让你来看——不确定的情况得到处理,而不是被藏起来。

不要不管多不稳都一视同仁地对待每个输出。当模型不确定或证据薄弱时,设计一条不同的路径——这就是 low-confidence routing(低置信度分流):标记它、请求确认、转给人,或者向用户问一个澄清的问题。

不确定的情形恰恰是盲目自动化伤害最大的地方,所以它们值得有自己的处理方式,而不是和稳妥的情形带着同样的笃定一起发出去。为不稳的中间地带而设计,而不只是为 happy path(顺利路径),才让功能变得稳健。

Model outputConfidencescore / evidenceAuto-handlehighAsk to confirm / clarifymediumRoute to a humanlowthe shaky middle gets its own path, not the same blind automation
置信度决定路径:高——自动处理,中——确认或澄清,低——交给人。
PatternLow-confidence Routing· 置信度阈值
问题
不稳的答案带着和稳妥答案一样的笃定发了出去。
思路
设一个置信度阈值:低于它,就走另一条更谨慎的路。
例子
垃圾邮件过滤器:有把握——自己归档;没把握——标上“请核对”。
代价
你需要某种置信度估计,以及处理人工队列的人手。
何时使用
在自动化流程中:分类、提取、客服。
关联
用到 Confidence Signals;极端情形是 Abstention。

Graceful Degradation — 降级,而不是崩溃

GPS 丢失信号时,会显示你最后已知的位置并提示“正在搜索”,而不是一片空白,或者把你领下悬崖——它失败得很柔和。

当 AI 无法完成任务时——出错、宕机、请求超出范围——体验应当优雅地降级,而不是崩坏,更糟的是产出一堆垃圾。退回到更简单的选项、一条清晰的提示、一条手动路径、一个缓存的结果。

一个失败后落入合理而诚实状态的功能,能保住用户的信任;一个失败后落入信心十足的错误答案或一个坏掉的界面的功能,则会毁掉它。像规划成功路径那样,刻意地规划失败的模式,因为对一个会出错的部件来说,失败是正常运行的一部分。

Full AI answerCached / simpler resultMessage + manual pathfailsfailsBroken screenor confident garbage✗ collapseplan the failure modes as deliberately as the success path
一道退路的阶梯:完整的 AI 答案 → 缓存或更简单的选项 → 清晰的提示和手动路径。而不是一道直落坏界面的悬崖。
PatternGraceful Degradation· 退路
问题
AI 一失败,功能就崩坏,或产出信心十足的垃圾。
思路
提前设计好退路的各个步骤,一直到一个诚实可用的状态。
例子
模型不可用 → 显示缓存的答案,或“现在做不了这个——这里是手动表单。”
代价
你得构建并测试这些备用路径。
何时使用
用于任何上线的 AI 功能:出错、宕机、超出范围的请求。
关联
Design for the Unhappy Path 的一部分;与 Abstention 相邻。

对一个会出错的模型来说,失败不是边缘情况——而是常态。让它能说“我不知道”,对低置信度的情形区别对待,并降级为诚实的退路,而不是信心十足的垃圾。

§ 06

一个好的 AI 产品不只是输出结果——它还会从用户的反应中学习。捕捉这个信号,让每一次交互都成为改进的机会,也让用户有了被听见的方式。

Feedback Controls — 给用户一个轻松表态的方式

每个答案旁边的一个点赞和一个点踩——用户只需轻轻一点,就能告诉你它说中了还是没说中,不花他们任何力气。

Feedback controls(反馈控件)——点赞/点踩、一个快速评分、一个举报标记——让人毫不费力地表达一条输出是好是坏。这一举两得:用户有了掌控感,觉得自己被听见了;而你获得源源不断的真实信号,知道这个功能哪里好用、哪里失灵。

一个无法被评价的功能,是你在盲飞的功能;一个简单的反应控件,是你能得到的最便宜、最丰富的反馈。去捕捉用户本来就会给出的那个反应。

Answer▲ good▼ bad⚑ flagSignal streamwhere it works / fails1 tapcosts the user nothing, gives you a continuous signal
答案下方轻轻一点,就变成一股信号流:功能在哪里说中了,在哪里没说中。
PatternFeedback Controls· 点赞 / 点踩,显式反馈
问题
你看不出功能哪里出了错——在盲飞。
思路
就在答案旁边放一键式的反应。
例子
每条聊天回答下面放“好 / 差 / 举报”按钮。
代价
只有少数人会点;信号有噪声,需要复核。
何时使用
从第一个版本起——任何 AI 功能都适用。
关联
Feedback Loop 的输入信号;更丰富的是 Corrections as Signal。

Corrections as Signal — 让纠正去教系统

当你改掉手机键盘建议的那个地址,它就学会了——这次纠正不只管这一次,还会让下一次变得更好。

最丰富的反馈,是用户自己去修改输出。当有人修改一条 AI 的建议时,这次修改就是“正确”长什么样的精确信号。这就是 corrections as signal(把纠正当作信号),也叫 implicit feedback(隐式反馈)——把它捕捉下来。纠正和拒绝就是金子:它们在真实案例上,准确地告诉你模型差在哪里。

把它们喂回你的 evals(见 evals 课程),让功能可衡量地改进,让产品沿着真实用户实际遇到困难的轮廓变得更好。这次纠正,既是眼下的修复,也是日后的一课。

SuggestionMeet Tue 3 pmUser editMeet Wed 3 pmEval caseinput → right answerthe diff = a precise signal of what “right” looked likeNext releaseimproves
建议 → 用户的修改 → 一条带正确答案的 eval 用例 → 更好的下一个版本。
PracticeCorrections as Signal· 隐式反馈
问题
用户的修改丢失了——而它们是你手上最精确的数据。
思路
存下这一对“模型提议了什么 → 人保留了什么”。
例子
AI 提议“周二下午 3 点”,用户改成“周三下午 3 点”——这就是一条 eval 用例。
代价
你需要记录修改,并谨慎地处理用户数据。
何时使用
凡是有 Editable Output 的地方。
关联
喂给 Feedback Loop 和 eval 集。

Feedback Loop — 线上反馈是你最好的 eval 集

最好的考题来自学生真正考过的那场考试,而不是老师想象出来的——现实写出的测试,比你写得更好。

来自真实使用的反应和纠正,是你手里最有价值的 eval 用例来源——它们就是用户实际在做的事,包括你永远想不出来的那些失败。从这些反馈中挖掘功能在哪里出问题,并把这些用例并入你的 eval 集,就闭合了反馈回路(feedback loop):线上教你该修什么,你修好它,下一个版本就更好。

一个让这个回路转起来的产品会持续改进;没有它的产品则是在猜。正是这个回路,让一个 AI 功能越来越好,而不只是存在着。

ReleaseReal usereactions + editsMine failureswhere it breaksEval set+ fixFeedback loopproduction teaches you what to fix
这个循环:发布 → 真实使用 → 挖掘失败 → eval 集和修复 → 新版本发布。
PracticeFeedback Loop· 数据飞轮
问题
团队自己想出来的 eval,抓不到真实的失败。
思路
从线上取出失败案例,变成 eval 用例,修复,再发布。
例子

每周——点踩最多的和被修改最多的 → 新的 eval 用例 → 修一处 prompt → 发布一个版本。

代价
持续的工作:复核、标注、运行 eval。
何时使用
功能一有真实用户,就开始。
关联

结合 Feedback Controls 与 Corrections as Signal;建立在 evals 课程之上。

好的 AI 产品会从使用中学习:给用户一个轻松表态的方式,把他们的纠正当作精确的信号捕捉下来,并把线上真实的失败喂回你的 evals,持续改进。

§ 07

AI 产品设计归结起来,是一种贯穿始终的姿态:把模型当作一个强大却会出错的助手,并构建一种让人能安全、自信地使用它的体验。

处处都是 Autonomy Calibration — 按风险叠加的多层保障

你让助手自己去办理文书手续,让它起草重要的信件交你审阅,而绝不让它在你不在场时签下合同——自主权随后果的轻重而调整。

贯穿整个产品、一次次要做的统一决定,是让 AI 自己做多少、又有多少要经过人。答案始终是 Autonomy Calibration:让它与风险相匹配。低风险、可撤回的事可以更自动一些;高风险、不可撤回的事,则要叠加上预期、核查、掌控和确认。

一个设计良好的 AI 产品,不是一律自主,也不是一律谨慎。它是逐处校准的,依据是那里出错要付出多大的代价。

safeguards layer up as the cost of a mistake growsExpectationsLow stakestag suggestionExpectationsVerificationMediumemail draftExpectationsVerificationControlConfirmationHigh stakespayment
风险越高,保障的层数越多:从一句诚实的表述,到带确认的整套措施。

Design for the Unhappy Path — 为错误的答案而设计

一位优秀的安全工程师设计汽车时,假定事故一定会发生,而不是指望它不发生——安全气囊就是为糟糕的那一天准备的,而它正是意义所在。

成熟的 AI 产品设计的标志,是围绕模型会出错来构建,而不只是围绕它会答对。这就是为不顺利的路径而设计(designing for the unhappy path)的原则。演示展示的是正确的答案;产品要经得起错误的那个。所以你要设计核查、掌控、优雅的失败、反馈回路——也就是让一次自信的错误变得可以被发现、可以被挽回的那套机制。

把顺利路径跑通,你得到的是一个演示;为不顺利的路径去设计,你得到的是一个人们真能托付真实工作的产品。

ModelRight answerUserWrong answerverify · control ·graceful failure · feedback→ caught & recoveredthe demohappy pathunhappy path
演示只覆盖最上面那条路径。产品还要接住错误的答案:核查、掌控、优雅的失败、反馈。
PrincipleDesign for the Unhappy Path· 为错误的答案而设计
问题
功能是为演示设计的——第一个错误答案就变成一场灾难。
思路
把错误的答案当作正常的情景,有意识地去设计它。
例子

带着“模型是错的”把功能走一遍:用户能看出这是 AI、能核查、能编辑、能撤销、能举报吗?

代价
发布前多做些工作——备用路径、文案、控件。
何时使用
在每个 AI 功能上线之前。
关联
把课程里的每一组串联起来;结果就是 Trust by Design。

这一切如何连在一起

一支管弦乐队:每个声部各奏各的部分,但你听到的是一首乐曲。

一切都始于 Fallible Component:模型哪怕出错也一样自信。五组实践——预期、展示过程、掌控、优雅地失败、反馈——是设计给出的五个应对。Autonomy Calibration 决定某个具体环节需要每个应对多少。合在一起,就产生了 Trust by Design。而反馈回路又经由 evals 流回去,随着时间推移让模型变得更好。

Fallible modelconfident, sometimes wrongback via evalsExpectationshonest framingShow the workverifyHuman controlsuggest · undoFail gracefullyfallbacksFeedback looplearn from useAutonomy calibration · scaled to the stakesTrustearned by the product
一个会出错的模型 → 五组实践 → 按风险校准 → 信任。反馈回路经由 evals 流回去。
发布 AI 功能之前
  • 自主权是否与风险相匹配——可撤回的地方更自动,不可撤回的地方更受控?
  • 预期是否诚实——告知用户这是 AI,输出表述为草稿,没有夸大?
  • 用户能否核查——标明了来源,答案可以核对,在有帮助的地方展示了置信度?
  • 人是否在掌控——建议而非行动、输出可编辑、不可逆之前先确认、可以撤销?
  • 是否优雅地失败——能说“我不知道”,低置信度有专门处理,降级而不是崩溃?
  • 反馈回路是否闭合——容易表态、纠正被捕捉、喂回了 evals?
你把 AI 设计好了的迹象
  • 这个体验靠可验证性和掌控赢得信任,而不只是靠模型能力。
  • 用户被诚实地告知它是什么,输出被表述为有待核对的草稿。
  • 人始终在掌控——能编辑、能确认、能撤销。
  • 它优雅地失败,承认不确定,而不是信心十足地编造。
  • 真实的反馈流回你的 evals,于是功能随使用而改进。

速查表:全部 19 个概念

会出错的模型

Fallible Component自信却会出错

模型答对时和瞎编时听起来一样笃定。

Trust by Design信任是产品的属性

信任是产品的属性:能核查、能纠正、能撤销,并知道会发生什么。

Autonomy Calibration自主权与风险相匹配

出错的代价越高、越不可撤回,AI 得到的自由就越少。

诚实的预期

AI Disclosure说明这是 AI

直截了当地说:这是 AI,它可能出错。

Draft Framing草稿,而非裁决

把输出呈现为有待修改的草稿,而不是定稿的答案。

Under-promise, Over-deliver不要夸大

承诺的比模型能做的少一点;诚实地说出它的局限。

展示过程

Citations来源标注

每个论断都链接到用户可以打开的来源。

Verifiability可核查的答案

用户能对照现实确认答案,而不是凭信念接受。

Confidence Signals可靠性提示

展示哪个答案稳妥,哪个不太稳。

让人掌控

Suggest, Don't Acthuman-in-the-loop

模型提议;人来决定并扣动扳机。

Editable Output塑造它,而不只是接受

结果可以编辑、可以保留一部分,而不只是接受或拒绝。

Confirm & Undo事前停一下,事后退一步

不可逆之前停一下,事后还能退一步。

优雅地失败

Abstention“我不知道”

诚实的拒答,胜过信心十足的编造。

Low-confidence Routing置信度阈值

不稳的情形交给确认、澄清或人来处理。

Graceful Degradation退路

出现故障时,退回到简单而诚实的状态——而不是一个坏掉的界面。

反馈回路

Feedback Controls点赞 / 点踩

就在答案旁边的一键式反应。

Corrections as Signal隐式反馈

用户的修改,就是正确答案的一个精确范例。

Feedback Loop数据飞轮

线上失败 → eval 用例 → 修复 → 更好的版本。

收尾的原则

Design for the Unhappy Path为错误的答案而设计

演示展示的是正确的答案;产品要经得起错误的那个。

AI 产品设计,就是构建这样一种体验,让一个强大却会出错的模型可以被安全地使用:自主权与风险相匹配、诚实的预期、可验证的答案、人在掌控、优雅地失败,以及一个会学习的反馈回路。

速成课完 · 7 章 · 19 个概念

接下来是练习:拿一个 AI 功能,从用户那一侧走一遍,这一次假定模型出错了——他们能看出这是 AI 吗,能核查答案、能编辑它、能撤销它、能上报那次偏差吗?凡是答案为否的地方,那是一个设计的缺口,而不是一个模型的缺口。去修体验,而不只是修 prompt。但有一个想法要置于其余之上:模型会自信地出错,而你的设计决定了这件事是落地为一条被逮住、可挽回的建议,还是一场以事实之名递出的灾难。为错误答案而设计,正确的那些便会自己照看好自己。