觉 · blog

从 vibe 到 engineering

Karpathy 在自己博客上挂了一句话,大概是这场演讲里最贴脸的:

I have never felt more behind as a programmer.

这话出自一个写过 micrograd、nanoGPT、刚开了 Eureka Labs 的人。他 4 月 20 日在 Sequoia AI Ascent 上和 Konstantine Buhler 聊了三十多分钟,4 月 30 日把整理稿贴上 bearblog。读完之后我反复回过头来看他为什么这么说。他不是在卖焦虑,他在划一条职业分水岭。

一道日期

Karpathy 把 2025 年 12 月直接命名为一道线。

在那之前,agent 写代码是「能用,但要看着」;在那之后,他认为 macro action 跨过了可靠性的门槛——你说一句「实现这个功能」「重构这个子系统」「研究一下这个库」「跑测试、修挂掉的」,你能拿回大致正确的活。

不是更快,是粒度变了。

以前你 ship 的是「行」,现在你 ship 的是「任务」。当一次提交的最小单位从一个 function 抬到一个 feature,你写代码这件事的形状必须重画。

地板与天花板

他给现在这道分水岭起的名字很干脆:

  • Vibe coding 抬地板——让几乎任何人都能用自然语言生成软件
  • Agentic engineering 抬天花板——协调一群会出错的 agent,同时把正确性、安全、品味、可维护性保住

Vibe coding 是 2024 末 2025 初的词,大家用得轻松,意思是「跟着感觉走、跟模型对话、不读底层」。Karpathy 没否定这件事——他甚至明确说这是好的。但他强调:这只是把入门门槛拉低。真正的工程动作是一个新的、更难的纪律——写 spec、监督 plan、审 diff、写测试、做 eval loop、管权限、隔离 worktree、维护品味。

他给这个新角色画了一个夸张的边界:老的「10 倍工程师」概念可能要被推到更极端

这句话的反面才刺人:不会 agentic engineering 的人,不是被淘汰,是创造的价值在分母上

三个奇怪的样本

他不喜欢「AI 让现有软件变快」这个叙述。他更在意的是:LLM 让从前不可能的东西可能。三个例子:

  1. MenuGen — 他自己写的小 app,拍菜单照片生成菜品图。旧版本:OCR → 图像生成 → 在 Vercel 上拼回来。新版本:把照片扔给 Gemini,加一句「用 Nano Banana 把每道菜的图叠到对应位置」,直接返回带图的菜单。他自己的吐槽是:「All of MenuGen is spurious. That app shouldn’t exist.」——整个 app 不该存在,因为模型直接顶替了它。
  2. install.md,而不是 install.sh — 安装文档变成可以直接贴进 agent 的散文。「你不必把每个细节都拼出来。agent 有 intelligence。」自动化的载体从 shell 脚本变成自然语言。
  3. LLM Wiki — 不是 RAG 即查即取,而是让 agent 增量地把杂乱的原始资料编成一个持续维护的 Markdown 知识库:摘要、实体页、矛盾点、交叉引用。「没有任何传统程序能稳健地干这件事,但 LLM 可以。」

这三个例子的共同点不是炫技,是形状本身改变了

它不是动物

Karpathy 反复强调一句话:LLM 不是动物,是幽灵——是人类制品的统计模拟,被预训练、后训练、RL、产品反馈和经济激励共同塑形。不要拿动物或人类去类比它,会推错方向。

他把模型的能力拆成两个轴:verifiability(可验证性)+ training attention(训练注意力)。两个轴投影出锯齿状的智能 (jagged intelligence):

一个能重构十万行代码、找出零日漏洞的 SOTA 模型,可能会告诉你「50 米外的洗车店,你应该走路过去」。

(然后让你在烈日下推一辆没洗的车走 50 米。)

他给做 startup 的人留了一个问题:你在不在模型的轨道上?——你的业务方向是不是落在 verifiability 高、训练注意力多的那一片?如果不是,你需要自己造梯子,不能等模型「自然变好」。

给 agent 写代码

大部分软件是给点击屏幕用的。Karpathy 提出一个不太被讨论的视角:用户越来越是「人的 agent」,不是人本身。

这意味着这一波基础设施得按 agent 来设计:

  • Markdown 文档而不是富文本
  • CLI 而不是 GUI 向导
  • MCP server、结构化日志、机器可读 schema
  • 可以直接 copy-paste 给 agent 的 setup instructions
  • headless 的安装/部署流程

他的原话很直接:

Why are people still telling me what to do? I don’t want to do anything. What is the thing I should copy-paste to my agent?

他用了一个工程比喻:sensors and actuators——模型是大脑,你的产品要给它装感官(读什么)和肌肉(能做什么)。

招聘也跟着变。他给的新面试题是:「写一个给 agent 用的 Twitter clone,要安全,然后让 agent 在上面模拟活动。我会用 10 个 Codex agent 去攻击它,它不能被打穿。」白板题在这套范式里是上一个时代的遗物。

收尾

读完整理稿,我注意到他最后留了一句话——不在开头,不在中间,是在自我评价的部分:

You can outsource your thinking, but you can’t outsource your understanding.

可以把做决定这件事让出去,不能把理解让出去。理解必须经过你的脑子,这条带宽不会因为 agent 变多而扩张。

他说:「我开始变成自己系统里的瓶颈——连『我们要造的是什么』这件事,信息要先进我的脑子。」

一个写出 nanoGPT 的人说自己是瓶颈,这不是谦虚。这是把分水岭画清楚了:地板被拉低了,天花板被抬高了,中间那段距离要靠人自己走

他之所以说自己「从未感到如此落后」,不是因为模型变快,是因为该写在他脑子里的东西在变多

Vibe 让我们都更轻松了。Engineering 没有。