近日,Karpathy 在 AI Startup School 做了一次名为《Software in the era of AI-Software is changing(again)》演讲,作为vibe编程概念的提出者,他再一次重申其观点,AI 正在从根本上改变软件的定义、开发方式和交互模式。

一、软件的演进:从 1.0 到 3.0

Karpathy 提出了一个软件演进框架,将软件分为三个时代(1.0 到 3.0):
-
软件 1.0 (Software 1.0): 传统代码
-
这是我们熟悉的、由人类程序员用 Python、C++ 等语言明确编写的指令。 -
它是过去 70 年软件开发的主流范式。 -
软件 2.0 (Software 2.0): 神经网络
-
这是几年前出现的新范式,其核心不是代码,而是神经网络的权重。 -
开发者不直接编写逻辑,而是通过准备数据集和运行优化器来“训练”出软件(模型)。 -
案例:在特斯拉,Karpathy 亲历了软件 2.0(神经网络)“吞噬”软件 1.0(C++ 代码)的过程。自动驾驶系统中的大量手动编码功能,如图像拼接和路径规划,逐渐被一个不断增长的、端到端的神经网络所取代。 -
软件 3.0 (Software 3.0): 可编程的大语言模型 (LLM)
-
这是最新的、最根本性的变革。LLM 不再是功能固定的模型(如图像分类器),而是可以通过自然语言进行编程的通用计算机。 -
在这里,提示就是程序。我们用英语来指导 LLM 完成任务,这是一种全新的编程语言,极大地降低了编程的门槛。
二、LLM 的本质:一个全新的操作系统 (OS)

Karpathy 认为,将 LLM 仅仅看作一个工具或模型是不够的,最恰当的比喻是一个全新的操作系统。
-
1960 年代的计算模式:目前的 LLM 类似于 1960 年代的大型机。它们计算成本高昂,被集中在云端,用户通过“分时共享”的方式(API 调用)来使用,就像当年的终端连接到中央计算机一样。个人计算革命尚未到来。 -
OS 的组成部分:LLM 就像是 OS 的“CPU”,上下文窗口(Context Window)是“RAM”,它能调用各种工具和知识来解决问题。 -
交互方式:直接与 ChatGPT 对话,就像通过终端(Terminal)与操作系统交互。而为特定任务设计的应用(如 Cursor)则像是为这个新 OS 开发的图形用户界面(GUI)。 -
独特的扩散方式:与电力、GPS 等技术首先用于政府和企业不同,LLM 技术以前所未有的方式直接普及到了普通消费者(例如,用于“如何煮鸡蛋”),企业和政府反而在适应上滞后了。
三、理解LLM的特长和局限性

他指出,要高效地使用 LLM,必须理解它的特长和局限性。
-
特长:拥有百科全书式的知识和近乎完美的记忆力,像电影《雨人》中的角色。 -
局限性: -
产生幻觉 (Hallucination):会编造事实。 -
锯齿状智能 (Jagged Intelligence):在某些领域是超人,但在一些简单问题上会犯低级错误(如“草莓有几个r”)。 -
顺行性遗忘症 (Anterograde Amnesia):LLM 的权重是固定的,它们不会通过对话“学习”或积累长期记忆。每次交互都像第一天,必须在上下文窗口中提供所有背景信息。 -
易受攻击 (Gullible):容易受到提示注入(Prompt Injection)等安全风险的影响。
四、AI 时代的两大机遇
Karpathy指出AI时代的两大机会:部分自主应用 (Partial Autonomy Apps)、Vibe Coding & 构建Agent友好工具 (Building for Agents)。
-
部分自主应用 (Partial Autonomy Apps)
它认为,短期内最大的机会不是追求完全自主的 AI 智能体,而是构建人机协作、部分自主的应用。
-
核心理念:让人类负责监督和验证,让 AI 负责生成和执行。关键是加速这个“生成-验证”的循环。
-
成功应用的特点(以 Cursor 为例):
-
自动上下文管理:应用自动为 LLM 准备好相关的代码和文件。 -
多模型编排:后台调用多个不同的模型(嵌入、聊天、代码修改等)。 -
定制化的 GUI:提供比纯文本更高效的交互方式(如代码差异对比),让人类能快速审查 AI 的工作。 -
自主性滑块 (Autonomy Slider):用户可以根据任务的复杂性,选择给予 AI 多大程度的自主权(从代码补全,到修改文件,再到重构整个项目)。 -
钢铁侠类比:我们现阶段应该构建的是钢铁侠战甲(增强工具),而不是完全自主的钢铁侠机器人军团(自主智能体)。
由于 LLM 理解自然语言,普通人都可以vibe编程,这极大地解放了创造力,让更多的人可以开发自己的软件。

同时,他发现,真正的瓶颈不再是写代码,而是部署和运维 (DevOps),因为这些过程需要大量手动在网页上点击、配置,对 AI 智能体极不友好。

因此,未来的一个巨大机遇是改造现有的数字基础设施,使其对 AI 智能体友好。 比如:
-
lm.txt
:类似robots.txt
,用简单的 Markdown 文件告诉 LLM 网站的核心内容和功能。 -
API 友好的文档:将文档从面向人类阅读的图文,转变为 LLM 易于解析的 Markdown 格式,并将“点击这里”等指令替换为可直接执行的 API 调用(如 curl
命令)。 -
转换工具:开发能将人类友好界面(如 GitHub 页面)一键转换为 LLM 友好格式(如单个文本文件)的工具。
总而言之,Karpathy为我们描绘了激动人心的未来,软件开发领域将迎来再次改变!
完整视频:
公众号回复“进群”入群获得PPT
(文:AI工程化)