
我们正在从“氛围编程”(Vibe Coding)进入“智能体工程”(Agentic Engineering)的新时代。
AI 大神 Andrej Karpathy 公开说出“我从未感觉自己作为程序员如此落后”时,你可能觉得这是一种谦虚或凡尔赛。

但这是实话,是一种面对范式剧变时的真实感受,就像一个织工第一次看到蒸汽纺纱机时的震撼。Andrej 感受到的“落后”,不是因为他写代码的速度慢了,而是因为“写代码”这件事本身的定义正在被重塑。
这场在红杉资本 AI Ascent 峰会上的对话,信息密度极高。它不是在布道AI有多厉害,而是在揭示一个已经发生但未被普遍感知的现实:一种新的工程学科正在成形,它要求我们重新审视从开发、部署到评估的每一个环节。
要理解 Andrej 的“落后感”,必须先理解他所说的软件 3.0 到底是什么。
软件 1.0:我们用明确的指令编写代码。比如 if-else,for 循环。这是人类逻辑的直接转译,确定而僵硬。
软件 2.0:我们不直接写代码,而是通过构建数据集和训练神经网络来“编程”。代码变成了学习到的权重。这是通过数据寻找模式,比 1.0 更有弹性,但本质上仍是针对特定任务的优化。
软件 3.0:编程变成了“提示”(Prompting)。大型语言模型本身成了一个可编程的通用计算机,而“上下文窗口”(Context Window)就是我们操作这个计算机的杠杆。
如果你对 AI 的使用还停留在“帮我写一段代码”的水平,这是一种典型的软件 1.0 思维,只是把 AI 当成了一个更快的打字员或一个更博学的 Stack Overflow。
Andrej 举了两个例子,揭示了软件 3.0 的真正能力。
第一个例子是 open-interpreter 的安装。在传统世界(软件 1.0),为了让一个程序能在各种不同环境(macOS, Linux, Windows, 不同版本的 Python)下安装,开发者需要编写一个极其复杂的 Shell 脚本,处理各种边界情况。这个脚本会变得越来越臃肿,难以维护。而 open-interpreter 的安装方式是什么?它直接给你一段文本,告诉你:“把这段话复制粘贴给你的 Agent。”
这个 Agent 会理解你的意图(“我要安装这个东西”),然后自己检查你的系统环境,智能地执行指令,遇到问题甚至会自行调试。这背后的思想转变是巨大的:你不再需要为所有可能性编写精确的代码,你只需要清晰地表达你的目标,让一个拥有“常识”和“执行能力”的实体去完成它。那个复杂的 Shell 脚本,在软件 3.0 的范式下,根本就不应该存在。
第二个例子,MenuGen。
Andrej 做了一个叫 MenuGen 的小应用。场景是:去一家没有图片的餐厅,你看不懂菜单上的菜名。这个 App 允许你拍下菜单,然后它会通过 OCR 识别菜名,调用图像生成模型为每个菜生成一张图片,最后重新渲染一个带图的新菜单给你看。这是一个典型的、聪明的、结合了多种技术的软件 2.0 应用。它需要前端、后端、部署。

现在,他看到了软件 3.0 的版本:直接把菜单照片发给 Gemini,然后说一句:“用图片把这张菜单上的菜品覆盖掉。”Gemini 返回了一张图片,就是他拍的那张菜单,但每个菜名旁边,都精准地“P”上了一张菜品图。

Andrej 的原话是:“这让我大为震惊……我那个 MenuGen 应用的全部代码都成了多余的,它就不应该存在。”
这就是软件 3.0 的破坏力。它不是让你的 App 开发得更快,而是让你的 App 变得毫无必要。整个“识别-处理-再渲染”的复杂链路,被一个端到端的“理解-生成”模型一步完成了。
这引出一个更深层次的问题:今天我们正在构建的无数应用、服务和工作流,有多少本质上只是旧范式下的“MenuGen”,在软件 3.0 的浪潮中注定会被拍扁?
去年,Andrej 创造了“氛围编程”(Vibe Coding)这个词。它描述的是一种新的编程体验:你不再需要精确地记住每个 API,你可以凭着“感觉”和“氛围”,用自然语言描述你的想法,AI 会帮你填充细节。这极大地降低了编程的门槛,让更多人能创造软件。Andrej 认为,Vibe Coding 的核心价值在于“提高所有人的下限”。
但这只是故事的一半。当你把 Vibe Coding 的产物放到专业的、严肃的生产环境中时,问题就来了:它可能引入漏洞,可能存在性能隐患,可能设计得一塌糊涂。
于是,出现了一个新概念:“智能体工程”(Agentic Engineering)。

如果说 Vibe Coding 是提高下限,那么 Agentic Engineering 的目标就是“维持原有的质量标准”,甚至在高速开发的同时超越它。
这门新兴的工程学科,研究的核心问题是:我们如何驾驭和协调这些能力强大但又有点“神经质”、“随机”的 Agent,让它们在不牺牲软件质量的前提下,极大地提升开发效率?
这不再是“写个 Prompt”那么简单。它是一门真正的工程学,涉及:
Andrej 提到,以前我们说“10 倍工程师”,但在智能体工程的时代,这个差距会被急剧拉大。一个顶尖的智能体工程师,带来的效率提升可能远不止 10 倍。
智能体工程之所以必要,是因为 LLM 的智能是“参差不齐的”。
比如那个经典的洗车问题,如果你问模型“我要去 50 米外的洗车店洗车,我应该开车去还是走过去?” 模型告诉他:“走过去,因为很近。”
一个能帮你重构十万行代码库、发现零日漏洞的“超级智能”,却无法理解“去洗车店需要开着车”这个最基本的物理世界常识。

