AI工具 · 文章

翻译

智能体替你干活时的批判性思维

版权与来源

原作品著作权归原作者或相关权利人所有。本译文由本站完成,译文相关权利的行使仍受原作品授权条款约束。

原文链接:https://x.com/addyosmani/status/2117512471930167377?a=ATZG6M7lAyRWpXpjXDU&s=20

过去,人们这样教批判性思维:以谦逊的好奇心和适度的怀疑去面对新信息,听取不同观点,形成自己的判断。这话今天依然成立,但自从我的大部分工作都交给智能体去跑,日常里已经越来越没有什么东西会逼我做批判性思考了。对于那些已经全面拥抱智能体工作流的工程师和产品人(同时开好几个会话并行跑,并且期待模型越来越强),我想先说明:我是这些工具的忠实拥趸,写这篇文章不是为了劝大家少用智能体。

我的目标是:在一个什么都能轻易甩给智能体的世界里,帮你保住批判性思维。

过去,我们大部分的认知加工和审美判断,都发生在"提出问题"和"得到答案"之间的那段空隙里。如今这段空隙只有几秒钟。你越依赖智能体工作流,保持批判性就越难,只是难的方式和大家预想的不一样:模型越强,明显的错误就越少。很多(甚至大多数?)输出都会写得很漂亮、基本正确,却不会让你想再看第二眼。

就算你同时跑着很多个智能体,审视这些输出的也只有你一双眼睛。

你必须主动把批判性思考安排进每天的工作,因为默认情况下,没有任何东西会替你做这件事。

这件事之所以很难自我纠正,部分原因在于智能体工作流用起来很舒服。忙碌的一天里,能快速拿到舒服、而且常常正确的答案,确实让人神清气爽,但也正因如此,人很容易放松警惕。

卸载、依从与投降

跟人讨论这个话题时,我会把它描述成一条光谱:

最上端是认知卸载:把任务委托给 AI,但仍然对结果负责。我整天都在这么做,你也应该这么做。中间是依从:工具的输出直接变成了你的新输入,结果不再是一个有待检验的假设。最下端是认知投降:AI 的输出悄无声息地变成了你自己的观点,你完全不觉得需要检查。

"认知投降"这个词由沃顿商学院的 Steven Shaw 和 Gideon Nave 提出,它恰好概括了我一直观察到的现象:随着信任(或者说惰性)增加,人们会沿着这条光谱一路往下滑。这种滑落很少被察觉,因为每一步都很平缓,看上去也都合情合理。上一个答案你读得很仔细,于是下一个你就扫了一眼;再下一个,你只看了看骨架。然后有人问你其中某一行是怎么回事,你答不上来,哪怕借助你的智能体也答不上来。

这就是认知投降,认知债务就是这样积累起来的。它通常要等到你想调用脑子里对这个系统的心智模型时才会暴露:你发现那个模型根本不存在。

Margaret-Anne Storey 写过这种现象在团队里的表现:大家对一套共享系统的整体理解在慢慢流失。我也写过它在代码层面的对应物:理解债务(这个词由 Jeremy Twei 提出)。在当下,它完全是隐形的:代码库看起来干干净净,测试全部通过。直到你需要改动系统,才发现已经没有人真正理解它了。只读了一份战略文档或需求规格的目录就签字通过,也是同样的道理。

需要说明的是,我并不是在要求做不到的事。对一个大型现代代码库,任何人都不可能在脑子里装下完整的心智模型。Claude Code 团队公开说过,他们是按需重建理解的:需要搞懂某一部分时,就让 Claude 讲解那一块,而不是把整个模型都记在脑子里。我之前也写过,这类债务比大多数工程师想象的更容易偿还。只要你能在需要时在局部把模型重建起来,就不必时刻维护完整的模型。你只需要清楚自己缺的是哪一块。

风险低的事情,尽管全权委托。但如果某个问题的答案你讲不清楚,哪怕借助智能体也讲不清楚,那你就已经交出了所有权。

这也不总是坏事。就在最近,我要录一门课,得从三家评分差不多的酒店里挑一家当录制地点。我没时间把所有评价一条条看完,就把这个决定交给了 AI。结果没问题,下次我还会这么做。但如果是决定怎么投资家里的钱、怎么给孩子的职业选择出主意,或者在工作中决定要做什么、哪些改动会影响哪些用户、能不能安全上线,我就不会这么做。出错代价低的事情,放心交出去;后果要由别人承担的事情,推理过程要留在自己手里。

