Addy Osmani 写防认知投降:交活前先写下猜测,收活后先查看证据

Addy Osmani2026年11月3日

2026年11月3日,Claude Code 团队的 Addy Osmani 写给已经在并行使用 Agent 的工程师和做产品的人:模型越少犯明显的错,人越容易不再看第二眼。他给出的红线是,借助 Agent 也讲不清这个答案,所有权就已经不在你这边。

Agent批判性思维代码审查认知债

一分钟看懂

  1. 模型把答案写顺、明显的错变少之后,看结果的仍只有一双眼睛,默认流程不会替人再看一遍。
  2. 交出去之前先写下哪怕很差的猜测;收回来先看它跑了什么、替你决定了什么,再看总结。
  3. 选错也不贵的事可以整段交。后果要别人承担的推理留在自己手里,不愿署名的不发出去。

像样的答案不再逼你看第二眼

Addy Osmani 每天同时开着好几路 Agent。他写这篇文章,是因为工作已经很容易整段交出去,批判性思考却不会自动留下来。他赞成继续用这些工具。这篇要保住的,是交出去之后仍在你这边的判断。

过去从提出问题到拿到答案,中间要查、要想、要掂量,判断力是在这段路上磨出来的。现在这段路按秒计。模型变强以后,明显的错变少了。多数结果写得清楚,大体也正确,却不再逼你看第二眼。Agent 开得再多,盯着结果的眼睛还是只有一双。又快又顺、多半还对的答案让人松一口气,戒备也在这时候卸下来。这道检查得自己排进一天的工作里。默认没有别的东西会替你停一下。

从卸载滑到投降,每一步都说得通

Osmani 把使用方式分成三档。最上是 cognitive offloading(认知卸载):活交给 AI,结果仍归你。你知道它做了什么,也能为它负责。他整天停在这一档,也建议别人停在这里。中间是 deferral:工具的输出直接变成你下一步的输入,不再被当成一个还没证实的猜测。最下是 cognitive surrender(认知投降):AI 的输出悄悄变成你自己的想法,你不觉得还要检查。这个词来自沃顿商学院的 Steven Shaw 和 Gideon Nave。

往下滑很少被自己看见。上一个答案你读得很认真,下一个就扫一眼,再下一个只看骨架。每一步都说得通。直到有人指着其中一行问为什么,你讲不出来,叫上 Agent 一起也讲不出来。

这样欠下的是 cognitive debt(认知债)。当时看不出来:代码整洁,测试通过;只看了目录就签字的需求文档,也一样体面。要等你必须改这套系统、必须靠自己的理解往前推,才发现那份理解不在。Margaret-Anne Storey 写过它在团队里的样子:大家对这套系统如何运作的共同认识,被一点点磨掉。落到代码上,Jeremy Twei 称之为 comprehension debt(理解债)。

大型代码库谁也装不下全貌。Claude Code 团队公开说过自己的做法:要动哪一块,就让 Claude 把那一块讲清楚。整库不必一直记在脑子里。这种债比很多工程师以为的更容易补回来。你只要知道自己缺的是哪一块,用的时候能补上。红线只有一条:借助 Agent 都讲不清,所有权就已经交出去了。

选错不贵的事,可以整段交出去

交出去本身可以是对的。Osmani 不久前录课,要从三家评分接近的酒店里挑一处当录制地点。他没有时间把评论看完,就把选择交给了 AI。这次在他看来没问题,下次他还会这样做。

家里的钱怎么投、怎么给孩子的职业出主意,他不会这样定。工作上做什么、哪些改动会影响哪些用户、能不能放心上线,他也不会。

错了也不贵的事,放手交接。后果要别人承担的推理,留在自己手里。

提问之前,先留下一个哪怕很差的猜测

以前想不清一件事,他会回到一张很土的清单:是不是在解决对的问题,方法对不对,结论有没有证据,怎么知道已经做完。写出来很幼稚,却会逼你走到平时会漏掉的地方。现在跳过这一切很容易,一句「你觉得我该怎么做」就够了。

他现在问自己六件事。提问之前,有没有先猜一个答案。猜得差也行,有了新信息可以改。先读到一篇写得很顺的回答,别的可能就很难再出现。完全没有头绪时,用 Thariq Shihipar 说的 blind spot pass:把你已经知道的交给模型,让它找出你不知道自己不知道的东西。

