软件开发因AI有了根本性转变?
刚刚,带火“Vibe Coding”风潮的前 OpenAI 大佬 Andrej Karpathy,在 YC 的演讲刷屏出圈!
这是一场足以改变你对编程、对大模型、对未来软件形态理解的深度分享。
Karpathy 一开场就掷地有声地说:
“软件正在再次发生根本性的变化。”
这句话引爆了 Hacker News 社区热议——哪怕最初发布的只是一份错漏百出的转录稿,依旧挡不住大家的疯狂转发与评论。
而在 X 上,YC 创始人 Jared 表示:
“这场演讲发人深省,让人对 LLM 有了全新的认识。”
Karpathy 的核心观点是:
过去 70 年,软件的底层范式几乎未变;
但短短几年内,软件连续发生了两次结构性巨变;
AI 正把“写代码”这件事,变成“写提示”、“对话”、“控制 Agent”;
英语,正在成为新的“编程语言”。
他说:
“我们正站在一场软件重写的浪潮上,我们有大量的工作要做、大量的软件要写,甚至重写,这将远超我们想象。”
现在,这场官录视频终于新鲜出炉!
我们为你提炼了这场演讲的干货,图文并茂,帮你还原Karpathy大神眼中的软件3.0,从中读出软件未来的走向、LLM 背后的操作系统哲学、以及“AI赋能人类”的正确姿势。
📺 视频地址:
https://www.youtube.com/watch?v=LCEmiRjPEtQ
话不多说,准备迎接 Software 3.0 的世界!
世界!
01
“软件地图”:Software 1.0 → 2.0 → 3.0
我们可以先看看“软件世界”的整体形态。假设我们有一张“软件地图”,那这张图展示的是 GitHub 上的全部项目。
这些项目可以看作是人类写给计算机的“指令”,告诉它如何在数字世界中执行任务。
你放大地图,可以看到各种各样的代码仓库——这些就是我们已经写好的所有代码。这些代码是“指令”,告诉计算机怎么在数字世界中完成任务。
我几年前观察到,软件开始向一种新形式演化,我当时给它取名叫 Software 2.0。
所谓 Software 1.0,是传统意义上我们手写的代码;
而 Software 2.0,指的是神经网络,准确地说是它们的参数(weights)。我们不再直接写“代码”,而是调数据、跑优化器,生成参数。
当时的神经网络还只是被看作一种分类器——就像决策树一类的工具。因此“训练神经网络”的流程,倒还挺自然。
如今,我们在 Software 2.0 世界中也有了类似 GitHub 的东西——比如
Hugging Face、模型地图等,它们就像代码库一样存储着不同的模型。
你看到的中间那个大圆圈,其实是 Flux(一个图像生成模型)的参数。每次有人在 Flux 上微调模型,就像是对 GitHub 的一次提交。
一直以来,我们所熟悉的神经网络,其实都更像“功能固定的机器”——比如图像分类器。
而这一次,我认为最根本的改变是:
神经网络开始“可编程”了。
这就是我们所说的大语言模型(LLMs)。
在我看来,这是一种全新的计算机。我甚至认为它值得被称为Software 3.0。
现在,你写的 prompt 就是“程序”,而它运行在大模型之上。更奇妙的是——这些“程序”居然是用英语写的!
这是一种非常特别的编程语言。
因此,现在我们已经拥有三种完全不同的编程范式:
Software 1.0:手写逻辑;
Software 2.0:训练参数;
Software 3.0:用 prompt 驱动大模型。
我建议任何即将入行的人,都要对这三种范式“多面手”,因为它们各有优劣:
有时你想显式写逻辑,那就用 1.0;
有时你想训练模型,那就用 2.0;
有时你只需要 prompt,那就用 3.0。
02
大模型(LLMs)不是“算法”而是“操作系统”
接下来,我想聊聊大语言模型(LLMs)所代表的新计算范式,以及这个新“计算生态”长什么样子。
我很早以前看到一句话让我印象深刻,是 Andrew Ng 说的:
“AI 就像是新时代的电力。”
这句话点出了关键点:
LLM 实验室(如 OpenAI、Gemini、Mistral 等)投入资本(CapEx)来训练模型;
然后用运营开销(OpEx)通过 API 向开发者“输送智能”;
模型按 token 计价,像电力一样被“计量使用”;
我们对这些模型的要求也非常像“基础设施”:低延迟、高可用、稳定输出。
假设你切换电源时需要一个转换开关(transfer switch),我们在用 LLM 时也需要在不同模型之间切换,比如通过 router 连接 Claude、GPT、Gemini。
“当 SOTA 模型宕机的时候,简直就像是全世界都‘断电’了。就像电压不稳,全球都在‘降频’运行。”
但和电不一样,LLM 不是一种简单商品,而是一个复杂的软件系统,甚至更像操作系统(Operating System):
OpenAI、Anthropic 就像是 Windows 和 macOS;
而开源模型(如 Mistral、Qwen、LLaMA)则更像 Linux;
操作系统的作用不是“运行某个功能”,而是构建一个“平台”来承载更多功能;
同样地,LLM 并不是自己在“完成任务”,而是承载了很多提示词、工具、代理(agents)等“运行时系统”。
当然,现在的 LLM 还处在非常早期的阶段,它们本质上还是“语言模型”。
但现在的趋势非常清晰:重点不再只是模型本身,而是围绕它的工具链、模态集成、交互协议等全面生态。
我当初意识到这一点时,尝试画了一张草图:
LLM 是一种新型“计算机”,类似于 CPU;
Context window(上下文窗口)就是内存;
LLM 负责协调“内存 + 计算资源”来解决问题;
它使用的“能力插件”正在不断扩展。
从这个角度看,LLM 看起来非常像一个新型的“操作系统”。
还有个类比我很喜欢:
比如你要下载一个 App,比如 VS Code。你可以在 Windows、Linux、macOS 上运行。
同理,你也可以拿一个基于 LLM 的 App,比如 Cursor,部署在 GPT、Claude、Gemini 上。
这些模型像是不同系统平台,而 App 则是通用的可插模块。
03
我们还没进入“AI 个人计算机时代”
我们现在的 LLM 计算,处于类似“1960 年代”的阶段。
LLM 推理成本仍然很高;
所以模型计算被集中部署在云端;
而我们就像瘦客户端(thin client),通过网络远程访问;
没有人真正“独享”一台模型计算机。
于是我们回到了“分时共享制”(Time-Sharing)的计算模式——大家排队用一台模型,在云里“批处理”执行任务。
“现在像是在 1960 年代,大家排队使用计算资源。未来是否能像 1980 年代那样迎来个人化 AI?我们还不知道。”
当然,也有一些尝试正在发生:
比如 Mac Mini 被证明是一些 LLM 的理想平台;
如果你的使用方式是“批量推理 + 高内存消耗”,那么本地推理其实是可行的。
这些是个人化 AI 的早期迹象,但还远远谈不上普及。
也许在座的某位会定义下一代个人 AI 计算机的模样。
04
与 LLM 交互像是用“命令行”,而 GUI 还没诞生
每次我和 ChatGPT 聊天,就像是在“命令行终端”中和操作系统对话。
目前我们还没有一个真正意义上的 GUI(图形用户界面):
ChatGPT 只是一个对话气泡;
你能用它做事,但它并不适合所有任务;
很多未来的 LLM 应用需要建立自己的 GUI;
目前没有一个通用的、跨任务 GUI 接口存在。
05
AI的技术扩散路线“上下颠倒”,这项革命性技术属于所有人
大语言模型(LLM)和操作系统虽然有很多相似之处,但它们也有一些非常独特的不同点,尤其是在技术扩散路径方面。
比如说,电力、密码学、计算机、飞行、互联网、GPS 等等——这些具有变革性的技术,过去都是从政府和大公司先用起来的。
因为它们昂贵、门槛高,只有大型机构能率先试水,之后才逐渐扩散到消费者手中。
但 LLM 完全反过来了。
大众用户才是最早的 adopter,而政府和大企业反而是后知后觉的那批。
所以这次技术扩散是“上下颠倒”的。这项革命性技术不再掌握在政府或大公司手里,而是属于我们所有人——因为它只是软件,我们每个人都可以用!
ChatGPT 就像“被光速投射到了我们每一台设备上”,转眼之间,几十亿人拥有了这台新计算机。
06
LLM 是“有缺陷的灵魂”:幻觉、近事遗忘、安全性
LLM 拥有百科全书式的知识和记忆力,远远超过任何单个人类。
当然,它们也有很多认知缺陷:
它们常常幻觉(hallucinate),会“编造”内容;
它们缺乏真正的自我认知模型;
虽然这些问题已经有所改善,但还远未解决;
它们展现的是“锯齿状智能”——某些方面超人类,某些方面蠢到爆。
比如,模型可能坚称:9.11 > 9.9,或者“strawberry”里有两个 r,这些就是经典的例子。
所以它们仍然有很多“坑”,你可能一不小心就踩进去。
另一个非常独特的问题是——近事记忆缺失(anterograde amnesia)。
你可以把 LLM 想象成一个刚入职的新同事:随着时间推移,它应该越来越了解公司流程、吸收上下文,并建立自己的专业知识结构。但LLM没有真实的成长,它们的记忆完全依赖你提供的上下文窗口(context window)。
换句话说:
它们不会自己变聪明;
你必须“显式编程”它的工作记忆;
很多人对这点理解不足,被“AI 能自学”的幻觉误导。
我建议大家看两部电影:《记忆碎片》(Memento)和《初恋50次》(50 First Dates)。
两部片子里的主角都患有记忆缺陷——每天早上醒来都失去前一天的记忆。
你想想,在这种状态下去工作、去建立关系,真的太难了。
还有一个值得注意的问题是安全性。
LLM 非常容易被欺骗,比如 prompt injection 攻击;也有可能泄露数据。
我们面对的是一种拥有超能力但又有严重缺陷的数字生命体。
我们要思考的是:
如何编程这些 LLM?
如何绕过它们的缺陷?
如何发挥它们的“超人力”?
07
部分自治软件:下一代 LLM 应用的基本形态
我们该如何使用这些模型?又有哪些令人兴奋的机会?
第一个我感到特别兴奋的方向是:部分自治应用(Partial Autonomy Apps)。
为什么你要复制粘贴代码到 ChatGPT,再复制粘贴回来,而不是直接在一个“懂代码”的 IDE 中完成?
因此比起ChatGPT,我更推荐你使用Cursor。
Cursor 是一款早期的 LLM 应用典范,它具备一系列通用特征,值得所有 LLM App 借鉴:
一方面,它保留了传统 IDE 界面,允许用户手动操作;
另一方面,它也集成了 LLM,可以处理更大规模的修改、生成任务;
用户可以按需调用 LLM 处理不同粒度的任务。
还一个关键特性是我称之为“自治滑块(Autonomy Slider)”:你始终掌控着自治滑块,根据任务复杂度来决定给 LLM 多大的权力。
还是以 Cursor 为例:
你可以选择自动补全(最小自治);
也可以选中一段代码按 Command+K,让它只修改这一段;
或者按 Command+L,修改整个文件;
甚至按 Command+I,让它对整个 repo“放飞自我”,自由重构(最大自治)。
总结来说,LLM 应用的关键特征是:
人类可以完整手动操作:传统输入仍可用;
LLM 做上下文管理与调用编排:后台 orchestrate 多模型;
有 GUI 可审查生成内容:例如高亮 diff、快捷接受/拒绝;
自治程度可调:从部分生成,到一整页改写,用户自主选择。
08
我们和LLM进入协作阶段
我们和 LLM 之间的关系,已经变成了协作。
AI 负责生成(generation);
人类负责验证(verification)。
我们的目标应该是:让生成-验证这个闭环尽可能快地运行起来,这样我们才能真正提效。
要加快这个循环,我认为有两个关键点:
1.加快验证流程
GUI 是实现这一点的重要工具。
阅读纯文本很费劲,而看图形是高效的。图像是一条“通向大脑的高速公路”。
所以,从系统审查效率来说,图形化呈现非常重要。
2.我们必须给 AI 套上缰绳(on a leash)
现在很多人对 AI Agent 的能力过于乐观。
但问题在于:
“我不想一次性收到一个 1000 行代码 diff。”
即便这些代码一瞬间生成,我作为人类审查者依旧是整个流程的瓶颈。
所以我的个人习惯是:
绝不一次生成太大 diff;
始终采取“逐块小修改”的方式;
每一步都快速验证,然后再往下推进。
我相信我们很多人都在逐步摸索出适合自己的方法论。
09
软件真的很难,不要去做炫技的“全自治 Agent Demo”
我想顺便分享一个故事:
我第一次坐上自动驾驶汽车是在 2013 年。
我当时的感觉是:天啊,自动驾驶已经实现了,它真的能跑了。
结果现在都 12 年过去了,我们还在努力攻克自动驾驶的问题。
Waymo 的车现在看起来“无驾驶员”,但其实仍然有很多远程操作、很多人类介入。
我想说的是:软件真的很难。
它的难度和自动驾驶几乎是一个等级。
所以当我看到有人说“2025 是智能体(agents)元年”,我会感到警惕。
我想说的是:这是“Agent 的十年”,不是某一年的事情。
我还特别喜欢用《钢铁侠》作为比喻。
我一直都喜欢这个角色,它以很多方式非常贴切地反映了技术的演进。
你看,钢铁侠战衣既是一种增强工具(augmentation),也具备自主智能体(agent)的特征:
有时候托尼·斯塔克亲自驾驶它;
有时候它能独立飞行、自动寻找目标,还能“找回主人”;
这就是“自治滑块”的不同模式。
现在这个阶段,我认为:
与其说我们在构建“Iron Man 机器人”;
不如说我们更像是在打造“Iron Man 战衣”。
我们真正要做的,不是去做炫技的“全自治 Agent Demo”,而是做那些具有部分自治、真正实用的产品。
这些产品:
拥有定制化的 GUI 和交互体验;
能让生成-验证的闭环极快运转;
又不失控、可监督;
同时也保留了未来可以逐步自动化的可能性。
你应该思考:你的产品中是否已经有“自治滑块”?你能不能逐步推动它向更高自治程度演进?
在我看来,这类“增强人 + 可调节 Agent”的混合产品,才是当前最具潜力的方向。
10
“Vibe Coding”走红:我们应该“走向中间”,与 LLM 会合
不知道你们有没有听说过“Vibe Coding”?
我发的这条推文,就是在讲这个概念——后来它变成了一个爆火 meme:
“英语不是编程语言,但它现在就是了。”
这条推文当时我以为不会有人在意,就像很多“灵感一闪”的碎碎念那样。
结果,它意外走红,大家疯狂转发。
因为它刚好说出了很多人心里的感受:我们都感觉到事情变了,却一时找不到一个词来定义。
现在甚至有了对应的 Wikipedia 页面(笑),这算是我为时代贡献的一个新术语吧。
我也试着搞了点「vibe coding」,因为它真的很有趣,其中包括一个叫 MenuGem应用,拍菜单自动生成图片展示,大家现在就能去试:menugem.app。
vibe coding的感受是:
编码本身(vibe coding)很简单;
反而最麻烦的,是接入登录、支付、部署等 DevOps 环节;
比如谷歌登录,网页写了一大堆“点击这→跳到那→点确认”,都是给人操作的,而不是设计给 Agent 调用的。
所以: “我们以前只为人类构建 GUI,现在要为 LLM 构建 API 生态。”
我的观点是:
对于绝大多数产品来说,我们应该“走向中间”,与 LLM 会合;
与其等 LLM 完美,不如我们主动调整格式、协议、接口。
最后总结
总结一下:
现在是进入这个行业的黄金时刻。
我们要重写大量代码,而这部分会由专业人士、也会由“vibe coder”来完成。
LLM 像是公用设施(utilities),像是 AI 晶圆厂(fabs),但更像是操作系统。
而这一切,才刚刚开始——这还是“操作系统的 1960 年代”。
这些模型本质上就像数字人格,有缺陷,但极强大,我们要学会与它们共处。
为此,我们需要重塑软件基础设施。
未来十年,我们会不断把“自治滑块”从左往右推进。
这个过程会非常有趣,我也等不及要跟大家一起去创造它了。
评论