我会问自己的问题

以前每当不知道自己怎么想的时候,我通常会回到一份最基础的问题清单:我怎么知道自己在解决正确的问题?我怎么知道自己的解法是对的?有没有证据支持我的结论?我怎么知道自己已经做完了?大多数时候,这无非就是谁、什么、哪里、为什么、何时、如何这几个问题。写出来幼稚得可笑,但它会逼你从那些平时会忽略的角度去思考。如今,人们太容易跳过这一切,直接问智能体"你觉得我该怎么做"。下面是这些问题的新版本,也是我现在会问自己的问题。

提问之前,我有没有先形成一个假设? 在让智能体执行任何不那么简单的任务之前,我都会先写下(哪怕只是在脑子里)我认为答案可能是什么。猜得很烂也没关系,有了新信息随时可以改主意。但一旦你读过一个写得很漂亮的回答,就很难再想象出其他可能性了。如果你完全没有头绪,可以试试 Thariq Shihipar 所说的盲点排查:把你知道的告诉模型,让它帮你找出那些你不知道自己不知道的东西。

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

要让这个结论出错,需要什么条件成立? 然后去验证。模型对自身把握程度的自我评估,远不如一个你能实际执行的测试有价值,所以给它一个测试。

我有没有从另一个角度听过反方观点? 当我在某个比较开放的问题上持有强硬立场时,我会让不止一个模型来论证相反的观点,然后审视它们的输出,再形成自己的看法。这样更花时间,但最后我对这个主题的了解会深入得多。

当着要维护它的人的面,我敢不敢为它打包票? 这不只适用于代码,也适用于你交付的任何东西。我认为这才是"能为它负责"的标准。

有哪些事情我已经不再练习了? 也许是一些日常的调试工作。放掉其中一部分我可以接受,但我希望这是有意为之的。

把验证变成习惯

最近我写了很多关于验证的内容,因为我相信瓶颈已经从写代码转移到了确认自己是对的。当你给智能体提供验证自身工作的手段,无论是端到端测试、属性测试,还是实际操作应用,它就能在你看任何东西之前,自己完成"改动、运行验证、读取输出、再次尝试"的循环。这就是 Boris Cherny 说的"给 Claude 一个验证自己工作的方法",我认为这是获得好结果最关键的环节之一。你不必逐行阅读,而是去搭建这些循环,然后审查证据。

但验证本身也可能被你"投降"掉。"有没有证据支持我的结论?"变成了"检查变绿了吗?"。智能体让写测试变得如此廉价,你会看到满屏的绿色,可能有一个测试顺利通过,却根本抓不到一个已经坏掉的功能。如果测试和功能犯了同一个错误,测试照样会通过。而且一个绿色的勾只说明了一件事,人却很容易以为它覆盖了一切。

检查变绿的时候,先问它证明了什么,再问它没证明什么。

事先定义好什么叫"验证通过",因为事后你总能为任何结果找到合理化的理由。

智能体工作的终点应该是某种看得见摸得着的东西:一个通过的测试、一张截图、一段日志或追踪记录。这样才能保证"完成"的标准是基于事实的,而不是凭"看起来做完了"这类感觉去解读(进而投降)。收到智能体的完成通知时,先别看总结,先去看它实际执行的命令和输出。

Claude Code 还可以自我批评:用一个上下文全新的子智能体来检查它自己的工作,作为一道合理性检查。值得把这一步固化进流程,让它每次都跑,而不是只在你想起来的时候才跑。最后我还是会问一句"我是不是漏了什么?"。这听起来有点傻,但很多次,我用前沿模型做完一个复杂功能,看过、审过之后再问一句"我是不是漏了什么?",它都会再给出两三条。所以我每次都会问。

当然,这些都不必成为常态,知道什么时候该深挖本身就是一项技能。在我们介绍 Claude Code 团队如何做代码审查的文章里,我最喜欢的一条经验法则是:"如果你说不出这些检查会漏掉什么,那就去要一次真正的审查,而不是一个快速的批准。"

