文婷 发自 凹非寺
量子位 | 公众号 QbitAI
AI越来越聪明,人类却越来越懒得动脑了!
刚刚,前Google Cloud AI总监、现Claude Code工程师Addy Osmani专门发文讨论了这个相当扎心的问题。
在他看来,那些天天指挥Agent写代码的工程师们,可能已经不知不觉陷入了一种状态——认知投降(Cognitive Surrender)。
说白了就是AI写啥,你信啥。
代码能跑,测试全绿,那就大手一挥,“批准!”。
可当真有人问起这段代码为什么这么写时,自己却答不上来。

于是,这位亲手参与打造AI编程工具的工程师,决定亲自给大家支个有意思的招:
让Agent写完代码,再出几道题考考你。
答不上来?那就先别急着合并代码。(doge)


AI越聪明,人越容易被“养废”
Addy Osmani何许人也?
他硕士毕业于英国华威大学,此前在Google工作了14年多,参与过Chrome DevTools、Lighthouse等开发者工具项目,如今则加入Anthropic,参与Claude Code相关工作。
△Addy Osmani
而且,他还是出了名的热门教程高产户。
从Claude Code使用技巧,到Agent工作流、代码审查,几乎隔三差五就有新教程。
不过这一次,他把目光投向了一个越来越现实的问题:
当AI生成的东西越来越靠谱,人类还会认真检查吗?

以前咱们写代码,还得自己哼哧哼哧查资料、琢磨方案、动手调试。
但现在呢?
一句Prompt丢过去,Agent可能几分钟就把活干完了。
更要命的是,随着模型能力的提升,AI写出的代码也越来越像那么回事。
不仅变量命名规范,逻辑看着也顺,测试还一片绿。
于是大家逐渐习惯了第一次认真检查,第二次扫两眼,第三次直接点通过…
久而久之,人类就这么从亲自写代码,变成了给Agent盖章的。
△漫画系AI生成
Addy将这种情况形容为认知投降(Cognitive Surrender)。
它并非一夜之间发生,有一个逐渐加深的过程。
起初可能只是“认知卸载”:我们只是把具体工作交给AI,但自己仍然理解任务,也能判断结果;
接着开始“判断让渡”,AI给出的答案逐渐成为下一步工作的默认依据;
最后就到了“认知投降”:
行了行了,AI说得肯定有道理,那就听它的吧。
至此,连原本应该由自己完成的判断,我们也统统拱手交了出去。
△漫画系AI生成
Addy举了个非常典型的例子:
假如Agent一口气提交了一个600行代码的PR(拉取请求)。
开发者一看,结构清晰、测试通过,ok放心合并。
殊不知,Agent可能在某个不起眼的地方,悄悄改了事务处理顺序,或者调整了某个边界条件。
这些改动没有在当时立刻报错。
但等到系统真出了问题,开发者才突然发现,自己甚至解释不清这段代码为什么这么运行。

最麻烦的还在后面。
Addy认为,长期这样使用Agent,还会积累出一种新的技术债务——理解债(Comprehension Debt):
代码写得越来越多,系统功能越来越复杂。
可开发者对代码的理解,却没能跟着一起增长。
于是,等到真正需要修改某个功能时,大家才恍然发现,这座代码大厦虽然盖起来了,却越来越没人摸得清内部结构,只能茫然地面面相觑,太烧心。

当然,这并不意味着每一行AI生成的代码都要亲自读完。
Addy也提到,Claude Code团队也不会要求工程师随时记住整个代码库,他们会在需要修改某一部分时,借助Claude重新理解相关逻辑。
只是这里有个前提:
你必须得知道自己懂什么,又有哪些地方还没搞懂。
否则,代码写得越快,你的理解债也可能欠得越多。

防沉迷小妙招:让Agent反过来考咱们
那么问题来了。
Agent现在这么能写,咱们究竟该怎样跟上它的速度呢?

Addy在长文里分享了不少自己的实操干货。
其中最有意思的一招,就是让Agent变成考官。
咱假设啊,Claude刚刚完成了一项大型代码修改。
先别急着点通过。
我们可以先让它总结这次到底改了哪些地方、为什么这么改,再根据修改内容给我们自己出几道题,并立一条规矩:
只有测验全部答对,代码才能合并。
这样一来,我们就能真正清楚和理解自己究竟批准了什么,避免出现不必要的错误。

除此之外,Addy还多分享了几招,我也都给大家梳理出来啦(  ̄▽ ̄)σ。
妙招1:写Prompt之前,自己先动脑列出需求清单
Addy提到,现在的Agent确实太擅长补全需求了。
哪怕我们自己还没想明白要什么,它也能交出一份像模像样的作品。
可问题恰恰出在这里,需求里那些没说清楚的目标、限制和取舍,可能就这么被AI替你决定了。

Addy把这种情况称为“意图债”(Intent Debt)。

