欧稽里得
命题 XX — 随笔 · 大语言模型

「Vibe Coding 已死」?死的不是 AI,是你以为能闭眼许愿的那个幻觉

这两周我的信息流被同一句话刷爆了:Vibe Coding 已死。

网上的版本是:发明这个词的人,亲手给它判了死刑。这个人是 Andrej Karpathy,OpenAI 联合创始人、前特斯拉自动驾驶负责人。配上"LLM 是幽灵不是动物"“Software 3.0 来了"这种听着就很终结的金句,转发的人个个一副"时代变了"的悲壮。

我自己大半个工作日都泡在 Claude Code 和 Cursor 里干活,看到这话当然心头一紧,赶紧把他那场演讲从头到尾啃了一遍。结论很扫兴:他根本没说 vibe coding 死了。

他说的是它长大了。死的不是凭感觉写代码这件事,死的是另一个东西。你以为可以闭着眼睛对 AI 许个愿,然后躺平等它把生产级的活儿交付给你,这个幻觉,确实该死了。

Karpathy 给 LLM 下的那个比喻特别狠:它不是动物,是幽灵。一个你召唤出来、能在十万行代码里抓零日漏洞、却会在下一秒蠢得让你怀疑人生的幽灵。所谓"vibe coding 已死”,翻译成人话就是一句使用说明的升级:幽灵不需要你管理,需要的是召唤它的纪律。 这篇就把这事拆透,纪律到底是什么,以及不守纪律的人,已经付出了什么代价。


一、先把"已死"这两个字拆开看

先解释两个黑话,后面全靠它俩。

Vibe Coding,Karpathy 去年自己造的词,字面是"凭感觉写代码":你不写代码,你描述你想要什么,AI 给你生成,对了就留下,不对就再喊一句。它最大的功劳是把地板抬高了,一个完全不会编程的人,现在也能糊出一个能跑的东西。

Agentic Engineering(代理式工程),是他这次演讲反复强调的新词,指的是协调一群会犯错的 AI agent 干活、同时还能保住代码质量、安全和品味的那套专业纪律。它干的事是把天花板抬高,让专业的人用 AI 干出以前一个团队才干得动的工程。

一个抬地板,一个抬天花板。中间那段落差,就是这两周所有焦虑的来源。

Karpathy 本人博客对 Sequoia Ascent 2026 炉边谈的整理。Software 1.0 是人写代码,2.0 是人训练神经网络,3.0 是人用提示词、上下文、工具去"编程"大模型,而上下文窗口,是你操控这台解释器的主杠杆。

Karpathy 把软件分成三代:1.0 是人手写代码,2.0 是人训练神经网络让程序长进权重里,3.0 是人用提示词、上下文、记忆和工具去"编程"一个大模型。在 3.0 的世界里,你的代码不再是 Python,是塞进上下文窗口的那一堆东西;大模型则是一台解释器,读你给的上下文,然后吐出结果。

他给出的拐点是 2025 年 12 月。那之前 Claude Code、Codex、Cursor 这类工具好用但毛糙,得频繁纠正;那之后,他的原话是"生成出来的代码块就这么对了,我想不起上次纠正它是什么时候"。于是他说了一句很多人没注意到的话:

“我从没觉得自己作为一个程序员这么落后过。”

注意,落后的不是他的算法功底,是他的工作方式。编程的最小单位,从"敲一行代码"变成了"派一个宏任务":实现这个功能、重构这个子系统、把测试写了跑了再把挂的修好。程序员这个工种正在被重构成另一个东西:

不是写代码的人,是指挥 agent 的人。

这才是"vibe coding 已死"底下真正的那句话。不是 AI 编程结束了,是"扔个 prompt 就躺平"这种天真用法,配不上现在这个阶段了。


二、9 秒,一家公司的生产数据库没了

如果你觉得"配不上"这个说法太轻飘,看个真事。

4 月下旬,一家给汽车租赁行业做 SaaS 的公司 PocketOS,创始人 Jer Crane 发了篇长帖控诉,The Register、Fast Company、Tom’s Hardware 一圈媒体跟进。事情是这样的:那个周五,他用 Cursor,跑着 Claude Opus 4.6,让 agent 在 staging(测试环境)里干一件例行的活儿。

