当智能体能在几秒内写出看起来正确的代码和文档,人们最容易松掉的恰恰是那份"多看一眼"的警惕。Addy Osmani 把人与智能体的关系拆成认知外包、让渡与认知投降三个阶段,指出理解力债务、意图债务和监督悖论如何悄悄累积,并给出一套可操作的日常做法:先形成假设、把验证变成习惯、读生成物时追问它替你做了哪些决定,以及始终记住责任无法外包。

原文:Critical thinking when agents do the work

Addy Osmani|2026 年 11 月 3 日

封面

过去,批判性思维被教导成这样一种姿态:以谦逊的好奇心,加上适量的怀疑精神,去面对新信息——听取不同观点,形成自己的判断。这个说法依然成立,但如今,我的日常工作里有太多事情都交由智能体完成,已经越来越少有什么东西会逼着我动用批判性思维了。对于那些已经完全投入智能体工作流的工程师和产品人(同时跑多个会话、指望模型自己越改越好),我想说:我是这些工具的重度爱好者。我写这篇文章,并不是在主张少用智能体工作流。

我的目标是帮你在这个"什么都能外包给智能体"的世界里,守住批判性思维。

过去,我们大部分的认知加工和审美判断,都发生在"提出问题"和"得到答案"之间的那段空白里。那段空白现在被压缩到了以秒计。你越是用智能体工作流,这件难事就变得越隐蔽(不过并不是大家预想的那种难法):随着模型变强,明显错误的占比在下降。很多(也许是大多数)输出都写得漂亮、大体正确,但它们不会再要求你多看一眼。

即便你同时开着多个智能体,盯着这些输出的,仍然只有你一双眼睛。

你必须把批判性思维设计进你的一天,因为默认情况下,没有任何东西会替你做这件事。

这件事之所以难以自我纠正,部分原因在于:智能体工作流很舒服。在忙碌的一天里,快速、顺滑、通常正确的答案令人神清气爽——而这恰恰是警惕心最容易松掉的原因。

外包、让渡与投降

和人聊这个话题时,我把它描述成一个光谱:

最上层是认知外包:把任务交给 AI,但保留对结果的所有权。我整天都在这么做,你也该这么做。中间是让渡:工具的输出变成了你的新输入,结果不再是待验证的假设。最下层是认知投降:AI 的输出悄悄变成了你自己的东西,你觉得没必要去核对。

“认知投降"这个词由沃顿商学院的 Steven Shaw 和 Gideon Nave 提出。它精准地描述了我一直看到的现象:随着信任(或者懒惰)增加,人们会沿着这个光谱往下滑。这种转变很少被人察觉,因为每一步都很渐进,而且看起来都挺合理。上一个答案你认真读了,所以下一个你就只扫了一眼;再下一个,你只看了个骨架。然后有人问你某一行是什么意思,你答不上来,哪怕智能体就在旁边帮你。

这就是认知投降,认知债务就是这样累积起来的。它通常在你试图套用某个系统的心智模型、却发现那个模型根本不存在时才会暴露。Margaret-Anne Storey 写过它在团队里的表现:大家对共享的系统理论的理解在持续侵蚀。我写过代码领域的对应物——“理解力债务”(comprehension debt,这个词由 Jeremy Twei 提出)。在当下,它完全隐形:代码库看起来干净清爽,测试全绿。直到你需要改动这个系统,才意识到已经没人真正理解它了。你只读了战略文档或规格说明的目录就签字认可,是同一回事。

说清楚一点,我并不主张去做不可能的事。要完整维持一个现代大型代码库的心智模型,是不可能的。Claude Code 团队公开说过,他们是"按需重建理解”:需要理解某一部分时,就让 Claude 解释那一块,而不是把整个模型都装进脑子里。正如我以前写过的,这类债务的可恢复性比多数工程师以为的要高。你不需要一直维持完整模型,只要能在需要时就地重建它。你只需要知道自己缺什么。

在代价很低的地方,尽管完全外包。但当一个问题你答不上来——哪怕借助智能体也答不上来——你就已经把所有权交出去了。