这同样适用于代码以外的工作。如果智能体帮你汇总了五十通客户电话,或者做了一份竞品分析,去抽查几份原始材料,确认总结是准确的。你的建议依赖于哪个数字,就去核实这个数字是不是算对了。

智能体让搭建验证变得很便宜,真正难的是知道好的验证应该是什么样子。

真正去关注生成的内容

假设智能体给了你一个 600 行的 PR。你粗略看了看结构,没有逐行读。变量名看起来挺合理,测试也都通过了,于是你批准了。但在中间某个地方,事务边界的顺序被悄悄调换了,或者某个你从没想到过的边界情况的默认值被反转了。你确实审查过了,我想是吧,但你只找到了你本来就知道要找的东西。

写代码和审代码是两种不同的技能,而且审查到了某个程度就会沦为盖章。所以,读 diff 时要假装它不是 AI 写的,然后越过 diff 本身,去看智能体做了哪些决定。在一个长会话里,它会替你做很多小决定:默认值怎么设、哪些不在范围内、两个需求冲突时它重新解读了哪一个。

一份说"一切顺利"的总结里,你看不到这些。所以要让它列出它做过的决定和假设,然后考考自己:随机挑几行,问问自己这一行是干什么的、那一行又是怎么回事。如果是文档,就把它关掉,试着凭记忆写出主要论点。有些人在长会话里有个我很喜欢的习惯:让 Claude 写一份关于这次改动的报告,并在末尾出一份小测验,规则是"只有满分通过测验,我才合并"。

对你要上线的东西,理解到足以为它辩护的程度。因为总有一天,会有人来问。

智能体也可以帮你守住注意力。比如我有一个开源项目,会收到大量的 PR。我会用智能体帮忙梳理哪些 PR 进来了、哪些违反了我们的规范、哪些地方很可能需要我亲自看。我很少让智能体自己做决定,但它们能帮我缩小范围,告诉我该把注意力放在哪里,这样我才能真正去思考这些改动是不是在用正确的方式解决正确的问题。

还有产出量的问题,这一点你必须对自己诚实。我把它叫作编排税:智能体产出的东西,和你愿意署上自己名字的东西,两者之间的差距。如果做完的工作堆积的速度比你处理的速度还快,那么在解决这个问题之前,再多开一个会话也没用:要么把检查做得更严,让更少的东西需要你亲自过目;要么放慢速度。

当你产出的东西多到你无法为之担保时,你就不是在审查了,你是在祈祷。

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

人的心智模型依然参与其中,只是位置从中间移到了两头。你把精力投入到前端的任务描述和上下文,以及后端的输出审查上。这就是为什么好的输入对输出质量如此重要,我也把写好提示词看作一项批判性思维技能。

过去,如果你提出一个含糊的要求,会有人追问你,然后你可能才意识到:"哦等等,这件事我其实还没想清楚。"智能体通常不会在这时拦住你。它会把你没说的部分自行补全,交回来一个看起来已经完成的东西,尽管背后的想法依然模糊。我把这称为意图债务:那些隐含的目标、约束和理由,可能存在于并非你亲手写下的产物里。和其他类型的债务不同,这一笔没人能替你偿还。意图必须来自你自己。

你的提示词反映了你对问题的理解。如果你没法把它清楚地表达出来,那它在你自己脑子里可能也不清楚。

在寻求帮助之前,先用自己的话写一份需求简报,讲清楚受众是谁、哪些不在范围内、怎样才算完成。如果改到第二轮还没达到目标,就别再修修补补了,重写你的提示词。

这件事也可以让智能体帮你。我很喜欢 Andy Clark 对"委托给 AI 系统"和"与 AI 系统协作"所做的区分。在后一种情况下,你处于一个相互放大的良性循环:你的提示词让输出更精准,输出又让你的下一个提示词更精准,也让你对问题的心智模型更清晰。如果还不清楚,就让智能体就它不理解的地方来访谈你。如果结束会话时,你自己的心智模型变得更清晰了,那就说明这次成功了。

还要留意输入本身。很容易出现这种情况:每个智能体都只是把上一个智能体的总结塞进自己的上下文,没过多久,第三个智能体就已经没读过原始文档了。

