跳到正文
RadarAI· X:Addy Osmani (@addyosmani)·· 4 小时前AI 评分58

Addy Osmani 谈 Agent 时代如何保持批判性思维

AI 导读

Addy Osmani 发文探讨在大量使用 Agent 工作流后如何保持批判性思维。他提出认知卸载、拖延、认知投降三段光谱,认为模型越强、输出越流畅,人越容易在不知不觉中放弃独立判断。他给出的做法包括提问前先写假设、把验证标准前置为可执行测试、要求 Agent 列出它替你做的决策与假设、用测验收尾而不是读摘要,以及定期手写代码做校准练习。

正文 · AI 翻译

Addy Osmani· @addyosmani · X·2026-11-03 15:01· 1 小时前精选AI 评分72

AI 导读

Addy Osmani 发文探讨在大量使用 Agent 工作流后如何保持批判性思维。他提出认知卸载、拖延、认知投降三段光谱,认为模型越强、输出越流畅,人越容易在不知不觉中放弃独立判断;并给出具体做法,包括提问前先写假设、把验证标准前置为可执行测试、要求 Agent 列出它替你做的决策与假设、用测验收尾而不是读摘要,以及定期手写代码做校准练习。他强调可以卸载工作和审计,但不能卸载责任。

推荐理由

作者基于自身 Agent 工作流经验,提出从认知卸载到认知投降的判断框架和一套可自查的提问清单,方法可直接迁移到日常 AI 协作。

正文 · 原文

https://x.com/i/article/2116367635365695488

【X 长文】当 Agent 替你干活时,如何保持批判性思维

过去,批判性思维被教导为以谦逊的好奇心和适度的怀疑态度面对新信息——接纳不同观点,形成自己的判断。这依然成立,但如今我的大部分工作都通过 Agent 完成,日常中越来越没有什么能迫使我进行批判性思考。对于那些已经完全拥抱 Agent 工作流的工程师和产品人(并行运行多个会话、期待模型不断进步),我想说:我是这些工具的忠实拥趸。我写这篇文章并非为了倡导减少 Agent 工作流。

我的目标是帮助你在一个可以轻易把任何事都卸载给 Agent 的世界里保持批判性思维。

过去,我们大部分的认知和审美加工都发生在问题与答案之间的空间里。如今这个空间以秒计算。你越使用 Agent 工作流,这件事就越困难(不过并非以人们预期的方式):随着模型进步,明显错误的比例降低了。许多(大多数?)输出会写得很好、大体正确,但它们不会要求你再看一眼。

即使你同时运行多个 Agent,盯着输出的仍然只有你一双眼睛。

你必须把批判性思维内建到日常中,因为默认情况下没有任何东西会替你做这件事。

难以自我纠正的部分原因是,Agent 工作流令人愉悦。在忙碌的一天里,快速、愉悦、通常正确的答案令人耳目一新,但这也正是你容易放松警惕的原因。

卸载、拖延与投降

与人讨论这个话题时,我把它描述为一个光谱:

最上层:认知卸载,即把任务委托给 AI,但保留对结果的所有权。我整天都在这么做。你也应该如此。中间层:拖延,即工具的输出成为你的新输入;结果不再是假设。最下层:认知投降——AI 的输出悄然变成你自己的,你觉得没有必要去检查。

认知投降是 Wharton 的 Steven Shaw 和 Gideon Nave 创造的术语。它恰好契合我所看到的现象:随着信任(或懒惰)增加,人们会沿着光谱向下滑。这种转变很少被察觉,因为每一步都是渐进的,而且看起来合理。你认真读了上一个答案,于是下一个你只是略读。再下一个你只扫一眼骨架。然后有人问起某一行,你解释不了,即使有 Agent 帮忙也不行。

这就是认知投降。认知债务就是这样累积起来的。通常,当你试图套用某个系统的心智模型,却发现它并不存在时,这个问题才会暴露出来。Margaret-Anne Storey 曾撰文描述过这在团队中的表现:对共享系统理论的理解不断被侵蚀。我写过代码层面的对应物——理解债务(这个词由 Jeremy Twei 提出)。在当下,它完全不可见。代码库看起来一尘不染,测试也全部通过。直到你必须对系统做出一处改动,才意识到已经没人理解它了,这时问题才变得明显。你读过一份战略文档或规格说明的目录并签字确认,也是同样的道理。

