心 智 七 篇 · Seven Mental Models
← Knowledge Atlas · 概念

Software 3.0

Software 3.0:自然语言 prompt 编程范式,Karpathy 软件代际分类法的第三代
概念 · SOFTWARE 3.0 · Karpathy 2025 · 自然语言 = 编程语言

Software 3.0

Software 3.0 — LLM 不再是固定功能神经网络,而是可编程的通用计算机

Karpathy 的三代软件分类法。关键转变:1.0 人写代码 → 2.0 数据+优化器写权重 → 3.0 自然语言 prompt 是程序,LLM 是处理器。每个人都成为程序员——5-10 年专业训练不再是门槛。

三代软件范式
Software 1.0人类编写代码传统计算机执行
Software 2.0数据 + 优化器 → 神经网络权重固定功能网络推理
Software 3.0自然语言 Prompt可编程 LLM 执行
核心含义
吞噬效应
2.0 逐渐吃掉 1.0(Tesla Autopilot C++ → 神经网络);3.0 正在吃掉 1.0/2.0
Context Engineering
如果 Prompt 是程序,Context Engineering 就是 Software 3.0 的软件工程
ACI 是接口层
Software 3.0 程序(prompt)与外部世界的标准化接口
Vibe Coding
每人都是程序员——描述意图即可,无需精通语法
→ LLM OS · Context Engineering · Agentic SystemsKarpathy (2025) YC Talk

Software 3.0

定义

Andrej Karpathy 提出的软件代际分类法中的第三代。三代软件的编程范式截然不同:

代际编程介质目标
Software 1.0人类编写的代码传统计算机
Software 2.0神经网络权重(通过数据+优化器生成)固定功能神经网络
Software 3.0自然语言 prompt可编程 LLM

Software 2.0 的关键转变是从”人写指令”变为”人准备数据,优化器写指令(权重)“。Software 3.0 的关键转变是神经网络从固定功能变为可编程——LLM 不再只是一个图像分类器,而是一台通用计算机,prompt 就是它的程序。

与 Software 2.0 的”吞噬”效应

Karpathy 在 Tesla Autopilot 中观察到 Software 2.0 逐渐”吃掉” Software 1.0:神经网络接管了原本用 C++ 编写的多摄像头拼接等功能,大量 1.0 代码被删除。

同样的吞噬正在 3.0 对 1.0/2.0 发生——GitHub 代码库中出现大量自然语言和代码交织的内容。三种范式共存,开发者需要判断每个功能适合用哪种范式实现。

与编程语言的关系

Software 3.0 的”编程语言”是英语(或任意自然语言)。这带来一个前所未有的后果:每个人都成为程序员。过去需要 5-10 年专业训练才能编写的软件,现在可以通过自然语言描述来实现(参见 vibe coding)。

与 wiki 其他概念的关系

  • LLM OS — Software 3.0 的运行平台就是 LLM OS,prompt 是程序,LLM 是处理器
  • Agentic Systems — agent 系统是 Software 3.0 应用的主要形态
  • Context Engineering — 如果 prompt 是程序,context engineering 就是 Software 3.0 的软件工程
  • ACI — Software 3.0 程序(prompt)与外部世界的接口

References

  • sources/karpathy-software-is-changing-again.md — Karpathy 2025 YC 演讲,首次提出 Software 3.0 命名