他的核心判断:计算机软件最底层的样子大约 70 年没怎么变过;然后就在最近这几年,以非常快的速度连着变了两次。"70 年"与"最近几年"的强烈反差是全场地基——一个几十年纹丝不动的东西突然连变两次,意味着积累的存量极其庞大。于是那句给学生打气的话:"现在有海量的活要干——海量的软件要写、要重写(a huge amount of software to write and rewrite)。"越是存量大、变得急,刚入行的人能撬动的空间就越大。→ 详细
为让"软件版图有多大"可感知,他先放一张 "map of GitHub"(真实可视化工具,把人类写过的所有代码画成一张星图)当引子,让你"放大来看"那密密麻麻的代码仓库——它们归根结底都是"给计算机的指令,让它在数字世界里去完成各种任务"。用意:先让你震撼于这片版图的辽阔,再抛出重话——这么大一片版图,正在被新范式改写。→ 详细
02
三种"写软件"的范式:Software 1.0 / 2.0 / 3.0
Software 1.0 是传统编程——人用 Python、C++ 一行行写明确指令,"是你为计算机写的代码"。Software 2.0 是 Karpathy 几年前就观察到并亲自起名的概念:"出现了一种新类型的软件,我当时把它叫做 Software 2.0。"写法截然不同:你不直接写逻辑了,而是"调数据集(tuning the data sets),然后跑一个优化器(optimizer),去生成神经网络的参数/权重(weights,网络里那几百万、几十亿个数字)"。换句话说,2.0 的"代码"是这一大堆训练出来的数字,程序员的工作从"写指令"变成"准备数据、调训练"。他补了句有历史感的话:当时"神经网络多少还被看作只是另一种分类器,跟决策树差不多",所以"Software 2.0"这个框架更点醒人——它把神经网络从"众多分类器之一"重新定位成"一种全新的软件形态"。→ 详细
他用 Cursor 把"自治滑杆"四档从保守到放手讲死,放权一档比一档大:"只用 tab 补全,这时主要是你在掌控(AI 只顺手补一两句);选中一段代码、按 ⌘K 只改这一段;按 ⌘L 改整个文件;或者按 ⌘I,直接放手让它在整个仓库里随便折腾(let it rip),那就是完全自治的 agent"。四档差别就是"交给 AI 的活儿范围"从一行→一段→一个文件→整个项目逐级放大。核心原则:"根据手头任务的复杂程度,你可以调节自己愿意为这个任务交出多少自治权(tune the amount of autonomy you're willing to give up)"——任务越简单越可控就往放手那头推,越复杂越要紧就收回来、多盯着、小步走。→ 详细
他特意强调一个"关注还不够多"的点——人机协作的本质是一个循环:"我们现在某种程度上在跟 AI 协作,通常它们负责生成(generation),我们人类负责验证(verification)。让这个循环转得越快越好,是符合我们自身利益的。"有"两个主要办法"给它提速。→ 详细
第一招:大大加快"验证"那一步。 他给 GUI 一个生理学解释,把人脑也类比成硬件:"GUI 调用的是我们脑子里都有的那块计算机视觉 GPU(computer vision GPU,大脑天生擅长并行处理视觉信息)。读文本是费劲的、也不好玩,但看东西很好玩,它就像一条直通你大脑的高速公路(a highway to your brain)。" 让人逐字读 AI 吐的长文本,走的是大脑里又慢又堵的小路;把同样信息做成图、做成红绿色块,眼睛一扫就进脑子,验证速度差出一个量级。→ 详细
第二招:把 AI"拴住"(keep the AI on the leash)、别让它放飞。 他直言很多人兴奋过头:"给我的仓库丢来一个改了一万行代码的 diff,对我并没有用。我还是那个瓶颈——哪怕瞬间生成出来,我还是得确保它没引入 bug、做的事情是对的、没有安全问题。"他坦白真实体感并区分两种场景:"如果我只是在 vibe coding(凭感觉随便写),那一切美好得很;但如果真想干出活来,那就没那么美好了——你身边有个反应过度(overreactive)的 agent 到处瞎折腾,这可不行。" 他自己的做法是小步快跑:"我总是很怕拿到太大的 diff,总是一小步一小步、增量式地推进,围绕一件具体的小事,我想让这个循环转得非常非常快。"→ 详细
他用自己在琢磨的教育方向当案例,先说为什么"直接聊"不行:"在我看来,有很大一部分思考都花在怎么把 AI 拴住上。 我不认为你直接去 chat 里说一句'嘿,教我物理(teach me physics)'就管用——AI 会在林子里迷路(gets lost in the woods)"(没有边界约束、没有既定路线,就会东拉西扯、忽深忽浅、跑偏失焦)。这其实是把"prompt 太含糊就会原地空转"的道理套到了完整产品设计上。→ 详细
解法是把"教我物理"拆成两个独立应用,而不是塞进一个万能聊天框:"有一个给老师用的应用负责生成课程;然后另一个应用把课程拿过来提供给学生。" 妙处在于这一拆,中间多出一个可被人先审一遍的产物:"我们现在都有了'课程'这么个中间产物(intermediate artifact),它是可审查的(auditable),可以确保它是好的、一致的(consistent)。而且 AI 是被拴在某一份特定教学大纲(syllabus)上的"。结论:"这就是把 AI 拴住的一种方式,成功的概率要高得多,AI 也不会在林子里迷路。"——把流程切开、在关节处插入一个"人能把关的中间件",AI 后面就只能在确定的轨道上走。中间产物既是给人验证的抓手,也是给 AI 套上的缰绳。→ 详细
15
自动驾驶的前车之鉴:这是"agent 的十年",不是"元年"
他亮出最硬资历谈"部分自治":"我在 Tesla 干这个干了大概五年,那也是一个部分自治的产品,有很多相同特性。" 把汽车套进同一框架:"仪表盘上那块就是 Autopilot 的 GUI,会显示出神经网络看到了什么;我们也有 autonomy slider——在我任职的那几年里,我们替用户做了越来越多的自治任务。"(注意是逐年放权、不是一步到位。)→ 详细
然而现实给了重锤:"但如今 12 年过去,我们还在攻关驾驶 agent,到现在也还没真正算把这个问题解决掉。" 他还揭了"看起来无人"的真相:"Waymo 的车看起来像无人驾驶,但背后其实还有大量的远程操控(teleoperation)、大量的 human in the loop(人在回路)支撑着。所以我们甚至都还没法宣布成功。"(他补一句:到这阶段它"肯定会成功,只是花了非常长时间"。)这段经历支撑起他最响亮的一句泼冷水:"软件真的很棘手,它棘手的方式跟驾驶很像。所以当我看到'2025 是 agent 元年'这种说法时,我会非常担忧,我倒觉得这是属于 agent 的十年(the decade of agents)。我们需要 human in the loop。"——把"元年(year)"换成"十年(decade)",是他对全行业过度乐观的一次精准纠偏。→ 详细
16
钢铁侠的比喻:现阶段多造"战衣",少造"机器人"
亮出比喻前他先郑重定调:"我们得小心地来做这件事。这是软件,咱们认真点儿(Let's be serious here)。"(别被全自动炫酷演示冲昏头,软件出错代价高。)然后端出"一直特别喜欢"的钢铁侠类比,说它"在科技会怎么演变这些方面,在很多点上都'对'得不行"。关键在战衣本身就是两种东西的合体:"它既是一种增强(augmentation)——Tony Stark 可以亲自驾驶它,也是一个 agent。在某些电影里它相当自治,能自己飞来飞去去找到 Tony。"——"增强"(人钻进去亲自开)和"自治"(脱离人自己飞)正是自治滑杆的两端,而"我们多少是两者都想要一点"。
落到现阶段该怎么选,他给出那句标志性口号并拆成可操作指引:"你想构建的东西,应该少一点 Iron Man 机器人、多一点 Iron Man 战衣。少去做那些花哨的自治 agent 演示,多去构建部分自治的产品。" 这些产品有定制的 GUI 和 UI/UX,为的是让"生成-验证循环"转得非常快。但他特别叮嘱别因此放弃自动化的长期目标:"但我们同时也没忘记:原则上把这份工作自动化是有可能的。你的产品里应该有一个 autonomy slider,你应该去思考:要怎么拨动它、让你的产品随着时间推移变得越来越自治。"——先做战衣,但要在产品里给"将来变机器人"预留好那根滑杆。→ 详细→ 详细
他借一段视频表达对下一代的乐观,情绪相当外露:"HuggingFace 的 Tom Wolf 分享了这段我特别喜欢的视频,里面是一群小孩在 vibe coding。我太爱这个视频了——你怎么可能看着它还对未来感到悲观?未来一片光明。" 他还把这个比喻往长远说:"我觉得这最后会成为通向软件开发的'入门毒品'(gateway drug)"(小孩从 vibe coding 玩起,玩着玩着就被领进真正的软件开发大门),并表态"我对这一代人的未来不悲观(not a doomer)"。→ 详细
MenuGen 最让他"着迷"的,是它暴露了一个反直觉真相——写代码反而是最容易的那部分(和大众对"AI 写代码"的想象正好相反):"vibe coding 那部分的代码其实是最简单的,大部分工作是在我试图把它变成真东西的时候——让它真的能有身份认证(authentication)、支付(payments)、域名(domain name)、还有 Vercel 部署。这部分真的特别难,而且这些全都不是写代码(all of this was not code)。所有这些 devops 的活儿都是我在浏览器里点来点去,极其极其慢,又多花了我一周。" 时间对比讲得很扎心:"我几个小时就在笔记本上把 MenuGen 的 demo 跑通了,然后又花了我一周,因为我想把它变成真东西,而原因就是这事儿实在太烦人了(really annoying)。"(devops 泛指部署、配置、运维这类把软件真正跑起来、上线、能收钱的工程杂活。)→ 详细
他举了最让他抓狂的具体场景——给网页加"用 Google 账号登录":"就是这个 Clerk 库(一个做登录认证的第三方服务)给我一大堆操作说明:去这个 URL、点这个下拉菜单、选这个、再去那个、点那个。它就这么一步步告诉我该干什么。"荒诞点在于:这些步骤本是机器最擅长的重复操作,却要一个人类照着清单手动一条条执行。他的吐槽几乎脱口而出,也正是引出第三个机会的钩子:"一台计算机在告诉我该做哪些操作。你自己做啊,凭什么是我来做?搞什么鬼(What the hell)?这太疯狂了。"→ 详细
19
机会三:直接"为 agent"来改造你的网站和文档
接着上面那段吐槽,他几乎赌气式地抛出第三个机会:"我们能不能干脆为 agent 而构建(build for agents)?我不想干这种活,agent 能不能来干?" 他随即定义了一类全新的"数字信息使用者"诞生了,这是理解整个机会的关键:"过去要么是通过 GUI 的人类,要么是通过 API 的计算机(人靠点界面,程序靠调接口)。而现在我们有了一个全新的东西——agent,它们是计算机,但又有点像人,是'人的精灵'(people spirits);互联网上出现了一群人的精灵,需要跟我们的软件基础设施打交道。我们能不能为它们而构建?"——它正好卡在"用图形界面的人"和"用 API 的程序"中间:既能像人一样读网页看文档,又能像程序一样批量自动地操作。专门"为它"设计产品,就成了一片全新的空白市场。→ 详细
他给了一串很具体的做法,逐条都讲了为什么:
① 放一个 llms.txt。 类比老约定 robots.txt(指示爬虫怎么在你网站上行事)。"它就是一个简单的 markdown,告诉 LLM 这个域名是关于什么的,对 LLM 来说非常好读。"反面是:"要是它只能去抓你网页的 HTML 然后试图解析,那非常容易出错、根本行不通。所以我们干脆直接对 LLM 说话。"→ 详细
② 把给人看的文档转成对 LLM 友好的 markdown。 "海量文档写给人看(列表、加粗、图片),LLM 没法直接获取。Vercel 和 Stripe 就是这方面的早期行动者(early movers),用 markdown 提供文档。markdown 对 LLM 超级好理解。"他插了个亲历例子证明这有多管用:"3Blue1Brown 写了一个叫 Manim 的库(用代码生成数学动画)……我不想通读它的详尽文档,就把整份文档复制粘贴给一个 LLM,描述了我想要什么,然后它就开箱即用地成了(worked out of the box)——直接给我 vibe code 出了一段动画,正是我想要的。" 引申出一句预判:"如果我们能让文档对 LLM 可读,那将释放出海量的用途。"(一份本要人花半天啃的文档,喂给 LLM 几秒钟就转化成能跑的代码。)→ 详细
全场总结,他把几条主线拢成一段:"这是个多么了不起的入行时代啊。我们需要重写一大堆代码……这些 LLM 有点像公共事业设施(utilities),有点像晶圆厂(fabs),但它们尤其像操作系统(especially like operating systems)。可现在还太早了,就像操作系统的 1960 年代。"——他特意用"尤其"再次把"操作系统"从三个类比里拎出来强调,这是他给"LLM 到底是什么"下的最终定性。再次呼应前半场的"心理学":"这些 LLM 有点像会犯错的(fallible)'人的精灵',我们得学着跟它们协作。而要把这事儿做好,我们需要调整我们的基础设施来适应它们(adjust our infrastructure towards it)"——这一句正好把第二、第三个机会(部分自治 app、为 agent 改造基础设施)都收了进来。→ 详细
行动指南也是三条主线的回收:做"部分自治"产品、把"生成-验证"循环做到飞快、"还有很多代码也得更直接地为 agent 来写"。最后回到钢铁侠战衣,把整场钉进一个十年尺度、方向明确的画面里——这也是为什么标题用"十年"而非"元年":"在接下来大约十年里我们会看到的,是我们把那个滑杆从左往右推(take the slider from left to right)。" 今天先造"战衣"(人主导、AI 增强),随着模型一年年变强,再把自治权一点点交出去,慢慢逼近"机器人"那一端。结束语带着他一贯的乐观和号召:"看看那会是什么样子会非常有意思。我已经迫不及待要和你们所有人一起去构建它了(I can't wait to build it with all of you)。谢谢。"→ 详细
21
金句
"It's amazing we can program computers in English now."(太了不起了,我们现在能用英语给计算机编程)—— Karpathy 置顶推文 → 详细
"Software 2.0 quite literally ate through the software stack of the autopilot."(Software 2.0 这套栈,可以说是真真切切地把 Autopilot 的整个软件栈"吃"掉了)→ 详细
LLM 像 "people spirits, stochastic simulations of humans"(人的精魂,对人类的随机仿真)。→ 详细
"When the state-of-the-art LLMs go down, it's actually kind of like an intelligence brownout in the world."(当最先进的 LLM 宕机,那就像是全世界经历了一次"智能限电")→ 详细
"A GUI utilizes your computer vision GPU... looking at stuff is fun and it's just a kind of like a highway to your brain."(GUI 调用的是我们脑子里那块视觉 GPU……看东西很好玩,就像一条直通大脑的高速公路)→ 详细
"It's not the year of agents, it's the decade of agents."(这不是 agent 的元年,是 agent 的十年)→ 详细