有个人写了一篇博文,让整个程序员圈炸锅了。

不是什么争议性的大佬,不是无脑炒作 AI 的布道师。是 Simon Willison——开源框架 Django 的共同创建者,用了 25 年写代码的老工程师,一直是那种最强调「AI 不能替代你对代码的责任感」的人。

他在文章里承认了一件让自己"很不舒服"的事:

他开始在生产环境的代码里,不再认真看 AI 写的每一行了。

在他过去的定义里,这叫 Vibe Coding——那种不负责任的、交给 AI 乱搞的编程方式。

但现在,连他自己也开始这么做了。


Vibe Coding 和 Agent 工程,原来有边界

先回到 15 个月前。

2025 年 2 月,前 OpenAI 大将 Andrej Karpathy 发了一条推文,造了个词:Vibe Coding。

他说他写代码的方式变了——完全跟着感觉走,让 AI 生成代码,自己根本不看 diff,遇到报错就直接把错误信息粘贴给 AI,让它自己修。「代码已经超出了我平时能理解的范围,但如果跑起来了,管它呢。」

Karpathy 很坦诚:这种方式适合周末随便玩玩的项目,不适合正式产品。

一个月后,Simon Willison 专门写文章划清界限:

Vibe Coding 不等于 AI 辅助编程。

真正负责任的工程师用 AI,是「我不会提交任何我没办法解释给别人听的代码」。你用 AI 生成,但你要审阅、测试、理解。这叫 Agentic Engineering(Agent 工程),跟 Vibe Coding 是两码事。

这个分法很清晰,圈里很多人认同。


然后,他发现界限消失了

2026 年 5 月 6 日,Simon 在 Heavybit 的播客里说了一段话,后来写进了博客,直接冲上了 HN 热榜(574 分,618 条评论):

我开始意识到,这两件事对我来说已经没那么清晰了。这让我有点不安。

他不再逐行检查 Claude Code 生成的代码了。

他的理由是这样的:当他在大公司做工程负责人的时候,另一个团队交给他一个图片压缩服务,他不会去读那个团队的每一行代码——他会读文档,测试功能,如果出了问题再去挖代码仓库。

他开始用同样的方式对待 AI 生成的代码。

一个 JSON API 接口让 Claude Code 写,它就是会写对。没必要再逐行审。

但他也说,这让他有「负罪感」:如果代码出了问题,我有没有尽到我的责任?

Claude Code 没有职业声誉,没有法律责任。但它每次都写对了。

然后他用了一个词,借用 Diane Vaughan 对挑战者号灾难研究中提出的概念:「偏差正常化」(normalization of deviance)——借用这个词的字面含义,每次它写对了而你没检查,你就更容易在下次同样不检查,直到某一次它写错了,而你早已习惯了不去看。


与此同时,另一篇文章在说更重要的事

就在同一天的 HN 热榜上,还有另一篇文章:《The bottleneck was never the code》(瓶颈从来不在代码),555 分,361 条评论。

作者是 .txt 的工程师。他用 Codex 花了半小时讲解需求,几小时后拿到了一个能跑的实验版本。

但他不认为「个人生产力暴涨」会让整个软件行业也变快。

为什么?

因为软件的本质从来不是代码。

他引用 1975 年 Fred Brooks 的《人月神话》:软件是一群人协商完之后剩下的残留物。代码是重要的,但它是更难的工作的残余,不是工作本身。

你们想象一下这个画面:

一个工程师,过去需要一周写完的功能,现在一天就可以完成。但她还是在等。

等什么?

等产品经理给她一个写清楚了的需求文档。

等团队对「我们到底要做什么」达成共识。

等那个永远开不完的对齐会议。

代码生产快了 10 倍,但协作、对齐、决策——一点都没变快。

作者说,他认识的很多管理者现在最大的压力,不是「功能为什么做得慢」,而是「功能做得太快了,需求根本来不及想清楚」。


两篇文章同日爆,不是巧合

这两篇文章同天出现在 HN 热榜,不是偶然——它们描述的是同一个底层机制在两个层面的反应。

这个机制是:当执行成本趋近于零,认知稀缺性就发生了迁移。

在代码生产上:AI 把一个标准接口从「需要工程师写 2 小时、审 1 小时」变成了「AI 生成 30 秒、大概率写对」。当 AI 的错误率已经低于工程师逐行审查的边际价值,理性的工程师就会停止逐行审查——不是因为懒,而是因为把时间花在审查一段大概率正确的代码上,不再是最优决策。Simon Willison 就是这么做的,他只是第一个公开承认感到内疚的人。

在组织层面:同样的逻辑。当代码实现从「最贵的资源」变成「最便宜的资源」,组织的注意力自然重新分配到更稀缺的东西上——对「要做什么」的清晰判断,对需求的精确表述,对「哪些功能不做」的克制。这就是《The bottleneck was never the code》说的:瓶颈从代码层,移到了决策层。

两个层面,同一个机制:稀缺性迁移。当执行变得便宜,判断变得昂贵。

这个机制之所以重要,是因为它不只适用于程序员。任何一个行业,当某个中间层的执行成本被 AI 压缩到接近零,同样的迁移就会发生——会计、设计、法律文书、医疗影像。「做」变便宜,「想清楚做什么」变贵。


那程序员该怎么办?

不是要你去学产品,也不是要你去学管理。

但有一件事值得想清楚:

当代码不再是你最稀缺的产出,你最稀缺的产出是什么?

Simon Willison 的答案,从他的表述来看,是那 25 年对系统设计、安全、性能的理解——那是他用来判断 AI 写的代码所处系统是否健康的底层能力。他不再逐行阅读代码,但他还知道一个 API 设计应该长什么样,一个 SQL 查询会不会带来性能问题,一个权限设计会不会留下漏洞。

《The bottleneck was never the code》的答案是:上下文(context)——共享的、不成文的、靠人堆出来的对「我们在建什么、为什么建、这部分动不得」的理解。这个东西 AI 没有。这个东西只能靠人。


最后,关于那个问题

「当你不再看代码,你还是那个负责任的人吗?」

我的判断标准是这样的:

如果 AI 写了一个 bug,你还能发现它吗?

不是指逐行阅读,而是指:当系统的行为开始偏移,当性能数字不对,当某个边界条件被触发,你是否还有能力诊断和定位?

如果能——你还是那个负责任的人,只是工作方式变了。

如果不能——你可能正在用一种新的方式,做一件很老的事:写你自己都不理解、出了问题也修不了的代码。只是以前是因为技术不够,现在是因为从没想过要去理解它。

Vibe Coding 没死。它只是从「懒人玩具」升级成了「高级工程师的日常」。

区别只有一个:那些 25 年的经验——你有吗?


HN 数据更新于 2026-05-07。Simon Willison 原文:simonwillison.net/2026/May/6/vibe-coding-and-agentic-engineering/