他会分清这一次是请工具帮忙想,还是把思考整个卸掉。两种都可以,前提是自己清楚在做哪一种。要让这个结论是错的,什么条件必须成立,然后去查。模型自己说有几成把握,比不上一个你能实际跑一遍的测试。立场已经很硬、问题又没有标准答案时,让不止一个模型替对立的一面说话,读完再下判断。这一步费时间,问完之后懂得也更多。

当着以后要维护它的人,敢不敢为它打包票。代码如此,交出去的任何东西都如此。这是他给「能不能负责」定的线。还有一问留给自己:已经不再练哪些事,比如一些日常排错。放掉一部分可以,最好是自己选的。

变绿的检查只证明一件事

他把瓶颈从把代码写出来,挪到确认自己是对的。Agent 如果有办法检验自己的工作,端到端测试、属性测试,或者真的去点一遍应用,就可以改一处、跑一遍、读结果、再试。这些都发生在你看之前。Claude Code 的创建者 Boris Cherny 把这叫作:给 Claude 一个验证自己工作的方法。人的活跟着变:少逐行读,改为把这些循环搭起来,再审它留下的证据。

验证自己也会被交出去。「有没有证据」会滑成「检查变绿了吗」。Agent 让写测试便宜到几乎不占成本,满屏绿色随手就有。测试和功能要是带着同一个误解,测试照样通过,功能照样是坏的。一个绿勾只证明一件事。人很容易把它看成已经覆盖了全部。

检查变绿之后,先问它证明了什么,再问它没证明什么。什么叫已经验证,要事先定下来。做完再定,人会替刚出来的结果找理由。Agent 工作的终点要摸得着:一次通过的测试、一张截图、一段日志或调用轨迹。「做完了」应当是一件可以核对的事实。它要是只剩一种感觉,就太容易被放过。收到完成通知,先看它实际跑了哪段命令、输出了什么,再看总结。

Claude Code 可以用一个全新上下文的子 Agent 给自己挑刺。这件事值得固定进流程,每次都跑。他看完复杂功能之后,仍会再问一句:我漏了什么。对方常常还能再找出两三件,所以他每次都问。深挖不必成为每一次的默认。知道什么时候该深挖,本身就是手艺。Claude Code 团队写代码审查时留过一条:说不出这些检查会漏掉什么,就去要一次真正的审查。快速批准盖不住这个缺口。

代码之外同样适用。Agent 汇总了五十通客户电话,或做了一份竞品分析,就去翻几份原始材料,看总结准不准。建议押在某个数字上,就核一遍这个数字算得对不对。把验证搭起来已经很便宜。难的是你得知道,好的验证长什么样。

六百行里,要审的是它替你做的决定

设想 Agent 交来一份六百行的改动。你看了结构,没有逐行读。变量名像样,测试也过了,于是批准。中间某处,事务里几步的先后被调换了,或者一个你没想过的边界情况里,默认值被反过来。你确实看过。看到的,是你本来就知道要找的那些。

写代码和审代码是两门手艺。审着审着,就会变成盖章。把改动当成一份普通提交去读,不因为出自 Agent 就放低标准。然后再看改动外面。一次长会话里,它会替你做很多小决定:用了什么默认值,认定什么不在范围内,两条要求冲突时改写了哪一条。一份写着一切顺利的总结里,这些都看不见。

让它把自己做过的决定和假设列出来。然后考自己:随手挑几行,这行在做什么,那一行呢。如果是文档,就合上它,凭记忆写出主要论点。他喜欢的一种长会话习惯是,让 Claude 就这次改动写一份报告,末尾附一套测验,测验全对才合并。交出去的东西,要理解到能替它辩护,因为迟早有人会问。

Agent 也能帮你守住注意力。他维护的一个开源项目常常涌进大量拉取请求。他用 Agent 分辨新来的是什么、哪些违反了项目规范、哪些需要他亲自看。拍板很少交给 Agent。范围缩到该看的地方之后,他才有余力判断:这个改动是不是用对的方法,解决了对的问题。

产量要对自己诚实。他把一道缺口叫作 orchestration tax(编排税):Agent 产出的东西,和你愿意署上自己名字的东西,中间的距离。做完的活堆得比你看得快,再开一个会话也补不上。要么收紧检查,让必须等你过目的少一点;要么慢下来。产出多过你能担保的时候,审查已经停了。剩下的,是指望它没出错。