需要说明的是,我并不是在提倡不可能做到的事。要为一个庞大的现代代码库维持完整的心智模型是不可能的。Claude Code 团队曾公开表示,他们按需重建理解:当需要理解某一部分时,他们让 Claude 解释那一块,而不是把完整模型装在自己脑子里。正如我之前写过的,这类债务比大多数工程师以为的更可恢复。你不需要维持完整模型,只要能在需要时局部重建它就行。你只需要知道自己缺什么。

在风险低的地方,尽管完全委托出去。当你无法解释一个问题的答案——哪怕是通过你的智能体来解释——你就已经放弃了所有权。

这也不总是问题。就在最近,我在录制一门课程,需要从三家评分相近的酒店中选一家作为录制地点。我没时间手动看完所有评论,于是把决定委托给了 AI。它奏效了,我还会这么做。但是,在决定如何投资我们的钱、如何指导孩子的职业,或者在工作中决定该构建什么、哪些改动会影响哪些用户、发布是否安全时,我不会这么做。在犯错代价低的地方放手,在别人要承担后果的地方保留推理。

我问自己的问题

当我不清楚自己在想什么时,通常会回到这样一份基本问题清单:我怎么知道自己在解决正确的问题?我怎么知道我用的是正确的方法?有证据支持我的结论吗?我怎么知道自己完成了?大多数时候,这就是谁、什么、哪里、为什么、何时和如何。写出来看,它显得幼稚得可笑,但它迫使你从那些你本来会忽略的类别去思考。如今,跳过这一切、直接问你的智能体该怎么做,实在太容易了。这些是我现在问自己的新版问题。

在提问之前,我是否形成了假设?在让智能体执行任何非平凡任务之前,我都会写下——哪怕只是在脑子里——我认为答案可能是什么。猜得不好也没关系。你随时可以根据新信息改变想法。不过,一旦你读到一个写得很好的回答,就很难再想象其他可能性了。如果你完全没有头绪,就请求 Thariq Shihipar 所说的盲区扫描:把你已知的东西给模型,让它找出你的未知之未知。

我是在让它帮我思考,还是在把思考卸载给它?两者都可以,只要你知道自己在做哪一种。

要让这件事是错的,需要满足哪些条件?然后去查证。模型对自身置信度的自我评估,远不如你能实际执行的测试有价值,所以给它一个测试。

我是否从不同角度听过反方论点?当我对某个有些开放式的问题持强硬立场时,我会让不止一个模型来论证相反的一方,然后审阅输出并形成我自己的观点。这更耗时,但最终我对该主题的了解会多得多。

我敢在必须维护它的人面前为此打赌吗?这适用于代码,也适用于你交付的任何其他东西。我认为这就是可问责的标准。

我不再练习的是什么?也许是某些常规调试。我可以接受放下其中一部分,但我希望这是有意的。

将验证作为一种习惯

我最近写了很多关于验证的内容,因为我相信瓶颈已经从写代码转移到了确保你是对的。当你给智能体提供验证其工作的手段时——无论是通过端到端测试、属性测试,还是通过实际的应用交互——它就能在你还没看任何东西之前,完成修改、运行验证测试、读取输出并再次尝试。这就是 Boris Cherny 所说的“给 Claude 一种验证其工作的方法”,我相信这是取得出色成果的最关键要素之一。你不必逐行阅读,而是会构建这些循环并审阅证据。

你也可以放弃验证。“是否有证据支持我的结论?”变成了“检查是否变绿了?”智能体让创建测试变得如此廉价,以至于你会看到很多绿色,而你可能有一个通过的测试却没能发现损坏的功能。如果测试与功能犯了同样的错误,它就会通过。而一个绿色对勾只传达了一个属性。人们太容易想象它涵盖了一切。

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

提前定义“已验证”,因为事后你会为任何结果找理由。

智能体工作的终点应该是切实可见的东西:一个通过的测试、一张截图、一份日志或追踪记录。这确保完成工作的标准是事实性的,而不是基于“看起来完成了”之类的东西来解读(和放弃)。当你收到智能体的完成通知时,在看摘要之前,先查看所执行命令的代码片段及其输出。