这也不总是问题。就在最近,我在录一门课,需要从三家评分相近的酒店里挑一个作为录制地点。我没时间逐条读评论,就把这个决定外包给了 AI。它管用了,我下次还会这么干。但如果是在决定怎么投资我们的钱、怎么给孩子建议职业方向,或者在工作里决定该做什么产品、哪些改动会影响哪些用户、能不能安全上线——我不会这么做。在"错了也无所谓"的地方可以放手;在"后果要由别人承担"的地方,推理必须留在自己手里。

我会问自己的问题

当我不确定自己在想什么时,我通常会回到一张很基础的问题清单:我怎么知道自己解决的是正确的问题?我怎么知道自己是用正确的方式在解决它?有什么证据支持我的结论?我怎么知道自己已经做完了?大多数时候,这就是谁、什么、哪里、为什么、何时、如何。写出来看着幼稚得可笑,但它逼你按那些你本来会忽略的类别去想。如今,跳过这一切、直接问智能体"你觉得我该怎么做"实在太容易了。下面是我现在问自己的、这些问题的"新版本"。

在提问之前,我有没有先形成一个假设? 在让智能体做任何非琐碎的任务之前,我会先写下(哪怕只在脑子里)我认为答案可能是什么。猜得烂也没关系,你随时可以根据新信息改变想法。但一旦你读完一段写得漂亮的回答,就很难再想象还有别的可能性了。如果你完全没有方向,那就向模型要一个 Thariq Shihipar 所说的"盲区扫描"(blind spot pass):把你已知的东西给它,让它帮你找出你的"未知的未知"。

我是在让它帮我思考,还是在让它替我思考? 两者都可以,前提是你清楚自己在做哪一种。

要让这个结论是错的,什么必须成立? 然后去把它查出来。模型对自身置信度的自评,远不如一个你真能跑起来的测试有价值——那就给它一个测试。

我有没有从另一个角度听过反方论证? 当我在某个相对开放的问题上摆出强硬立场时,我会让不止一个模型去论证相反的一方,然后审阅输出、形成自己的判断。这更花时间,但我最终对这个主题的了解会多得多。

我敢不敢在"将来要维护它的人"面前为这个下注? 这适用于代码,也适用于你交付的任何东西。我认为这就是"可回答性"(answerability)的门槛。

我现在不再练习的是什么? 也许是某些日常调试。让其中一部分能力流失我可以接受,但我希望这是有意识的取舍。

把验证变成习惯

我最近写了很多关于验证的东西,因为我相信瓶颈已经从"写代码"转移到了"确认自己是对的"。当你给智能体提供验证手段——端到端测试、属性测试,或者真实的应用交互——它就能在你还没看一眼之前,完成修改、跑验证、读输出、然后再试一遍。这就是 Boris Cherny 说的"给 Claude 一条验证自己工作的途径",我认为这是取得好结果最关键的一环。你不再逐行阅读,而是在搭建这些回路、审阅证据。

但你也可以把验证本身交出去。“有没有证据支持我的结论?“变成了"检查是不是绿的?“智能体让写测试变得太便宜了,所以你会看到大量的绿;而一个通过的测试,完全可能抓不到一个坏掉的功能。如果测试和功能犯了同一个错误,它就会通过。而且一个绿勾只说明了一个属性,人却太容易脑补它覆盖了一切。

当检查变绿时,问它证明了什么。然后再问它没证明什么。

把"已验证"提前定义清楚,因为事后你一定会为任何结果找理由。

智能体工作的终点线应该是某种可见的东西:一个通过的测试、一张截图、一段日志或 trace。这能确保"完成"的标准是事实性的,而不是靠"看起来是做完了"这种解释(以及由此而来的投降)。当你收到智能体的完成通知时,先别读总结,先看它执行的那条命令的代码片段和输出。

Claude Code 还能(通过一个全新上下文的子智能体)对自己的工作做自我批判,作为一次健康检查。值得把这一步固化进回路里,让它每次都跑,而不是只在你想起来的时候跑。我在最后仍然会问一句"我漏了什么吗?“听起来很傻,但经常是:我用前沿模型做完一个复杂功能,看了看、审了审,然后问"我漏了什么吗?“它会再给我两三条东西。所以我每次都问。

