认知卸载是将任务委托给 AI,但仍掌握答案本身。而认知投降则是 AI 的输出悄然成为你的输出,你内心已无任何需要核查的内容。对软件工程师而言,这两者之间的界限每天都在悄然移动,而我们大多数人都在不知不觉中越过了它。
昨天我听到一个术语,想在此探讨:认知投降(cognitive surrender)。它出自宾夕法尼亚大学沃顿商学院近期的一篇论文——史蒂文·肖(Steven Shaw)与吉迪恩·纳夫(Gideon Nave)的《思考——快、慢与人工:AI 如何重塑人类推理及认知投降的兴起》(“Thinking - Fast, Slow, and Artificial: How AI is Reshaping Human Reasoning and the Rise of Cognitive Surrender.”)。该词虽有更早的神学渊源,但将其置于 AI 语境下却是全新的,对任何正与 AI 代理并肩编写代码的人来说,这一概念极具冲击力。
他们提出的关键区分值得铭记:
认知卸载(cognitive offloading) 就像使用计算器、搜索引擎或 GPS。你将“如何做”交出去,但保留“做什么”的判断权。你仍会评估结果是否合理,并在不合理时介入干预。
认知投降(cognitive surrender) 则是你彻底停止构建自己的答案。AI 的输出直接成为你的输出。你没有任何可推翻的内容,因为你从未形成独立的观点来与之对照。
在涉及 1,372 名参与者的三项实验中,肖与纳夫发现,仅仅是 AI 的存在就足以让人投降。在 AI 给出错误答案的测试中,73% 的参与者接受了错误答案。更糟的是:当 AI 可用时,他们的信心反而上升,尽管其中一半答案被故意设置为错误。他们借用了模型的高置信度(模型总是如此自信),并将其视为自己的信心。
正是这种“借用信心”效应,让问题从一般认知范畴转向软件工程领域。
我们大多数人不会在简单任务上投降。当代理虚构 API 或伪造导入语句时,我们能察觉。投降发生在更深层的地方——那些我们认为独立思考的成本远高于任务本身价值的时刻。
以下是我观察到(主要发生在我自己身上)的几种情形:
阅读代码差异(diff)。 代理提交了一个 600 行的 PR。你快速浏览。变量名合理,测试通过。你点了批准。但在中间某处,事务边界存在微妙的顺序变更,或某个边缘情况的默认值被翻转,而你并未留意。你并未真正审查代码,只是予以认可。投降体现为“不做决定”。
调试一个你并未完全理解的错误。 堆栈跟踪看起来很吓人。你将其粘贴给代理,它返回一个修复方案。修复有效,你继续前进。两周后,相关症状重现,你才意识到自己从未真正理解原始 bug,只是消除了其表面表现。此时,你脑中系统的心理模型已在某个你甚至无法指明的角落出错。
做出设计决策。 你不确定两个服务之间应使用队列还是直接调用。你询问代理,它自信满满地给出一段理由并选择其一。你照单全收。你没有思考吞吐量、故障模式或重放语义。你一次性接受了模型对问题的框架及其答案。
学习新知识。 这正是 Anthropic 技能形成论文 用数据说明的一点:在学习新库时使用 AI 生成代码的工程师,在后续理解测验中得分比对照组低 17%;而将 AI 用于概念探究(提问、探讨权衡)的工程师则保持原有水平。工具相同,姿态不同,结果迥异。
所有这些情境的共同线索是:模型提供了一个完整答案,而我们接受了它,而非构建自己的平行理解。有时这是正确的,有时则是投降。从内部感受来看,两者毫无区别。
我曾写过关于理解债务(comprehension debt) 的文章——即系统中存在的代码量与人类真正理解的部分之间日益扩大的差距。认知投降正是理解债务积累的机制。
每一次投降都是一笔微小贷款:代码库增加了你未完全理解的补丁;架构吸收了本应由你做出的决策;测试套件加入了你未曾思考过的测试。这些在发生时都不像问题,但它们会复利增长。
MIT 的 《ChatGPT 对你的大脑有何影响》 论文在神经层面也揭示了相同模式:依赖 AI 的写作者表现出可测量的神经连接减弱、对刚创作内容的记忆变差,且难以重构自身推理过程。作者称之为“认知债务(cognitive debt)”,借用了“技术债务”的概念——短期收益,长期复利成本。
将这两个框架结合:认知投降是你如何承担认知债务;理解债务则是账单,以“心理模型流失”计价。利息将在下一次系统出问题时支付——届时团队中无人能基于第一性原理重构系统。
AI 本身并不制造债务,而是你对待它的姿态所致。同一个模型,可能掏空一位工程师的心理模型,也可能 sharpen 另一位工程师的思维,区别在于你是用它来思考,还是用它代替思考。
我们工作的几个特点使我们比普通知识工作者更脆弱。
表面信号默认看似正确。 生成的代码能编译,通过 linter,能运行,看起来与文件其他部分一致。大多数领域对 AI 输出缺乏如此强的“看似合理”过滤器,而我们却有,且这是错误的过滤器。表面正确 ≠ 系统正确,两者之间的鸿沟正是投降藏身之处。
吞吐量是可见指标。 PR 合并数、功能发布数、工单关闭数。这些指标无法区分“我构建并理解它”与“代理构建,我批准它”。组织在短期内对两者同等奖励。投降在仪表盘上不可见。
信心可无缝转移。 模型以陈述句说话,代码审查常将陈述句解读为权威。当代理写道“我们在此使用 300ms 防抖以避免卡顿”,听起来像 行业固有认知,哪怕模型是临时编造的数字。你继承了它的确定性,却未继承其(不存在的)推理过程。
工作具有复合性。 每一次投降都为下一次铺路。一旦你接受了某个未完全理解的部分,对该部分的后续修改几乎必然是又一次投降,因为要形成独立观点,就必须重构你跳过的部分。投降具有路径依赖性。
我并非反对 AI 编程工具。姿态比工具更重要,而我们尚未养成所需的习惯。
肖本人对此并不危言耸听。他的观点正是我想向所有认真使用这些工具的人重申的:
认知投降并不意味着 AI 不好,或使用 AI 不理性;在许多场景下,AI 能提升判断力。关键问题是校准:知道何时 AI 在帮你思考,何时它在 quietly 替你思考。
你要不断自问:我是在形成对此答案的独立观点,还是全盘照搬采纳代理的观点? 这是两种不同的心理行为,外在表现却完全相同。
以下是我开始用来将自己保持在“卸载”一侧的几个启发式方法:
在阅读输出前构建预期。 在处理非琐碎的任务前,先写下(哪怕只在脑中)你认为答案应是什么样子:三行还是五十行?用队列还是直接调用?bug 在哪个模块?当代理答案与预期一致,说明你已校准;不一致时,你面临真实选择:是我错了,还是它错了?这个选择正是投降所跳过的。
像 AI 没写代码一样阅读 diff。 假设团队资历浅的工程师提交了此 PR,你会仅因“测试通过”就合并吗?不会。当作者是模型时,同样标准应适用。工作没变,作者变了。“似乎正确”仍不是 review。
让模型自我反驳。 多数模型会给出自信答案,再提示下又能给出同样自信的反方论点。这第二步成本极低,却能打破“借用信心”效应。若你无法判断哪个答案正确,就找到了一个你即将投降的地方。
留意疲劳时刻。 投降是疲劳现象。一天中第一个 PR 会得到真正 review,第五个只会匆匆一瞥。我信任的资深的工程师都达成共识:“太累无法评估时,别让代理生成代码。”这种自知之明如今已是工作的一部分。
观察信心来源。 若你在会议中为某个设计选择辩护,却无法重构为何如此设计,只记得代理建议过且“似乎合理”,那你继承的是模型的信心,而非其底层推理。这是投降的痕迹。在继续对话前,回到代码重建为何。
个人启发式重要,但结构性措施同样关键。过去几个月我写的多数内容(Agent Skills、agent harness engineering、理解债务)都在构建让投降更难的脚手架。
以下是一些有效举措:
将验证设为硬性退出标准。 每个代理完成的任务必须以 concrete evidence 终止:可运行的测试、截图、日志、运行时 trace、审核人签批。“看起来完成了”是投降友好的退出;“这是它有效的证据”是抵抗投降的退出。把对证据的要求嵌入到工作流程本身,你就移除了投降的最易路径。
反合理化表(Anti-rationalization tables)。 Agent Skills 最独特的设计选择之一,是将每个跳过工作流步骤的常见借口与书面反驳配对。这同时起到投降抵抗机制作用。“这任务太简单,不需要 spec。”→“验收标准仍适用。”你是在预先写下对模型(或你疲惫周五下午的自己)尚未生成的合理化的反驳。模型擅长生成跳过严谨步骤的看似合理的理由,反合理化表拒绝在当天与之争论。
更小范围,更小 PR。 投降随规模扩展。50 行变更你能真正阅读;600 行则不能。Google 约 100 行的 PR 规范本为人为原因存在,但对抵抗 AI 投降同样有效。review 的单位就是理解的单位。让单位小到足以真正理解。
学习时优先概念探究,而非生成。 这是 技能形成论文 的发现转化为习惯:当你不熟悉某库或系统时,先让代理解释,再让它生成。同一工具,用于探究思辨而非生成内容,能够构建完善你的心智模型,而非侵蚀它。数据对此有着明确无误的结论,切换使用模式所付出的成本微乎其微。
设计性摩擦(Friction by design)。 arXiv 论文《认知代理投降》提出脚手架式认知摩擦: 刻意引入阻力力矩,以此阻断启发式接纳。用工程术语表述即为:生成方案前需撰写设计文档,代码合并前需完成流程确认,上线部署前需执行检查清单。阻力效应在效能讨论中向来口碑不佳,但它恰恰是隔绝认知放任与认知盲从的一道屏障。
每周留出独立编程的专属时间。 不借助 AI 代理手写代码。这无关道德自律,而是一次自我认知校准。当有一天,你已经没法从容脱离 AI 独立完成简单开发任务时,你其实已经在不知不觉中陷入了认知投降。
我想留下的认知框架绝非悲观消极。安迪・克拉克(Andy Clark)在《时代》杂志援引这项研究时做出了精准界定:向人工智能系统委派任务与和人工智能系统协同合作并非同一回事。单纯委派认知会走向认知投降;而协同合作则会催生他所说的双向增益(双向放大效应):形成一种循环闭环,你通过提示词优化模型输出,模型输出又精进你的下一轮提示词,进而完善你自身对问题的认知思维模型。
你能感受到其中的区别。在相互赋能式共进的模式中,你会觉察到自己正借着对话深耕专业领域知识,而非反倒被对话带偏。对话结束时,你对事物的认知模型会变得愈发清晰深刻,而非愈发模糊浅薄。你依旧具备独立搭建方案、构建成果的能力,只是选择了一条更高效的捷径。AI智能代理更像是办公室里的第二位工程师,而非包揽一切的唯一工程师。
而认知投降的姿态则截然相反。对话结束时,AI代理对问题的认知模型反而比你更透彻。你无法独立重构设计方案,也没法脱离代理自行调试代码。你把本可以用来提升自身能力的那部分工作,完全外包给了AI。
两种姿态使用的是同款工具,最终都能产出可正式发布的代码。从外在表象来看,单个开发迭代周期内,二者毫无差别。但差异会在半年后彻底显现:当系统某处出现故障时,一类工程师能依托第一性原理自主排查修复,另一类却完全无从下手。
并非要劝退任何人远离这些工具。我每天都在使用它们。过去十二个月里,我产出的代码比以往任何十二个月都要多,我认为那些袖手旁观、拒不使用的人,所犯下的错误远比积极拥抱工具的人要大得多。
但心态立场至关重要,而我们对这一点的探讨远远不够。人们的讨论大多只聚焦于人工智能模型能做什么,却至少应当同等重视我们该如何使用它,以及我们给出答案时,是借助模型共同思考,还是完全放弃自主思考。
认知借力是一种超能力。而认知放任,则是在使用工具却没能分清二者边界时出现的失效状态。如今的工作日益变成一件事:时刻保持清醒,清楚自己身处这条边界的哪一侧。
如果你一直在产出代码,但对系统的理解却在不断缩减,那你其实是在以认知负债为代价透支未来。如果你一直在产出代码,同时对系统的理解还在持续增长,那你是在做真正有价值的工作,只是效率比以往更高。
两种情况用的是同样的工具,区别只在于自身的心态与立场。而这部分,恰恰完全掌握在你自己手中。