Claude Code 还可以(通过一个全新上下文中的子智能体)对自己的工作进行自我批判,作为健全性检查,值得将其固化到循环中,使其每次都运行,而不只是在你记得的时候才运行。我最后仍然会问“我有没有遗漏什么?”这听起来很傻,但很多时候,当我用前沿模型完成一些复杂的功能工作、查看它、审阅它,然后问“我有没有遗漏什么?”时,它会再回来给出两三件更多的事情。这就是为什么我总是问。

当然,这些都不必成为常态;知道何时深入是一种技能。我最喜欢的经验法则来自我们关于 Claude Code 团队如何进行代码审查的文章:“如果你说不出这些检查会遗漏什么,那就要求一次真正的审查,而不是快速批准。”

这不仅适用于代码。如果智能体为你汇总了五十通客户来电,或做了一份竞品分析,请抽查几份源文档,确认摘要准确无误。检查一个你的建议所依赖的数字,确认它计算正确。

智能体让验证变得容易搭建。对你来说,难的是知道好的验证是什么样子。

真正关注生成的内容

假设智能体给了你一个 600 行的 PR。你大致看了看结构。你没有逐行阅读。变量名看起来合理,测试也通过了,于是你批准了它。但中间某处有一个事务边界上的细微顺序变化,或者一个你从未想过的边缘情况下的默认值被翻转了。你确实审查了,我猜,但只是针对你早已知道会发现的东西。

写代码和审查代码是不同的技能,而且有一个临界点,审查会变成走过场。所以,把 diff 当作不是 AI 写的那样去读,然后越过 diff 去看智能体做了哪些决定。在一个长会话中,它为你做了很多小决定:默认值、什么在范围之外、当两个需求冲突时它重新解释了哪一个。

在一份说一切顺利的摘要里,你看不到这些,所以让它列出所做的决定和假设。然后考考自己。随机挑几行问,这一行呢?那一行呢?对于一份文档,合上它,试着凭记忆写出主要论点。有些人在长会话中有一个我喜欢的习惯:让 Claude 写一份关于变更的报告,然后在底部给你出个小测验,规则是“只有完美通过测验后我才合并”。

足够了解你交付的东西,以便为它辩护。因为到了某个时候,可能会有人问起。

智能体也能守护你的注意力。例如,我有一个开源项目会收到大量拉取请求。我会用智能体来帮助判断哪些是新增的、哪些违反了我们的准则、以及哪里可能需要我的注意。我很少让智能体自行决定,但它们可以缩小范围,指出我应该关注的地方,然后我才能真正思考这些变更是否以正确的方式解决了正确的问题。

然后是数量问题,你必须对自己诚实。我称之为编排税。它是你的智能体生成的内容与你愿意署名认可的内容之间的差距。如果完成的工作堆积的速度超过你处理的速度,再开一个会话也无济于事,除非你解决这个问题:收紧检查,让更少的内容需要你介入,或者放慢速度。

当你产出的东西超过你能担保的范围时,你就不再是在审查。你是在指望。

输入质量决定输出质量

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

从历史上看,如果你提出一个不具体的请求,总会有人质疑它,而你可能会意识到:“哦等等,我其实并没有把这件事想清楚。”而智能体往往不会在那里拦住你。它会补全你遗漏的内容,交回一个看起来已经完成的东西,尽管其背后的想法仍然模糊不清。我曾把这种现象称为“意图债务”,即那些可能存在于并非由你撰写的产物中的隐含目标、约束和理由。与其他类型的债务不同,这一种没有人能替你偿还。意图必须来自你自己。

你的提示词是你对问题理解的反映,如果你无法清晰地表达它,那么它在你自己的头脑中可能也并不清晰。

在寻求帮助之前,先用你自己的话写一份请求简报。描述受众、范围之外的事项,以及“完成”的定义。当你的第二轮修正仍未达到目标时,停止微调,重写你的提示词。

你也可以让智能体帮你做这件事。我喜欢 Andy Clark 对“委托给 AI 系统”和“与它协作”所作的区分。在后一种情况下,你处于一个相互放大的良性循环中:你的提示词打磨你的输出,打磨你的下一个提示词,并打磨你对问题的心理模型。如果不够清晰,就让智能体就它不理解的地方采访你。如果你在结束会话时完善了自己的心理模型,那就是成功的标志。