你还需要给输出定下自己的标准。我在很多不同的创作媒介里尝试过 AI,其中大部分作品从来没拿出来过,因为没达到我的标准。现在所有东西出来都排版漂亮、语气自信,所以"打磨得好不好"已经不再是一个有用的信号了。

AI 也许让产出变快了,但如果我不愿意把这个输出算作我自己的作品,我就不会把它拿出去。

当某样东西没达到你的标准时,把原因记到共享配置、钩子或测试里,避免同样的问题再次发生。品味就是这样复利增长的,而记下某样东西为什么被淘汰,本身就是很好的练习。

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

如果你和我身边许多人一样,对这个领域的未来非常乐观,那你大概在前面几节就已经冒出这个念头了:再过一两年,我能发现的问题模型也都能发现,那何必还要保持这项技能呢?

在很多检测工作上你可能是对的,我自己也一直主张把越来越多的检测交给智能体。但我认为这件事依然重要,原因是:说到底,总得有人为上线的东西负责。无论 AI 帮了多少忙,都必须有一个人来承担责任。

某项任务该多信任智能体,这件事本身就是一个判断。保持判断准确的一部分功课就是审查它的工作,因为模型会犯错的地方一直在变。Anthropic 针对自家工程师和研究员所做的研究,把这个陷阱称为"监督悖论":"监督 Claude 所需要的,恰恰是那些可能因过度使用 AI 而退化的编程技能。"

下面这些是我最在意、也是更强的模型解决不了的问题:你在做什么?为什么值得做?它会影响谁?你愿意牺牲什么?这些问题都需要你自己来回答。智能体可以在你思考的过程中提供帮助,我也希望它能帮上忙,但归根结底,这些问题仍然属于你。

你可以把工作、甚至大部分审核都交出去,但责任交不出去。

日常实践

这些不需要你一丝不苟地全部照做,挑适合你工作流的用就好。

每周一次,不借助智能体写一点代码,或者做一件"要是忘了怎么做就糟了"的实事。(我把这称为校准练习,但我说的不是道德意义上的校准。)每月一次,写下你已经不再做的事情,并决定其中哪些你可以接受不再做。

我以前一篇博客里的一个问题至今依然适用:如果 AI 不存在,你会有多迷茫?

如果某样东西超出了你的理解范围,就去学。我写作时如果碰到一个没见过的说法,本可以 Google 一句话的解释直接放进去,但我更愿意花点时间研究一下、真正弄懂它,这样才能看清它在整个知识体系里处于什么位置。

认真检查机器的产出是实打实的工作,假装它不费力气,正是团队最终不去做这件事的原因。它不是免费的,所以把它当作一项正式的工作排进计划,你才会真正去做。

你不再练习的技能会慢慢消失,而且很可能比你想象的更快。 那些你不愿意失去的技能,就坚持练下去。

带走这些

  • 有意为之。 智能体可以考你、访谈你、给你看它的证据,但前提是你把这些设置好。所以,去设置好。

  • 诚实面对自己在光谱上的位置。 如果你讲不清楚答案,哪怕借助智能体也讲不清楚,那你就已经向它投降了。

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

  • 绿色的勾只代表一件事。 它检查了什么?没检查什么?

  • 找证据。 先看它运行了什么、返回了什么,再看总结。

  • 读懂它替你做了哪些决定。 它都替你决定了什么?

  • 用心写提示词。 你怎么写提示词,反映了你对问题理解了多少。

  • 定下标准,并且守住它。 如果你不愿意署上自己的名字,就别把它交出去。

亲手去运用那些重要的技能,让自己留在场上。有一件事你可以试试:提问之前,写下你认为会发生什么;智能体完成之后,写下一件它没有检查的事。然后告诉我,这是否改变了你阅读输出的方式。独立思考,问更好的问题,为结果负责。

image.png

版权声明

本文内容版权归作者或相关权利人所有。转载、引用或其他使用请遵循相应授权条款,并保留本文链接。

XuYi,《智能体替你干活时的批判性思维》,https://xuyi.dev/2026-11-06-kvwavq

原文链接:https://x.com/addyosmani/status/2117512471930167377?a=ATZG6M7lAyRWpXpjXDU&s=20

Comments

评论

正在加载评论…