所以他建议,下达任务之前,我们最好先用自己的话写一份简短的需求说明。
包括面向谁、想解决什么问题、哪些事情不需要做,以及做到什么程度才算完成。
先想清楚,再让Agent开工。
如果连续调整两轮Prompt仍然得不到想要的结果,那咱们就该回头重新梳理需求了,而不是继续往上堆提示词。
妙招2:让Agent主动交代,它背着你做了哪些决定
这一点尤其适合长时间运行的任务。
因为Agent在执行过程中,可能会自行选择默认参数、调整实现范围,甚至在不同需求发生冲突时做出取舍。
这些决定,它未必会主动写进最后的总结里,甚至自然到难以察觉。
所以,比起只问一句“完成了吗”,Addy建议我们不妨继续追问:
你做了哪些我没有明确授权的决定?
哪些地方依赖了自己的假设?
还有什么没验证?
以及,哪些改动可能影响其他功能?
这样一来,大家至少就能看清Agent在执行过程中作出了哪些取舍,再可以根据代码和测试结果逐步核对Agent自己交代的内容了。

妙招3:别光看测试全绿,还得问它没测什么
Addy特别提醒,所谓绿色的测试结果只证明测试覆盖到的条件通过了。
如果边界情况根本没有写进测试,Agent照样可以交出一份看起来很漂亮的报告。
因此,他建议大家仔细查看实际执行了哪些测试、返回了什么结果,再去读AI生成的总结。
对于高风险修改,还可以增加独立检查,让另一个Agent从不同角度寻找问题。

妙招4:Agent可以多开,但重要任务必须要保留原始材料和验证依据
现在估计有不少的小伙伴们已经开始同时指挥多个Agent了。
一个负责写前端,一个负责改后端,还有一个负责测试。
效率简直是芜湖起飞。
但与此同时,就跟人与人之间的传话会有损耗一样,当多个Agent协作时,一个Agent的总结很容易直接成为下一个Agent的输入;
传着传着,到了最后,整个工作流可能就已经离原始资料越来越远,导致原始信息里那些关键细节可能早就丢了…
△AI接力,信息越传越薄(漫画系AI生成)
Addy因此提醒,重要任务必须要保留原始材料和验证依据。
至于那些已经多到根本审不过来的任务,要么补上自动化检查,要么先减少并行数量。
不然,继续增加Agent数量,只会让待审核的内容越堆越高。
Addy对此给出的判断也相当犀利:
当你生成的内容已经多到无法负责时,你做的就不再是审查,而是在赌它没问题。

妙招5:每周留点时间,让自己回归古法手搓代码
这招听上去甚至有点复古。
都2026年了,Claude工程师居然还劝大家偶尔别用Claude?

但Addy认为,长期不使用的技能确实可能逐渐退化;
偶尔脱离Agent独立完成任务,也能帮助大家随时校准自己当前的真实水平。
所以他建议大家,每周至少安排一次不依赖Agent的独立编码练习。
每个月也可以顺手盘点一下:
自己已经把哪些技能交给了AI?
哪些能力可以放心外包,哪些又必须继续掌握?
这样做还有一个额外好处。
那就是至少还能知道,离开AI后,自己现在究竟还能干些什么。

在文章的最后,Addy还分享了一个极其简单的自测办法,那就是每次向Agent提问前,先写下自己预期会发生什么。
等AI交卷后,再试着找出一件它可能没检查到的事。
这样一来,我们至少就能保证在整个工作中,脑子也跟着转了两下。

Anyway,分享完这些干货后,Addy还留下了一个值得所有AI重度用户认真思考的灵魂拷问:
家人们都说实话啊,要是明天AI集体罢工,你们觉得自己能撑几天不崩溃呢?
嘶…是啊,能撑几天呢?
别人不知道,反正对我这种选择困难症晚期患者来说,多少有点天塌了。(泪目)
毕竟,出个门需要AI帮忙规划行程,找个路得问AI,就连去餐厅吃顿饭,都恨不得先让豆包帮我研究一下菜单,看看哪道菜最值得点。
这么一想想,AI要是真集体罢工了,我可能连今天的午饭吃啥都真的得重新学起咯。(捂脸)

One More Thing
其实吧,最有节目效果的果然还是在最后。
洋洋洒洒地教完大家怎么防止被AI养废后,Addy居然还在文章末尾骄傲地晒出了一张AI检测报告;
Pangram检测结果显示:
人类撰写90%,AI生成10%,AI辅助0%。

哈哈哈哈,合着前面苦口婆心劝大家别把脑子外包给AI,最后自己也没忘了亲自交作业:
放心,这篇劝你们动脑子的文章,我也是真动脑写了!
好好好,真·知行合一。(doge)

参考链接:
[1]https://x.com/addyosmani/status/2117512471930167377
一键三连「点赞」「转发」「小心心」
欢迎在评论区留下你的想法!
— 完 —
🌟 点亮星标 🌟