乐于分享
好东西不私藏

OpenAI联合创始人Karpathy最新访谈晓读:AI编程已死,Agent工程师时代来了

OpenAI联合创始人Karpathy最新访谈晓读:AI编程已死,Agent工程师时代来了

旺晓通:深入浅出,轻松通晓

当 Andrej Karpathy 说出“我从未感到如此落后”这句话时,台下的观众笑了。这个帮助创建 OpenAI、让特斯拉 Autopilot 真正运转起来的人,这个被认为最擅长把复杂技术讲清楚的 AI 大神,居然说自己跟不上了?

我们解读最新技术,文末有相关信息。

作者:张长旺,图源:旺知识

但我看完这场访谈后,第一反应不是觉得好笑,而是感到一种奇异的共鸣——如果连 Karpathy 都觉得落后,那我们该怎么办?更重要的是,他说的“落后”到底指的是什么?

去年12月发生了什么?

Karpathy 提到了一个明确的时间节点:2024年12月。

他说自己之前一直在用 Cursor、Claude 这些 AI 编程工具,体验是“有时候好用,有时候要改来改去”。但到了12月,他突然发现一个变化——AI 生成的代码块“就是对的”,然后他继续要求更多功能,“还是对的”,再继续,“我已经记不清上次修改 AI 代码是什么时候了”。

这让我想起学开车的经历。刚开始你要时刻盯着方向盘、油门、刹车,大脑高度紧张。但某一天,你突然发现自己可以边开车边聊天,甚至想不起来刚才是怎么变道的——那种从“有意识控制”到“无意识信任”的跨越,就是质变的时刻。

Karpathy 把这种状态称为“Vibe Coding”(氛围编程)。这个词去年火遍全网,但很多人误解了它的含义。它不是说“随便写写就行”,而是指一种新的编程状态:你不再需要关注语法细节、API 调用的具体参数,你只需要表达“我想要什么”,AI 就能准确实现。

你有没有发现一个矛盾点?一个顶级程序员,为什么会因为“不用写代码细节”而感到落后?

从“Vibe Coding”到“智能体工程”

答案藏在 Karpathy 提出的新概念里:Agentic Engineering(智能体工程)。

他说,Vibe Coding 是“抬高了所有人的地板”——任何人都能用 AI 快速做出东西。但智能体工程是“在保持专业质量标准的前提下,让天花板变得更高”。

这个区分太关键了。

想象你现在要盖房子。Vibe Coding 就像有了一个很听话的施工队,你说“我要一个两室一厅”,他们就能给你盖出来,虽然可能墙面不太平、水电布局有点奇怪,但能住。这对于之前完全不会盖房子的人来说,已经是巨大的进步。

但智能体工程要解决的是另一个问题:如果你要盖一栋抗震、节能、符合所有建筑规范的专业住宅,而且要在一半的时间内完成,你该怎么指挥这个施工队?

Karpathy 举了一个让我印象深刻的例子。他用 AI 做了一个叫“MenuGen”的应用——拍下餐厅菜单,AI 就能生成每道菜的图片。他花了很多时间写代码、部署服务器、配置各种接口。但后来他发现,这整个应用其实是“多余的”。

为什么?因为你只需要把菜单照片发给 Gemini,说一句“用 Imagen 把菜品图片叠加到菜单上”,它就直接在原图上渲染出了带图片的菜单。不需要任何中间的应用代码。

我们过去写代码,本质上是在做“精确的抽象”——把现实世界的需求翻译成计算机能理解的指令。但现在,AI 可以直接理解你的意图,在像素层面直接操作,中间的“翻译层”正在消失。

Software 3.0:不是更快的软件,是新物种

Karpathy 提出了一个框架:

  • • Software 1.0:你写代码
  • • Software 2.0:你准备数据集,训练神经网络
  • • Software 3.0:你写提示词,AI 在“数字信息空间”里执行计算

他说了一个细节让我觉得既好笑又深刻。现在安装 Claude 的方式不是运行一个 shell 脚本,而是“复制一段文字,粘贴给你的 AI 助手”。

为什么这样更强大?因为传统的安装脚本要考虑所有可能的系统环境、版本冲突、依赖关系,代码会变得极其复杂。但 AI 助手可以“看”你的电脑环境,用它自己的“智能”去调试和适配。

这让我想起人类社会分工的演化。最早是“自给自足”(你自己种地、织布、盖房子),后来是“专业分工”(有人专门种地,有人专门织布),现在正在进入“智能协作”——你不需要告诉 AI 每一个步骤,你只需要说清楚目标,它会自己想办法。

但这里有个关键问题:如果 AI 能自己“想办法”,我们怎么确保它的方法是对的?

幽灵、动物与“锯齿状智能”

Karpathy 写过一篇文章,标题很哲学:《LLM 不是动物,是幽灵》。

他说,很多人把 AI 当成动物来理解——你对它好,它就表现好;你骂它,它就表现差。但这是错的。AI 是“统计模拟回路”,是被数据和奖励函数“召唤”出来的实体,而不是有内在动机的生命。

这个比喻解释了一个困扰我很久的现象:为什么 AI 能重构10万行代码库、找到零日漏洞,却会建议你“走路去50米外的洗车场”?

Karpathy 称之为“jagged intelligence”(锯齿状智能)。AI 在某些领域超神,在某些领域弱智,而且这种“锯齿”的分布规律很奇怪。