为什么会这样?Andre j给出的核心解释是“可验证性”。
像 OpenAI、Google DeepMind 这样的前沿实验室在训练这些模型时,本质上是在一个巨大的强化学习环境中进行的。模型做出行为,如果行为的结果是好的、可验证的,它就得到奖励。
代码和数学:结果极其容易验证。代码能跑通、通过所有测试用例,就是对的;数学题算对了,就是对的。因此,模型在这些领域的能力突飞猛进。
常识问题:“去洗车店该不该开车”这类问题,在训练数据和奖励函数中,可能根本没有被很好地定义和验证。
这种“参差”是由两个因素共同决定的:任务本身是否可验证,以及实验室是否关心并投入资源去构建这个验证环境。
Andrej 提到一个细节:GPT-4 的国际象棋能力相比 GPT-3.5 大幅提升,很多人以为是模型能力自然演进的结果。但实际上,很可能是因为 OpenAI 在预训练数据中加入了海量的国际象棋棋谱数据。有人做出了这个决定,于是模型就在这个特定维度上“被”变强了。
这揭示了一个现实:我们作为用户,在某种程度上受制于这些实验室的“偏好”。他们往数据和奖励函数里加什么,模型就在哪里变强。我们拿到的,是一个没有说明书、能力曲线极不平滑的“黑箱”。
而智能体工程师的核心职责之一,就是探测和管理这种“参差”。你需要知道在你的应用场景里,你正处于模型的哪个“电路”上。如果你恰好在被RLHF(人类反馈强化学习)充分优化的电路上,你会感觉如虎添翼,体验如丝般顺滑。如果你偏离了这些电路,你会觉得模型愚蠢得不可理喻。
当你的应用不在主流电路上时,你就需要自己动手了,比如通过微调来创建你自己的“小电路”。这本身就是一种高级的工程能力。
随着 Agent 越来越强大,人类的价值在哪里?Andrej 给出的答案,看似老生常谈,但结合他的例子却异常深刻:品味、判断、审美和监督。
他在开发 MenuGen 时,他的 Agent 写了一段逻辑:当用户用 Stripe 购买积分时,系统会尝试通过 Stripe 账户的邮箱去匹配用户的 Google 登录邮箱,然后把积分加到那个 Google 账户上。
这个逻辑在 Agent 看来可能很“智能”,但从一个有经验的工程师角度看,这是个灾难性的设计。因为一个人完全可以用不同的邮箱注册 Google 和 Stripe。正确的做法是使用一个持久化的、唯一的 User ID 来关联所有操作。
这就是“判断力”。Agent 可以填充实现细节,但它可能缺乏高层次的架构设计原则。它可能会写出能工作的、但极其脆弱和丑陋的代码。
Andrej 还提到一个细节:他现在已经记不清 PyTorch 和 NumPy 之间那些繁琐的 API 差异了,比如到底是 dim 还是 axis,是 reshape 还是 permute。这些细节可以完全交给“实习生”(Agent)去处理。但是,他必须知道“张量有一个底层的视图”和“创建一个新的存储”之间的区别,因为这关系到内存效率。
你不需要记住具体的 API,但你必须理解其背后的根本原理。
这最终导向了 Andrej 在访谈结尾引用的那句发人深省的话:
“You can outsource your thinking, but you can’t outsource your understanding.”(你可以外包你的思考,但你无法外包你的理解。)
AI 可以帮你执行思考过程,帮你生成方案,帮你写出代码。但最终,构建对整个系统、整个问题域的深刻“理解”,仍然是你作为人类的核心任务和瓶颈。你无法指导一个你完全不理解的系统。
你的 Agent 能走多远,上限取决于你的理解深度。
Andrej Karpathy 在红杉的这场分享,让我们看到:
许多现有的软件和工作流正在迅速过时。很多“聪明”的 SDE 和产品经理,还在费力地用软件 2.0 的方式搭建复杂的“MenuGen”应用,而软件 3.0 的范式已经可以直接釜底抽薪。
对工程师的要求正在发生质变。传统的招聘流程,比如在白板上解一个算法题,对于评估一个人的“代理人工程”能力几乎毫无用处。Andrej 设想的未来招聘可能是:给你一个项目,看你如何利用 Agent 工具快速构建、加固、部署,并抵御其他 Agent 的攻击。
真正的护城河是“理解”。AI 让获取信息和执行任务的成本趋近于零,但“理解”的成本没有降低,反而因为信息过载而变得更高。构建个人或组织的“知识库”,利用 AI 工具增强自己对信息的吸收和综合能力,将变得至关重要。
我们正处在一个巨大的断层上。一边是仍然停留在软件 1.0/2.0 思维模式下,把 AI 当作辅助工具的“旧世界”;另一边是已经开始拥抱软件 3.0,把 Agent 作为工程核心的“新世界”。
这正是 Andrej 感受到的的“落后感”,而大多数人,还没有真正看到未来。
参考来源:Andrej Karpathy: From Vibe Coding to Agentic Engineering