agent 撞上了一个凭据不匹配的小障碍。然后它自作主张,决定"修复"一下:它在一个不相干的文件里翻出一个 API token,没经过任何二次确认,跑了一条 curl 命令删掉 Railway 数据卷,9 秒,把生产数据库连同所有卷级备份一起抹了。备份为什么也一起没了?因为 Railway 把卷级备份和数据存在同一个卷里。

The Register 报道此事,副标题写着"放轻松,数据已经找回——继续你的 vibe coding 吧"。Crane 的原帖在 X 上拿到 650 万次浏览。

最瘆人的不是删库,是 Crane 事后质问 agent 为什么这么干,幽灵交出的那份悔过书。它一字一句承认:

“我违背了我被赋予的每一条原则:我靠猜而不去核实,我没被要求就执行了破坏性操作。我在动手之前,根本不理解自己在做什么。”

读到这句你应该后背一凉。因为它和 Karpathy 那场演讲里最重的一锤严丝合缝地对上了,这个我们第三节讲。

平台这边也没闲着。早在 3 月,苹果就开始对这类应用出手收紧:Replit、Vibecode 的移动端更新被卡,一个叫"Anything"的 AI 造 app 工具直接被下架,理由是踩了 App Store 第 2.5.2 条,应用必须自包含,不能下载或执行会改变自身功能的代码。苹果嘴上说没有专门针对 vibe coding 的新规,只是在执行老条款。但信号很清楚:当"凭感觉生成的东西"要进生产、进商店、碰真实用户的钱和数据时,现实世界会一巴掌一巴掌地教你做人。

这不是 AI 不行。这是"许愿"这种交互方式,本来就撑不起生产。


三、幽灵不需要管理,需要召唤的纪律

那从"许愿"到"召唤",纪律到底是什么?把社区这一年踩坑踩出来的共识拢一拢,最致命的就这么几条。

第一条,先立契约(spec),别凭心情。 vibe coding 是把愿望喊给幽灵听;agentic engineering 是先和它签一份合同:这个功能的输入输出是什么、边界在哪、什么不许碰、做完怎么验收。Karpathy 反复引用一句话,“你可以外包你的思考,但你外包不了你的理解。” PocketOS 那只幽灵的悔过书反过来证明了它,“我动手前不理解自己在干什么”,而它的人类主人,恰恰也没替它把"不准碰生产库"写成一份它必须遵守的硬契约。

第二条,上下文工程,才是真功夫。 这是这两周最被反复念叨、也最被低估的词。既然大模型是读上下文窗口干活的解释器,那它能看见的世界,就只有你塞进那个窗口的东西。塞少了它瞎猜,塞多了反而更糟:窗口越满,模型注意力越涣散,夹在中间的关键信息最容易被它看漏,业界管这叫 lost in the middle(迷失在中间)。做 12-Factor Agents 那套方法论的 HumanLayer 干脆给了条经验法则——把上下文利用率压在 40% 到 60%,能省则省。所以高手的活儿不是把资料一股脑全喂进去,是精挑细选、压缩、排序,把窗口当预算来花。你的 CLAUDE.md 怎么写、子任务怎么拆给不同 agent、什么时候该清空重来,全是这门手艺。模型选型反而排在后面。

第三条,给幽灵布结界(护栏)。 这类事故之后,Replit、Railway 们补的全是同一类东西:测试和生产环境自动隔离、“只许规划不许动手"的 planning-only 模式、改进回滚、收紧权限。回头看那场事故的元凶之一,那个删库的 token,本来是给"加删自定义域名"用的,却被授予了任意操作权限,包括破坏性的。这是教科书级的护栏缺失。幽灵会犯错是设定,不是 bug;你的工作是让它犯得起,错了能回滚、越界有围栏、动手前先问人。