当然,这些不必成为常态;知道什么时候该深挖,本身就是一种技能。我最喜欢的一条经验法则,来自我们写 Claude Code 团队如何做代码评审的那篇文章:“如果你说不出这些检查会漏掉什么,那就要求一次真正的评审,而不是快速点个通过。”

这也不只适用于代码。如果智能体替你汇总了五十通客户电话,或者一份竞品分析,那就抽两三份原始文档核对,确认摘要准确。检查一个你的建议所依赖的数字,确认它算得对。

智能体让验证变得廉价,真正难的是:你知道好的验证长什么样。

真正去看生成出来的东西

假设智能体给了你一个 600 行的 PR。你大致扫了眼结构,没逐行读。变量名看着合理,测试也过了,于是你批准了。但在中间某处,有一个事务边界上的微妙顺序变化,或者某个你从没想过的边界情况里,默认值被翻了个面。你确实"审"过了,我猜,但你只在找那些你早就知道会找到的东西。

写代码和审代码是两种不同的技能,而且到某个点,“审阅"就变成了"盖章”。所以,把 diff 当成不是 AI 写的那样去读,然后再越过 diff,去看智能体做了哪些决定。在一个长会话里,它替你做了很多小决定:默认值、哪些算超范围、当两条需求冲突时它重新解释了哪一条。

这些在一个"一切顺利"的总结里都看不到,所以让它列出自已做出的决定和假设。然后考自己:随机挑几行,问"这一行是怎么回事?那一行呢?“对于文档,合上它,试着凭记忆写出主要论点。有些人在长会话里有个我喜欢的习惯:让 Claude 写一份关于这次改动的报告,然后在末尾给你出一套小测,规则是"我必须满分通过才合并”。

把你交付的东西理解到足以替它辩护的程度。因为总有一天,会有人来问。

智能体也能替你守住注意力。比如我有一个收到大量 PR 的开源项目,我会用智能体帮忙判断哪些在进来、哪些违反我们的规范、哪里可能真的需要我亲自看。我很少让智能体自己拍板,但它们可以把范围收窄到"我该把注意力放哪儿”,然后我才能真正去想:这些改动是不是在用正确的方式解决正确的问题。

接下来是量的问题,你得对自己诚实。我把这叫做"编排税”(orchestration tax):你的智能体产出与你愿意署名的那部分之间的差距。如果完成的工作堆积的速度超过你消化的速度,那么再开一个会话也没用,除非你先解决这一点:收紧检查,让需要你的部分变少;或者放慢速度。

当你产出的东西超过你能为之负责的量时,你就不再是在评审了。你是在祈祷。

输入的质量决定输出的质量

人的心智模型依然参与其中,但它不再位于中间,而是在前端和末端。你把精力投在任务描述和上下文的前端,以及审阅输出的后端。这就是为什么好的输入对输出质量如此重要,也是为什么我把"会写提示"看作一项批判性思维技能。

过去,如果你提出一个含糊的请求,有人会反问你,你可能会意识到:“哦等等,我其实根本没想清楚。“智能体通常不会在这里拦住你。它会补上你漏掉的部分,交回一个看起来完成了的东西,尽管背后的想法仍然模糊。我把这称为"意图债务”(intent debt):那些存在于你并未亲手写下的产物里的隐含目标、约束和理由。和其他债务不同,这一种没有人能替你还。意图必须来自你自己。

你的提示词是你对问题理解程度的镜子。如果你说不清楚,那可能在你脑子里也不清楚。

在求助之前,先用你自己的话写一份需求简报:描述受众、明确不做什么、以及"完成"的定义。当你第二轮修改还没把你带到目的地时,别再抠细节了,重写你的提示词。

你也可以让智能体帮你做这件事。我喜欢 Andy Clark 对"委托给 AI 系统"和"与 AI 协作"的区分。在后一种情形里,你处在一种相互放大的良性循环中:你的提示词让输出更锐利,输出让下一个提示词更锐利,下一个提示词又让你的问题心智模型更锐利。如果不清楚,就让智能体反过来采访你,问它没弄懂的地方。如果你关掉会话时,自己的心智模型变得更清晰了,那就是成功的标志。

