当Karpathy在Sequoia Ascent上抛出“install .md”和“menugen”这样的概念时,他其实在暗示一个比AI coding更深远的变化:我们正在从软件1.0(经典代码)和2.0(神经网络)进入一个三者共存的混合范式,而LLM是那个让3.0真正变得可操作的引擎。

核心观点:LLM的真正革命性不在于加速现有流程,而在于开启了经典代码无法实现的全新功能类别,这正在迫使整个软件行业重新思考什么是计算。

最近在Sequoia Ascent 2026的炉边谈话中,Andrej Karpathy提出了一个令人不安的命题:大型语言模型的意义远不止于加速已有的东西。他举了三个例子——menugen(一个完全被LLM吞噬的应用,无需经典代码)、install .md(用自然语言描述安装过程代替bash脚本)、以及基于LLM的知识库(处理任意来源非结构化数据的计算)——来论证一个观点:这些功能要么是经典代码时代根本不可能实现的,要么是突然之间显得不应该再以传统方式存在了。这个论断听起来很技术性,但它实际上指向了一个更深层的、关于计算本身定义的变化。我们正在经历的不是一次升级,而是一次范式的第三次跃迁。

过去十年,我们习惯了将AI视为一种“加速器”。自动驾驶加速了驾驶的自动化,推荐系统加速了内容分发,代码补全加速了程序员写代码。这种叙事非常舒适,因为它让AI看起来只是现有世界的一个更快的插件,而不是一个颠覆者。但事实是,LLM的独特能力——它能够在非结构化、模糊、多义的语境中进行推理——正在开辟一片经典代码和传统神经网络都无能为力的新大陆。这不是一个关于效率的故事,而是一个关于可能性的故事。

让我具体一点。经典代码(软件1.0)的本质是确定性:你写if-else,机器执行。它擅长一切可以被精确量化和逻辑化的任务,但它对模糊性极度过敏。神经网络(软件2.0)通过训练数据学会了处理概率和模式匹配,但它依然需要大量的结构化输入和明确的标签,本质上是被框定在特定任务中的。而LLM(以及更广义的软件3.0)则不同:它可以直接理解自然语言的指令和上下文,甚至是残缺的、矛盾的、来自完全不同领域的信息。这就意味着,过去那些因为“无法被精确编程”而被放弃的需求,现在有了被满足的可能。

以install .md为例。Karpathy的设想是:为什么要写一个复杂的bash脚本来安装软件?你可以只写一个Markdown文档来详细描述安装步骤,然后让LLM去执行。这个想法听起来简单,但它的颠覆性在于它彻底改变了“程序”的定义。在软件1.0的世界里,程序是代码;在软件3.0的世界里,程序可以是一段文字。这意味着,一个不懂编程的人,只要有清晰的逻辑和表达,就可以创建可执行的“程序”。这不仅仅是民主化编程,这是重新定义了编程的边界。那些因为写代码成本太高而无法自动化的边缘任务,突然变得可以自动化了。

当然,反对者会立刻跳出来:LLM太不可靠了,它会胡编乱造,它无法保证确定性。这个批评完全正确,而且恰如其分地引出了LLM能力的核心矛盾——所谓的“锯齿形”能力分布。一个模型可以同时重构十万行代码并建议你“走路去洗车”。Karpathy在谈话中也承认,这种锯齿性源自两个因素:领域的可验证性和经济性。当一个领域的答案可以被自动验证(比如代码,因为你可以编译和运行),RL训练就会把它推入数据分布中,模型表现就好。反之,当答案难以验证或市场价值不足(比如个人生活建议),模型就容易被冷落,表现为“越野模式”。这解释了为什么LLM在某些任务上像天才,在其他任务上像傻瓜。这不是bug,而是经济激励下的特征。

这个现实让“LLM代理经济”的概念变得尤为重要。Karpathy在会上提出了一个框架:将产品和服务分解为传感器、执行器和逻辑,并且让这三者跨越软件1.0、2.0和3.0三种计算范式共存。一个典型的例子是:传感器可以是摄像头(1.0的硬件驱动),逻辑可以是一个LLM agent(3.0的推理核心),而执行器可以是机械臂(1.0的硬件控制)。这种混合架构之所以成为可能,是因为LLM提供了一个统一的、人类可读的接口来协调这些异质组件。过去,我们需要为每种组合写专门的集成代码;现在,我们只需要告诉LLM“当摄像头检测到X时,让机械臂做Y”,它就理解了。

这意味着什么?意味着我们正在进入一个“代理原生”的时代,软件不再是产品,而是服务。一个初创团队可以快速地将一个想法变成由LLM驱动的自动化流程,而不需要深厚的工程背景。与此同时,这也对传统软件公司的商业模式提出了严峻的挑战:当“应用”可以被一段自然语言描述替代时,你卖的是什么?是数据?是体验?还是品牌?这些问题的答案会决定谁在下一个十年生存下来。

但最根本的变化可能不在于工具本身,而在于我们如何看待计算。在1.0时代,计算是确定的、逻辑的;在2.0时代,计算是概率的、模式的;在3.0时代,计算正在变成对话式的、意图驱动的。一个用户不是输入命令,而是表达需求。系统不是执行指令,而是理解意图。这种转变的难度在于,我们的教育体系、工程文化以及绝大部分的基础设施仍然是围绕1.0构建的。Karpathy提到“代理工程”作为一种新技能的出现,但大多数人还停留在如何写更好的prompt的层面。真正需要的是对计算本质的重新理解——不是如何告诉机器做什么,而是如何让机器理解你想做什么。

当然,这条路充满不确定性。LLM的锯齿性意味着,你永远不知道它会在哪个细节上翻车。并且,随着RL训练的经济性主导模型能力的分布,那些“非主流”的任务(比如你的个人笔记助手)可能会被边缘化。但另一方面,开源模型的快速迭代正在打破这种垄断。像Mercury这样的开源agent项目在尝试提供可审计、可定制的替代方案,它们的崛起可能会分散对集中式LLM的依赖。未来的计算生态更可能是一个由多个大小模型组成的联邦,而不是一个单一的超大模型。

最后,让我回到开头那个命题:LLM的真正革命性不在于加速。它带来的不是让程序员写代码更快,而是让非程序员也能“写代码”;不是让数据库查询更快,而是让非结构化信息也能被“计算”。当计算的主要方式从“编程”转向“理解”时,我们实际上是在重新发明计算机。这不仅仅是技术变化,更是一种文化变化。随之而来的问题是:你准备好让你的系统接受不确定性了吗?你愿意放弃一些控制来换取更多可能性吗?如果你的答案是肯定的,那么你已经在进入这个新纪元的路上;如果你的答案是否定的,那么你可能在等待一个永远不会来的1.0世界的完美版本。