判断从过程中间,挪到开头和结尾

理解还在干活,位置从中间挪到了两头。开头把任务和背景说清楚,结尾审结果。输入的质量会决定输出的质量。他把写好提示词看成一项批判性思考的能力。

过去你提一个含糊的需求,总有人追问,你才会发现自己其实还没想清。Agent 往往不会在这里拦住你。它把你没说的部分补上,交回一个看起来做完了的东西,背后的想法仍然是糊的。他把这叫作 intent debt(意图债):藏在你没亲手写的成果里的目标、约束和理由。别的债或许还有人能替你还。这一笔只能你自己来。

提示词反映的是你对问题的理解。说不清,常常是自己还没想清。求助之前,先用自己的话写一份简短需求:给谁用,哪些不做,怎样算完成。改了两轮还没到想要的结果,就停下修修补补,把提示词重写一遍。

哲学家 Andy Clark 分开过两件事:把事委托给 AI,以及跟它合作。合作的时候,你的提示词让输出更好,输出又让你下一条提示词更准,对问题也想得更清楚。还想不清,就让 Agent 来采访你,问它没搞懂的地方。会话结束时你比开始时更明白,这就是做成了。输入往下传的时候也要留神。每个 Agent 都只拿上一个 Agent 的总结当上下文,传到第三个,就已经没人读过原始材料。

结尾要有自己的标准。他在不少创作形式里试过 AI,大部分成果没有拿出来给人看,因为没过他自己那一关。东西现在都格式整齐、语气笃定。看起来很精致,已经不再是一个有用的信号。生产变快了。不愿署上自己名字的,他就不发出去。没过线的,把原因写进共享配置、一个 Hook,或一条测试,让同样的问题不再出现。品味是这样一点点攒出来的。记下为什么没入选,本身就是练习。

检查可以交出去,责任交不出去

读到这里,很容易冒出一个念头:再过一两年,模型能发现的问题就和我一样多,这些还要练吗。在发现问题这件事上,他觉得这个估计可能大体成立。他自己也主张,把越来越多的检查交给 Agent。这项能力仍然要留着。

总得有人为发出去的东西负责。AI 参与多少,最后签字的还是一个人。该信它多少,本身就是判断。模型出错的地方一直在变,只有持续看它的活,这个判断才准。Anthropic 研究自家工程师时,把这个陷阱叫作 paradox of supervision(监督悖论):监督 Claude 所需要的,正是那些可能因为过度使用 AI 而退化的编程技能。还有一类问题,模型再强也替你答不了:你在做什么,为什么值得做,会影响谁,你愿意为它放弃什么。Agent 可以陪你想。答案仍然是你的。活可以交出去,大部分检查也可以交出去。责任交不出去。

上面这些不必全部做成硬制度,接进自己用得上的部分就行。

每周离开 Agent,写一点代码,或做一件忘了就会很麻烦的实事。他管这叫校准练习,并把它放在手艺上,不放在道德上。每月写下已经不再做的事,逐一决定哪些可以放下。他旧文里有一个问题仍然有效:如果 AI 不存在了,你会有多迷茫。写作或读材料时碰到没见过的说法,搜一句解释塞进去很容易。他更愿意先做一点研究,看清这句话在整体里的位置。认真检查 Agent 的产出是真实的工作量。把它当成不花时间的事,团队最后就不会做。排进计划,它才会被做完。不再练习的技能会消失,而且往往比当事人猜的更快。不愿放掉的那些,就继续练。

他留下八件可以带走的事。Agent 能考你、采访你、把证据摊开,前提是你先设好。诚实看自己停在三档的哪一档:借助 Agent 都解释不了,就是已经交出去了。提问前先有一个猜测,哪怕很差。一个绿勾只意味着一件事,问清它检查了什么、没检查什么。先读它运行了什么、返回了什么,再读总结。读出它替你做的决定。提示词怎么写,暴露了你对问题懂多少。设一条线并守住:不愿署名的,就不发出去。还可以马上试一个小动作:提问之前,写下你觉得会发生什么;Agent 做完之后,写下一件它没有检查的事。看这一下,会不会改变你读输出的方式。