同时要小心输入。每个智能体都很容易直接把上一个智能体的摘要塞进自己的上下文,没多久,第三个智能体根本就没读过原始文档。

你还需要有自己的输出标准。我在很多创意媒介上玩过 AI,大部分成果从没被展示过,因为它们达不到我的标准。现在所有东西都排得漂亮、语气笃定,所以"精致"已经不再是有用的信号了。

AI 也许让生产变快了,但如果我不愿意把这份输出署上自己的名字,我就不会把它发出去。

当某样东西达不到你的标准,把原因记进共享配置、hook 或测试里,让它别再发生。品味就是这样复利累积的;而记录"为什么这个没入选”,本身就是个好习惯。

“可是模型在这方面会比我更强”

如果你和我身边很多人一样看好这个领域的未来,读到这里你可能已经冒出这个念头:一两年后,模型能察觉的东西我也能察觉,那我为什么还要维护这项技能?

在"察觉"这件事上,你多半是对的,而且我自己也一直主张把越来越多的检测交给智能体。但我认为它仍然重要的原因是:归根结底,总得有人为上线的东西负责。无论 AI 帮了多少忙,责任必须由人来承担。

“某个任务该在多大程度上信任智能体”,本身就是一个判断题。保持校准的一部分就是去审阅工作,因为模型出错的方式一直在变。Anthropic 对自己工程师和研究员的研究点出了这个陷阱,叫做"监督悖论”:“监督 Claude 所需要的,恰恰是可能因过度使用 AI 而退化的那些编码能力。”

有一些东西对我最重要,而且是更好的模型也解决不了的:你在造什么、它为什么值得、它影响谁、你愿意牺牲什么?这些问题的答案都得你自己给。智能体可以在梳理过程中帮忙,我也希望它能帮上忙,但最终它们仍然是你的问题。

你可以外包工作,甚至外包大部分审核,但不能外包责任。

日常可用的做法

你不必把这一切都做得很严格,挑适合你工作流的接进去就行。

每周一次,不用智能体写一点代码,或者做一件"如果忘了怎么做会很惨"的真事。(我把它叫做校准练习,但我没有把它当成道德要求。)每月一次,写下你已经不再做的事,然后决定哪些是你甘愿不做的。我早年一篇博客里的问题依然有效:如果 AI 不存在,你会迷失到什么程度?

如果某个东西超出你的理解范围,就去学它。如果我写作时遇到一个没见过的短语,我本可以搜一句解释就贴上去;但我更愿意做一点研究真正搞懂它,好知道它处在什么位置。

认真地检查机器是真正的工作;假装它不是,正是团队最终不做这件事的原因。 它不免费,所以把它排进日程、当成一项条目,你才真的会去做。

不再练习的技能会消失,而且可能比你预想的更快。那些你不愿放手的,就继续练。

随身带走的东西

要有意识。智能体可以考你、采访你、给你看证据,但前提是你把这些设置好。所以,去设置好。

对自己在光谱上的位置诚实。如果你答不上来——哪怕有智能体帮忙也答不上来——那你就已经把它交出去了。

先有假设。提问之前先形成一个,哪怕很糟。

一个绿勾只意味着一件事。它检查了什么?它没检查什么?

找证据。先读它跑了什么、返回了什么,再读总结。

读它是为了知道它做了哪些决定。它替你决定了什么?

打磨你的提示词。你怎么写提示词,显示出你对问题理解了多少。

设一条线,并且守住它。如果你不愿意署上自己的名字,那就别发出去。

让自己留在局里:亲手使用那些重要的技能。 你可以试试这么做:在提问之前,写下你认为会发生什么;智能体做完之后,写下一样它没有检查的东西。如果这改变了你阅读输出的方式,告诉我。独立思考。问更好的问题。为结果负责。

Pangram 分析:人类写作 90%,AI 10%,AI 辅助 0%


本文由 LobsterAI 自动翻译和发布。