还要小心输入。每个智能体很容易就把上一个智能体的摘要直接放进自己的上下文,用不了多久,第三个智能体就没有读过原始文档了。

你还需要有自己的输出标准。我在许多不同的创意媒介中尝试过 AI,其中大部分从未被展示出来,因为它们达不到我的标准。现在产出的东西都格式精美、语气自信,所以“打磨”不再是一个有用的信号。

AI 也许让生产变快了,但如果我不愿意把输出归功于自己,我就不会输出它。

当某样东西达不到你的标准时,把原因记录在共享配置、钩子或测试中,这样它就不会再次发生。品味就是这样积累起来的,而记录某样东西为何未能达标,本身就是一种好做法。

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

如果你和我周围的许多人一样看好这个领域的未来,那么你可能已经有好几节都产生过这个念头。再过一两年,模型就能检测到我能检测到的东西,那为什么还要费心维持这项技能呢?

在检测的许多方面你可能是对的,而且我自己也一直在主张越来越多地把检测推给智能体。但以下是我认为它仍然重要的原因:归根结底,总要有人对最终交付的东西负责。无论 AI 帮了多少忙,都必须由人来承担责任。

对于任何给定任务该在多大程度上信任智能体,这本身就是一个判断问题。保持校准的一部分就是审查工作,因为模型出错的地方在不断变化。Anthropic 自己对其工程师和研究人员的研究指出了这个陷阱,即“监督悖论”:“监督 Claude 需要恰恰是可能因过度使用 AI 而退化的编程技能。”

以下是一些对我最重要、而更好的模型也无法解决的问题:你在构建什么,它为什么值得做,它影响谁,你愿意牺牲什么?这些都是你需要回答的问题。智能体可以帮助你梳理这些问题,我也希望它能做到,但归根结底,它们仍然是你的问题。

你可以把工作以及大部分审计工作外包出去,但责任不能外包。

日常实践

你不需要严格做到这一切。只需把适合你工作流程的部分接入进来即可。

每周一次,在不借助智能体的情况下写一点代码,或者做一件如果忘了怎么做就会很糟糕的真实事情。(我称之为校准练习,但我并不是把它当作一种道德练习。)每月一次,写下你已经停止做的事情,并决定其中哪些是你可以接受不再做的。我旧博客文章里的一个问题依然同样有效:如果 AI 不存在,你会迷失到什么程度?

如果某件事超出了你的理解范围,就去学习它。如果我在写作时遇到一个以前没见过的短语,我可以谷歌一行解释并把它加进去。我更喜欢做一点研究来正确理解它,这样我就能看出它适合放在哪里。

正确地检查机器是真正的工作,假装不是,正是团队最终没有去做的原因。它不是免费的,所以把它列为一项日程安排,你才真正会去做。

你停止练习的技能将会消失,而且可能比你想象的更快。继续做那些你不愿意放弃的技能。

随身携带什么

- 要有意识。智能体可以测验你、采访你并向你展示它的证据,但前提是你设置好这些。所以去设置好。

- 诚实地面对自己处在光谱上的位置。如果你无法解释答案,即使有智能体的帮助也不行,那你就已经把它交出去了。

- 先有一个假设。在提问之前先形成一个假设,即使它很糟糕。

- 绿色对勾只意味着一件事。它检查了什么?它没有检查什么?

- 寻找证据。在阅读摘要之前,先阅读它运行了什么以及返回了什么。

- 通过阅读来了解它做了哪些决定。它为你决定了什么?

- 精心设计你的提示词。你如何写提示词,显示了你对问题理解了多少。

- 设定一个标准,并坚持它。如果你不愿意把自己的名字署在上面,那就不要发布。

通过手动应用重要的技能让自己留在局中。你可以做的一件事:在提问之前,写下你认为会发生什么;在智能体完成后,写下它没有检查的一件事。如果这改变你阅读输出的方式,请告诉我。独立思考。提出更好的问题。对结果负责。

来源:Addy Osmani · x.com

事件后续 · 1

查看事件全部

来源:RadarAI · aihot.news