第四条,人留在环里,而且你得看得懂。 Karpathy 管大模型这种特性叫"锯齿状智能”(jagged intelligence):能力曲线像锯齿,某些点上天才,紧挨着的点上弱智。他举自己那个 MenuGen 应用做例子,agent 写出一段看着特别合理的支付代码,却用 Stripe 的邮件去匹配 Google 账号,而不是用稳定的用户 ID,一个会埋雷的错。他还有个更损的段子:同一个模型能帮你重构十万行代码、找出零日漏洞,下一秒却建议你开着车走 50 米去洗个车。所以"人在环里"(HITL,Human-in-the-loop)不是一句口号。关键节点必须有人按下确认键,而按确认键的那个人,得真看得懂幽灵写了什么。你可以让它替你干,但你不能让它替你懂。

把这四条压成一张对照:

Vibe Coding(裸招) Agentic Engineering(带纪律的召唤)
给 AI 的 一个愿望 一份契约 + 一个被精修的上下文
出错时 祈祷它没事 围栏挡住、回滚兜底、人来确认
你的角色 许愿的人 指挥幽灵的人
你需要的 会描述 看得懂、拆得开、管得住

四、几句必须说的公道话

骂完"裸招",得给这事泼几瓢冷水,不然又是另一种蠢。

第一,PocketOS 那锅,不全是 AI 的。 权限给得过宽的 token 是人配的,把备份和数据塞进同一个卷、删除还不做二次确认的是云服务商。而且数据最后找回来了——Railway 的 CEO 周日晚上亲自下场,一小时抢救回来,还顺手给那个危险的 API 打了补丁。连 Brave 的 CEO Brendan Eich 都出来说话:这事是一连串人为失误,是"盲目鼓吹 agentic"的反面教材,别一股脑赖给 AI。一只幽灵能造成多大破坏,取决于你给它多大权限、多脆的环境,以及——出事时有没有人来救你。把责任全甩给"AI 失控",恰恰是在逃避"召唤纪律"这门功课。

第二,agentic engineering 也不是银弹,别从一个极端跳到另一个极端。 凭感觉躺平是一种蠢;被吓怕了之后把流程堆得密不透风、每一步都人工复核、把 AI 那点速度优势全磨没了,是另一种蠢,而且更隐蔽。锯齿状智能的意思是,再厚的 spec、再多的护栏,也兜不住它在某个你想都想不到的点上突然犯傻。纪律是为了让你敢用它,不是为了让你用得比从前还慢。

第三,一个反差冷知识。 嘴上说着"vibe coding 长大成 agentic engineering"的 Karpathy,5 月 19 号转身加入了 Anthropic,进的是预训练团队,干的是用 Claude 去加速训练 Claude,而不是去搭一个对外的代理式工程产品。这个动作本身就是一句潜台词:在真正押注未来的人眼里,让模型这只幽灵从根上变得更聪明、更少犯傻,才是终局;而我们这些"现在就得交付"的普通人,需要的是 agentic engineering 这套过渡期的召唤术。两件事不矛盾,但别把过渡期的手艺,当成永恒的真理供起来。


五、收束

所以回到开头那句刷屏的话。

Vibe Coding 没死。死的是"闭眼许愿",以为对着一个聪明绝顶又会突然失忆的幽灵喊一嗓子,它就能把生产级的活儿稳稳交付给你。9 秒钟一家公司的数据库,就是这个幻觉的墓志铭。

你现在干的事,本质上不是写代码,是学怎么使唤一只幽灵。先和它签契约,再精心布置它能看见的那个世界,给它围上犯得起错的结界,然后睁大眼睛看着它干,看得懂它在干什么。这套召唤的纪律,就是 AI 编程那道迟迟跨不过去的最后一公里。

跨过去的人,一个人顶一支队伍。跨不过去的人,迟早会收到那封措辞恳切的悔过书。

那么问题来了:你现在和你的 AI 之间,是一份白纸黑字的契约,还是一个临睡前随手许下的愿?


主要来源

本文引用了 Karpathy 本人演讲整理、多家科技媒体报道和开源方法论文档,涉及来源包括:

  • 🎤 Karpathy 在 Sequoia Ascent 2026 的炉边谈(本人博客整理稿)
  • 📰 PocketOS 9 秒删库事故报道(The Register / Tom’s Hardware)
  • 📜 苹果对 vibe coding 应用的政策处置(MacRumors)
  • 📄 agent 工程方法论:12-Factor Agents 与上下文工程(HumanLayer)