他给出了两个解释:

  1. 1. 可验证性:AI 在数学、编程这些“答案可以被验证”的领域进步飞快,因为训练时可以给明确的奖励信号
  2. 2. 实验室偏好:OpenAI、Anthropic 这些公司会把某些能力“塞进”训练数据。比如 GPT-3.5 到 GPT-4,下棋能力突然暴涨,不是因为模型整体变聪明了,而是因为训练数据里加了大量棋谱

这让我想起《黑客帝国》里的一个场景:Neo 需要学会功夫,他们直接把功夫“下载”到他脑子里。AI 的能力增长就是这样——不是自然进化出来的,而是被“下载”进去的。

所以当你用 AI 时,你其实是在探索一个“没有说明书的工具”——你得自己摸索哪些电路被训练过,哪些没有。如果你的需求正好在“训练过的电路”里,你飞起;如果不在,你就得自己微调。

那些正在消失的技能

Karpathy 说了一个细节让我有点心酸:他已经忘记了 PyTorch 里到底是 keep_dim 还是 keep_dims,是 reshape 还是 permute

这些曾经是程序员的基本功,现在正在变成“AI 实习生负责的细节”。

但他强调,你仍然需要知道“底层有个 tensor 存储,你可以操作视图而不复制内存”——你不需要记住 API 细节,但必须理解核心原理。

这让我想起自动挡汽车的普及。现在没人需要记住“离合器要在转速2000时配合二档”,但你仍然需要理解“动力传递”的概念,否则你不知道什么时候该超车、什么时候该减速。

他还提到一个让我印象深刻的失败案例:他做了一个项目叫“MicroGPT”,想把 LLM 训练代码简化到极致。但他发现 AI“做不到”——你让它“简化、再简化”,它就是不行,感觉像是“在拔牙”。

为什么?因为“追求简洁”这件事不在 AI 的奖励函数里。AI 生成的代码经常“能用但很臃肿”,有大量复制粘贴、奇怪的抽象、脆弱的结构。它不会像人类工程师那样追求“优雅”。

这让我意识到:AI 正在接管的是“执行层”,而人类需要守住的是“品味层”。

你可以外包思考,但不能外包理解

访谈最后,主持人问了一个很多人关心的问题:当 AI 能做越来越多的事,什么人类技能会变得更重要?

Karpathy 引用了一条让他“每隔一天就会想起”的推文:

“你可以外包你的思考,但你不能外包你的理解。”

这句话值得反复咀嚼。

他说,现在他已经成为“信息流的瓶颈”——不是技术实现的瓶颈,而是“我们到底要做什么、为什么值得做、如何指挥 AI 去做”的瓶颈。

他举了一个例子:他用 AI 做的 MenuGen 应用,登录用的是 Google 账号,支付用的是 Stripe。AI 居然试图用“邮箱地址”来关联这两个系统——但用户的 Google 邮箱和 Stripe 邮箱可能不一样,这会导致充值失败。

为什么 AI 会犯这种错误?因为它不理解“用户身份”的本质概念。它只是在模式匹配:“两个系统都有邮箱,那就用邮箱关联吧。”

这就是“思考”和“理解”的区别。AI 可以帮你思考“怎么实现”,但它不理解“为什么这样设计会出问题”。

我们正在学习的,是如何指挥幽灵

Karpathy 说,现在的 AI 就像“实习生”——记忆力超强,执行力很快,但需要你给出清晰的规格说明、保持监督、负责整体的审美和判断。

他说自己现在最烦的是:“为什么文档还在告诉我该做什么?我不想做任何事,我只想要一段文字,复制粘贴给我的 AI。”

这个抱怨听起来有点好笑,但背后是一个深刻的转变:我们正在从“操作工具”转向“指挥智能体”。

这需要一种新的技能——不是编程技能,而是“导演技能”。你要知道什么该详细说明,什么可以留给 AI 发挥;你要能判断 AI 的输出是“能用但丑”还是“真的好”;你要理解哪些任务在 AI 的“训练电路”里,哪些需要你自己微调。

Karpathy 把这称为“agentic engineering”(智能体工程)。他说,顶尖的智能体工程师和普通人的差距,已经远远超过过去“10倍工程师”的概念。

写在最后:理解比速度更重要

这场访谈让我想明白了一件事:AI 时代的焦虑,本质上不是“我会不会被取代”,而是“我该如何保持理解”。

当 AI 能在几秒钟内生成几千行代码,当你的“侧边项目文件夹塞满了各种随手做的应用”,当你发现自己已经很久没有“从零开始写一个函数”——这种速度感既让人兴奋,也让人恐慌。

但 Karpathy 的“落后感”提醒了我:重要的不是你能多快做出东西,而是你是否理解你在做什么。

AI 可以帮你生成代码,但不能帮你理解为什么这个架构更合理;AI 可以帮你部署应用,但不能帮你判断这个产品是否值得做;AI 可以帮你重构代码库,但不能帮你决定什么是“优雅”。

所以,当我们谈论“AI 原生”的下一代时,我们真正要培养的不是“如何更快地用 AI”,而是“如何在 AI 的帮助下,保持更深的理解”。

就像 Karpathy 说的:你可以外包思考,但永远不能外包理解。

因为最终,是理解在指挥思考,而不是相反。

参考资料

  • • Andrej Karpathy: From Vibe Coding to Agentic Engineering(从“氛围编程”到“智能体工程”)