Concise Summary简洁概述
Karpathy argues that as of December 2025, AI-generated code became reliable enough to stop correcting — but the real paradigm shift isn't writing code faster, it's Agentic Engineering: disciplined supervision of agent fleets to preserve professional software's safety, quality, and accountability standards.
His central mechanism: LLM capability is "jagged" — spiking wherever a lab has built verifiable RL training environments (code, math) and collapsing on ordinary common sense elsewhere — which reframes both where startups should look for opportunity and why human judgment stays load-bearing.
Karpathy 认为,从 2025 年 12 月起 AI 生成的代码已经可靠到不必再修改,但真正的范式转变不是「更快写代码」,而是 Agentic Engineering——用工程纪律监督一组会犯错的 Agent,守住专业软件原有的安全、质量与责任标准。
他的核心机制是「锯齿状智能」:LLM 能力在实验室构造了可验证 RL 训练环境的领域(代码、数学)会飙升,在普通常识领域则可能崩塌——这既指出了创业者该往哪些可验证但尚未被覆盖的领域找机会,也解释了为什么人类判断仍然不可替代。
Infographic信息图
Software 3.0: the program is now a context window
Software 3.0:程序变成了上下文窗口
Karpathy's three-stage framing (1.0 hand-written code, 2.0 trained weights, 3.0 prompt/context-driven LLMs) reframes programming as deciding what text to hand an agent, not what functions to write — the OpenCL install-script example shows a static script replaced by a readable instruction set the agent executes and debugs live.
Karpathy 的三段论(1.0 手写代码、2.0 训练权重、3.0 prompt/context 驱动的 LLM)把编程重新定义为「决定给 Agent 复制哪段文字」,而不是「写哪些函数」。OpenCL 安装脚本的例子说明:过去不断膨胀的适配脚本,现在变成一段人类可读的说明,由 Agent 自己读取环境、执行、遇错调试。
MenuGen: when the app itself becomes obsolete
MenuGen:应用本身变得多余
His own restaurant-menu-image app, built with several OCR/generation/layout pipeline stages, was rendered pointless once Gemini + Nano Banana could take a menu photo and return a fully re-rendered menu directly — a concrete case of a model's native capability swallowing an entire product category rather than just accelerating it.
他自己做的菜单配图 App,原本要 OCR、抽取菜名、调图像生成器、重新排版好几层。等 Gemini + Nano Banana 能直接把菜单照片变成渲染好的新菜单,整个 App 的中间结构就失去了存在理由——这是模型原生能力「吞掉」产品,而不是「加速」产品的具体案例。
Jagged intelligence: verifiable tasks fly, common sense stalls
锯齿状智能:可验证任务起飞,常识判断掉队
The same model that refactors 100k lines of code and finds zero-days can fail a trivial common-sense question (walk or drive to wash a car 50 meters away) — because capability tracks what labs can verify and reward with RL, like the chess-data anecdote from GPT-3.5 to GPT-4, not general intelligence.
同一个能重构十万行代码、找零日漏洞的模型,会在「洗车该走路还是开车」这种常识题上出错——因为能力高低取决于实验室能否用强化学习验证并奖励某个任务(如 GPT-3.5 到 GPT-4 国际象棋能力暴涨,源于训练数据里加了大量棋谱),而不是通用智能的自然进化。
Agentic Engineering: interviews built around large, adversarial projects
Agentic Engineering:面试要用大项目做红队测试
Karpathy proposes replacing algorithm-puzzle interviews with a big build-and-defend task — e.g. build a Twitter clone, then throw 10 agent "red teams" at it — because the differentiator is no longer coding speed but turning ambiguous goals into specs, supervising agents, and holding a system secure under attack.
Karpathy 建议用「大项目 + 红队攻击」取代算法刷题面试:让候选人做一个 Twitter 仿盘,再放 10 个 Agent 去攻击它。因为真正的差异不再是写代码速度,而是能否把模糊目标变成清晰规格、指挥 Agent、并让系统经得住攻击。
Detailed Summary详细解读
Karpathy's turning point is dated precisely to December 2025, when he noticed he could no longer remember the last time he corrected an AI-generated code block. This is presented not as a vague sense of progress but as a threshold-crossing: agentic coding tools moved from "useful but needs patching" to "directly usable," and his trust compounded until he was fully vibe-coding. The piece is careful to distinguish this from the looser 2025 usage of the term — this is post-December, coherent agentic workflow, not one-shot chatbot Q&A.
The Software 1.0/2.0/3.0 framing does real conceptual work: it relocates "the program" from source code (1.0) or trained weights (2.0) to the context window itself (3.0) — instructions, files, tool outputs, error logs, all assembled and handed to an LLM interpreter. The OpenCL install-script example is the load-bearing illustration: instead of an ever-expanding shell script trying to anticipate every environment, the install instructions become plain text an agent reads, executes, and debugs against the actual machine it's on.
MenuGen is the piece's sharpest business argument: Karpathy built a menu-photo-to-illustrated-menu app through a multi-stage pipeline (OCR, name extraction, image generation, re-layout), only to realize Gemini plus Nano Banana could collapse the entire pipeline into one request-response pair. The lesson generalizes past code: LLMs handle unstructured information reorganization (his personal wiki project) in ways traditional structured-data software never could, meaning some products aren't being accelerated — they're being made unnecessary.
The jagged-intelligence argument is grounded in a specific causal claim, not vague hand-waving: capability spikes track what labs choose to build verifiable RL environments around. The chess anecdote — GPT-3.5-to-GPT-4's chess jump traced to a deliberate decision to inject chess data into pretraining — reframes seemingly organic model improvement as a product decision. The car-wash question (walk or drive 50 meters to wash a car) is the counter-example: outside the RL-covered distribution, a model that refactors 100k lines can still miss an obvious real-world constraint.
The Vibe Coding / Agentic Engineering distinction is the article's organizing binary: the former raises the floor (anyone can prompt a working prototype), the latter defends the ceiling (professional software still can't tolerate security holes, unowned code, or quality regressions just because an agent wrote it). Karpathy's payment-identity bug in MenuGen — matching users by email across Google login and Stripe checkout instead of a stable internal user ID — is the concrete failure mode: code that runs and passes tests but embeds a wrong assumption about identity and money.
The closing move — "you can outsource your thinking but not your understanding" — is presented with a built-in expiration warning that the article's own analysis surfaces rather than the transcript itself: taste and judgment are only irreplaceable because labs haven't yet built RL objectives around aesthetics and code quality. If that changes, the argument's foundation shifts, which is why the piece ends by naming three concrete signals to watch (new RL domains, agent-first infrastructure convergence, aesthetic RL objectives) rather than treating the human-primacy claim as settled.
文章把转折点精确定位在 2025 年 12 月:Karpathy 突然意识到自己已经记不清上次修改 AI 生成代码块是什么时候。这不是一种模糊的进步感,而是一个明确的门槛跨越——智能体编码工具从「有用但常需打补丁」变成「直接可用」,信任随之不断累积,直到他进入完全的 Vibe Coding 状态。文章特意区分了这与 2025 年初那个更宽泛的 Vibe Coding 用法的不同:这里指的是 12 月之后连贯的智能体工作流,而不是一次性的问答互动。
Software 1.0/2.0/3.0 的框架承担了真正的概念工作:它把「程序」的位置从源代码(1.0)、训练权重(2.0),转移到了上下文窗口本身(3.0)——指令、文件、工具输出、错误日志共同组成一段交给 LLM 解释器执行的文本。OpenCL 安装脚本的例子是这个论点的关键支撑:不再需要一个不断膨胀、试图预判各种环境的 shell 脚本,安装说明本身变成一段可读文本,由 Agent 读取实际机器状态、执行、并针对错误现场调试。
MenuGen 是文章里最锋利的商业判断:Karpathy 用多层管线(OCR、抽取菜名、生成图片、重新排版)做了一个菜单配图 App,后来发现 Gemini 加 Nano Banana 可以把整个管线压缩成一次请求-响应。这个教训超出了代码本身:LLM 能处理传统结构化数据软件天生不擅长的「非结构化信息重组」(比如他的个人 wiki 项目),这意味着有些产品不是被加速了,而是被彻底取代了存在的必要性。
锯齿状智能的论点建立在一个具体的因果主张上,而非泛泛而谈:能力的高峰对应着实验室选择为哪些领域构建了可验证的 RL 训练环境。国际象棋的例子——GPT-3.5 到 GPT-4 象棋能力的跃升,源于有人特意把棋谱数据加进了预训练——把看似「自然进化」的模型进步重新解释成了一个产品决策。洗车问题(50 米外洗车该走路还是开车)则是反例:一旦落在 RL 覆盖范围之外,即便是能重构十万行代码的模型,也可能忽略一个显而易见的现实约束。
Vibe Coding 与 Agentic Engineering 的区分是全文的组织性二元对立:前者抬高下限(任何人都能用提示词做出能跑的原型),后者守住上限(专业软件不能因为是 Agent 写的,就容忍安全漏洞、无人负责的代码或质量下滑)。Karpathy 在 MenuGen 里遇到的支付身份 bug——用邮箱在 Google 登录和 Stripe 支付之间做匹配,而不是用系统内部稳定的用户 ID——正是这种失败模式的具体案例:代码能跑、测试能过,但关于身份与资金归属的假设是错的。
结尾的「可以外包思考,但不能外包理解」被文章自己的分析加上了一个到期警告,而这一点并非访谈原文直接给出:品味和判断之所以暂时不可替代,仅仅是因为实验室还没有把审美和代码质量纳入 RL 训练目标。一旦这一点改变,整个论证的基础就会动摇——这也是为什么文章结尾列出三个值得追踪的具体信号(新领域的 RL 数据注入、Agent-first 基础设施是否收敛、下一代模型是否包含审美相关的 RL 目标),而不是把「人类不可替代」当作已经定论的结论。
FAQ常见问答
Is Vibe Coding the same thing Karpathy is describing now?现在说的这套是不是就是 Karpathy 之前提的 Vibe Coding?
No — Vibe Coding (Feb 2025) was looser, chatbot-style prompting. The December 2025 shift is coherent agentic workflows: continuous planning, coding, debugging, and self-correction against environment feedback, which is what makes full trust possible.
不是同一回事。2025 年 2 月提出的 Vibe Coding 更接近松散的问答式提示;2025 年 12 月的转折指的是连贯的智能体工作流——持续规划、写代码、调试、根据环境反馈自我修正,这才是让「完全信任」成立的前提。
Why can a model refactor 100k lines but fail a trivial common-sense question?为什么模型能重构十万行代码,却答不对洗车这种简单问题?
Capability isn't uniform intelligence — it tracks whichever tasks labs turned into verifiable RL training environments (code, math). Outside that covered distribution, even obvious real-world constraints get missed.
能力不是均匀的通用智能,而是取决于实验室把哪些任务变成了可验证的 RL 训练环境(代码、数学)。一旦落在这个覆盖范围之外,即便是显而易见的现实约束,模型也可能判断错误。
What's the actual difference between Vibe Coding and Agentic Engineering?Vibe Coding 和 Agentic Engineering 到底差在哪?
Vibe Coding lowers the barrier to making any software at all. Agentic Engineering is the discipline of supervising agent fleets so professional software keeps its existing security, quality, and accountability bar despite the speedup.
Vibe Coding 降低了「做出软件」这件事的门槛,让不会写代码的人也能做工具;Agentic Engineering 则是监督一组 Agent 的工程纪律,确保在提速的同时,专业软件原有的安全、质量、责任门槛不被牺牲。
Where should a startup look for opportunity in this framing?按这个框架,创业者该去哪里找机会?
Karpathy points to verifiable-but-uncovered domains: if you can construct diverse RL environments where a model can try, fail, and get rewarded, you can build an edge even where frontier labs haven't focused — he declines to name a specific domain on stage.
Karpathy 指向「可验证但尚未被覆盖」的领域:只要能构造多样的 RL 环境让模型尝试、失败、获得奖励,即便前沿实验室还没重点投入,创业者也能建立优势——但他在台上刻意没有点名具体领域。
Is the claim that human taste stays irreplaceable a stable conclusion?「人类品味不可替代」这个结论稳固吗?
The piece flags it as conditional, not settled — taste and judgment matter now only because labs haven't built RL objectives for aesthetics and code quality yet. If that changes, the argument's timeline shortens.
文章特意标注这是有条件的,而非定论——品味和判断现在重要,只是因为实验室还没有把审美和代码质量纳入 RL 训练目标。一旦这点改变,这个结论的有效期就会缩短。
In-depth Analysis · Pros & Cons深入解读 · 优缺点
This piece distills a 30-minute Sequoia interview with Andrej Karpathy into a structured argument: Vibe Coding was the entry point, but the real shift underway is Agentic Engineering — the discipline of directing fleets of capable-but-erratic AI agents without losing professional software's quality bar.
这篇文章把 Karpathy 在 Sequoia 30 分钟访谈的碎片,整理成一条完整论证链:Vibe Coding 只是入口,真正发生的转变是 Agentic Engineering——如何在使用一群能力强却会犯错的 Agent 提速的同时,守住专业软件原有的质量门槛。
- Concrete personal case studies具体的第一手案例MenuGen and the payment-identity bug are Karpathy's own projects, not hypotheticals — they ground abstract claims ("the app shouldn't exist," "jagged intelligence") in reproducible, checkable failure modes.MenuGen 和支付身份 bug 都是 Karpathy 亲自做的项目,而非假设案例——它们把「这个 App 不该存在」「锯齿状智能」这类抽象说法,落实成了可复现、可检验的具体失败模式。
- Names the causal mechanism, not just the trend指出因果机制,而不只是描述趋势Rather than saying models are "getting smarter," the piece traces capability spikes to a specific decision (labs injecting chess data pre-training), which makes the jagged-intelligence claim falsifiable and actionable rather than vague hype.文章没有停留在「模型越来越聪明」这种笼统说法,而是追溯到具体决策(实验室把国际象棋数据加进预训练),让「锯齿状智能」这个说法变得可证伪、可操作,而不是空洞的炒作话术。
- Interview redesign is a testable proposal面试改造是一个可检验的具体提案The "build a Twitter clone, then send 10 agent red teams at it" interview format is specific enough that a hiring team could actually implement and evaluate it, unlike vague calls for "AI-native hiring."「做一个 Twitter 仿盘,再派 10 个 Agent 红队攻击它」这个面试方案足够具体,招聘团队可以直接照做并评估效果,而不是「招聘要 AI-native 化」这种空泛口号。
- Self-aware about its own uncertainty对自身的不确定性有清醒意识Karpathy explicitly flags the neural-computer extrapolation as speculative ("path TBD") and declines to name a specific startup opportunity on stage, which the article preserves rather than smoothing into false confidence.Karpathy 明确标注「神经计算机」这个外推是猜测性的(「具体路径 TBD」),也拒绝在台上点名具体创业机会,文章保留了这种不确定性,而没有把它抹平成虚假的确定感。
- Single-source, unverified claims单一信源,主张未经外部验证Every claim — the December 2025 threshold, the chess-data anecdote, MenuGen's payment bug — comes from Karpathy's self-report in one interview, with no external benchmark, second source, or independent confirmation offered.所有主张——2025 年 12 月的转折、国际象棋数据轶事、MenuGen 的支付 bug——都来自 Karpathy 一人在一场访谈中的自述,文章没有提供外部基准、第二信源或独立验证。
- "Jagged intelligence" risks becoming unfalsifiable「锯齿状智能」有沦为万能解释的风险If any model failure can be retroactively explained as "outside the RL-covered distribution" and any success as "inside it," the framework risks explaining everything after the fact without predicting anything in advance.如果任何模型失败都能事后解释为「落在 RL 覆盖范围之外」,任何成功都能解释为「在范围之内」,这个框架就有沦为事后诸葛亮式万能解释、却缺乏事前预测力的风险。
- The taste-is-safe argument undercuts itself「品味暂时安全」的论证自我削弱The piece's own closing analysis admits human taste and judgment are irreplaceable only because labs haven't built aesthetic RL objectives yet — which means the article's central reassurance about human relevance has an unstated, possibly short, shelf life.文章自己在结尾也承认,人类品味和判断之所以暂时不可替代,仅仅是因为实验室还没把审美纳入 RL 训练目标——这意味着文章关于「人类仍然重要」的核心安慰,本身就带着一个未言明、可能很短的有效期。
- Extrapolations lean speculative外推部分偏向猜测性The "neural computer as host process, CPU as coprocessor" vision and the RL-covers-almost-everything claim (writing, design via LLM judges) are framed as intuition rather than evidence-backed prediction, and the piece doesn't always keep that distinction visible to a skimming reader.「神经网络作为主进程,CPU 变协处理器」的设想,以及「几乎一切最终都能被验证」(写作、设计靠 LLM 评审团)的说法,本质上是直觉而非有证据支撑的预测,文章在这一点上的区分对快速阅读的读者并不总是足够清晰。
Read this if you want a sharp, well-grounded articulation of why AI coding's next phase is about supervision discipline, not typing speed — Karpathy's own MenuGen failures make the argument concrete rather than aspirational. Caveat: treat the "human taste stays irreplaceable" conclusion as time-boxed, not settled — by his own logic, it holds only until labs decide to RL-train for aesthetics.
如果你想看一个扎实、有具体案例支撑的论证——为什么 AI 编程的下一阶段是监督纪律而非打字速度——这篇值得读,Karpathy 自己在 MenuGen 上踩的坑让论证落地而非空谈。但要注意:「人类品味不可替代」这个结论按他自己的逻辑本身是有时限的,只在实验室尚未把审美纳入 RL 训练目标之前成立,不该当作定论。
Original Text原文
The English text on this side is an AI translation provided for convenience; the authoritative version is the source in the other language.
Andrej Karpathy says he can't remember the last time he had to correct AI-generated code.
Karpathy helped found OpenAI, led the Autopilot vision team at Tesla, and last year coined the term "vibe coding" in a tweet — later chosen by Collins Dictionary as its 2025 Word of the Year.
In April 2026, Karpathy was interviewed by partner Stephanie Zhan at Sequoia Capital's AI Ascent event. The 30-minute conversation covered his firsthand experience of the seismic shift in programming paradigms, what Software 3.0 really means, why AI is extremely capable in some areas and absurdly weak in others, and what the more serious next step is after "vibe coding."
Original video: https://www.youtube.com/watch?v=96jN2OCOfLs
Key takeaways
December 2025 was a personal turning point for Karpathy: AI output went from "helpful but often needs patching" to "directly usable," and he entered a state of fully vibe-coding.
The key to Software 3.0 is not "writing code in natural language," but operating a new kind of information-processing interpreter — the LLM — through prompts and context.
The MenuGen case made Karpathy realize that some AI applications won't just get built faster — they'll be swallowed whole by the model's native capabilities.
LLM capability is highly uneven: it can refactor 100,000 lines of code and find zero-day vulnerabilities, yet it can get a common-sense question like "should I walk or drive to a car wash 50 meters away" wrong.
Vibe coding raises the floor for everyone building software; agentic engineering is about preserving the quality, safety, and accountability bar of professional software while using agents to speed things up.
Humans no longer need to memorize every API detail, but they must understand system structure, underlying mechanisms, and quality standards — otherwise they can't supervise agents.
Karpathy describes LLMs as "ghosts": not animal-like intelligence, but jagged entities shaped by human documentation, pretraining statistics, and reinforcement learning rewards.
As intelligence becomes cheap, the focus of education shouldn't be resisting outsourced thinking, but ensuring understanding still reaches the human brain.
December 2025: A Programmer's Surrender
Zhan asked: you said a few months ago that you've never felt more behind as a programmer than you do now. Is that excitement or unease?
Karpathy said it's both.
Over the past year he'd been using agentic coding tools like Cursor. Early on these tools were useful — they could generate some code blocks, but they often had errors that needed fixing. The real turning point came in December 2025. He happened to be on vacation then, with more time to tinker on side projects, and he clearly noticed that the code blocks generated by the latest models had started to just "work out of the box."
At first, he only let the model write a little. The results were good, so he let it write more. After that, he found he hadn't personally corrected the model's output in a long time, and his trust kept growing. Eventually he entered the state he later called vibe coding.
I can't remember the last time I needed to correct it. And then I just kept trusting the system more and more.
"Vibe coding" here shouldn't be forced into a literal translation. More precisely, it's a way of developing where you let AI write code by feel: the human continually expresses intent in natural language, and the model generates, modifies, and debugs the code, while the human no longer writes or reviews diffs line by line as before. When Karpathy coined the term on X in February 2025, he was describing an experience of "giving up direct control over the code itself and letting the model move forward by feel."
But in this interview, Karpathy's focus has moved beyond vibe coding itself. He stressed that many people's impression of AI is still stuck at "something like ChatGPT": you ask, it answers. Since late 2025, what's worth taking a fresh look at is the agentic coherent workflow — a more coherent kind of agentic workflow. The model doesn't just answer questions; it can plan continuously, write code, debug, execute, and keep correcting itself based on feedback from the environment.
A lot of the AI most people experienced last year was still something like ChatGPT. But you really need to take another look — and look at the versions from after December.
In the past, a programmer's speed mainly depended on how much code they could write, how many APIs they could remember, and how they debugged. Now, speed increasingly depends on whether they can correctly direct a group of powerful but fallible agents.
Software 3.0: Copy-Pasting a Piece of Text to an Agent — That's Programming Now
Zhan asked: you say the LLM is a new kind of computer, not just better software. If a team truly believed that, how would they build products differently?
Karpathy started from his own framework of software eras.
Software 1.0 is traditional software: humans write explicit code, and the computer executes it by rules.
Software 2.0 is the neural network era: humans no longer write all the rules directly, but instead design datasets, objective functions, and neural network architectures, obtaining model weights through training. Karpathy wrote about "Software 2.0" back in 2017, treating neural networks as a new way of developing software.
Software 3.0 is the large language model era. After being trained on large-scale tasks, the LLM becomes a programmable computer. You're no longer just writing functions in a code editor — you're organizing a "contextual program" for the model to execute, across prompts, the context window, files, tool calls, and the external environment.
The context window can be understood as all the information the model can see in a single call: instructions, conversation history, files, error logs, code snippets, images, and tool results. In Karpathy's words, this context window has become the "handle" humans use to operate the LLM interpreter.
He gave an example of installing OpenCL. The traditional approach is to write a shell script that adapts to various machines, platforms, and environments. As the number of target environments grows, the script keeps bloating until it becomes too complex to maintain. But in Software 3.0, the installation instructions themselves can just be a piece of text you copy to an agent. The agent reads your machine's environment, executes the steps, and debugs when it hits errors.
The question now becomes: which piece of text should you copy to your agent? That's the new programming paradigm.
The point of this isn't that "programmers will only need to write prompts from now on." What Karpathy means is that the boundary of a "program" has expanded. In the past, a program was a code file. Now, a program might be a set of instructions, a context window, a set of tool permissions, a testing environment, plus the vast statistical structure the model has already learned internally.
MenuGen: This App Shouldn't Exist
Karpathy then talked about his own project, MenuGen.
The idea behind the app is simple: when people get a menu at a restaurant, they usually can't see pictures of the dishes. Many dish names, especially in unfamiliar cuisines, tell you nothing just from the text. Karpathy wanted to build an app: take a photo of a menu, have the app recognize the dish names on it, generate a rough image for each dish, and then re-render the menu so users can see roughly what the dishes look like.
Building this app the old way required several layers of intermediate steps: upload the photo, run OCR to recognize the text, extract the dish names, call an image generator to produce dish images, re-lay out the results, and deploy to Vercel. Karpathy built the app this way using vibe coding.
Then he saw the Software 3.0 version.
The approach became: hand the menu photo directly to Gemini, and say, have Nano Banana overlay these dish images back onto the menu. What Nano Banana returns isn't structured data, nor a set of components, but a new image: the original menu is still there, but images of the corresponding dishes have already been rendered directly into it, in place.
[Note: Nano Banana is the name of Google Gemini's image generation and editing capability, supporting conversational generation and editing via text, images, or a combination of both.]
Karpathy thinks the MenuGen he originally built is redundant, because it was still stuck in the old paradigm.
My whole MenuGen is redundant. It's still stuck in the old paradigm. That app shouldn't exist.
This example is one of the most important business judgments in the entire interview.
Many AI application companies think they're building "faster software." For instance, a task that used to take 10 steps now gets compressed to 3 steps by the app. But in Software 3.0, the model's own input and output may directly cover the entire task, and the intermediate app's structure loses its necessity.
Karpathy went further, saying this shift isn't confined to code. Traditional code is good at handling structured data: tables, arrays, database fields, explicit rules. But LLMs can handle more general reorganization of information. Take his project LLM Knowledge Bases, for example: it recompiles articles, documents, and facts into a personal or organizational wiki. This isn't something traditional programs are naturally good at, because it requires the model to understand relationships between pieces of text, reorder information, and generate new knowledge structures.
What's more exciting isn't making existing things faster, but things that simply couldn't have existed before.
Neural Computers: The CPU Becomes a Co-processor
Zhan asked: extrapolating this progress to 2026, what's something most people haven't built yet today that will look obvious in hindsight?
Karpathy put forward a bolder but more uncertain vision: the future might see a fully "neural computer" emerge.
Today's computers are still centered on the CPU, the operating system, and traditional programs. Neural networks run on top of existing computers, like a virtualized capability module. But Karpathy imagines it could flip: the neural network becomes the host process — the main flow — while the CPU, traditional code, and tool calls become co-processors handling certain deterministic tasks.
The scenario he imagines: a device receives raw video or audio, the neural network understands the current scene, and then a diffusion model generates a unique UI for that moment. The interface users see is no longer assembled from fixed components, but generated in real time by the model based on context.
He quickly added a caveat to this claim: this kind of extrapolation looks strange, the specific path is still TBD, it won't happen overnight, and it will arrive piece by piece.
"The neural network becomes the main process" isn't an established product fact — it's more of a mental model he uses to convey a sense of direction.
The LLM That Can Refactor 100,000 Lines of Code but Makes You Walk to the Car Wash
Zhan asked: if AI makes verifiable domains easier to automate, which jobs will move faster than people expect? Which seemingly safe professions are actually highly verifiable?
Karpathy didn't list professions directly. He turned instead to explaining "verifiability."
His core judgment is this:
Traditional computers make it easy to automate things you can write into code; this generation of LLMs makes it easy to automate things you can verify.
The premise of traditional software automation is that humans can write the rules out precisely — things like tax calculations, sorting, database queries, order status transitions. As long as the rules are clear, you can write code for them.
The LLM's automation boundary is different. It doesn't necessarily require you to spell out all the rules, but it does need some way to judge whether an output is good or bad. Math problems can be verified against an answer. Code can be run against tests. Certain security issues can be judged by reproducing an exploit. Tasks like these can enter a reinforcement learning (RL) environment: the model attempts the task, the system gives reward or penalty, and the model optimizes its behavior across a huge number of samples.
So the model's rapid improvement in math, code, and adjacent domains isn't simply because "the model got smarter overall." Karpathy believes this is tied to how frontier labs train their models. Labs construct large numbers of verifiable tasks, feed them into training and RL pipelines, and the model develops peak capability in exactly those areas.
This also explains the LLM's "jagged intelligence": the capability curve isn't a smooth rise, but has peaks and cliffs. Some tasks are astonishingly strong; others are absurdly weak.
Karpathy said a better example now is the car-wash question: I need to wash my car at a car wash 50 meters away — should I drive or walk? The most advanced model might say walk, because it's close. That answer misses the whole point of the question: it's the car that needs washing, so the car has to get to the car wash.
A state-of-the-art model can refactor 100,000 lines of code and find zero-day vulnerabilities, yet tell me I should walk to wash my car 50 meters away.
[Note: a zero-day vulnerability refers to a security flaw that hasn't yet been publicly disclosed or patched.]
If a task falls within a capability loop covered by the model's training and RL, it may perform like an expert. If it falls outside the data distribution, the model may get it wrong even if humans find it trivially easy.
This places high demands on the user. You can't assume the model is strong at every kind of engineering judgment just because it's strong at code. Nor can you conclude it's useless overall just because it makes a mistake like the car-wash question. The more accurate approach is to explore its capability boundaries, and figure out which tasks sit at a "capability peak" and which sit near a "cliff."
Capability Isn't Natural Evolution — It Tracks Labs' Data Decisions
Karpathy mentioned a detail: chess ability improved enormously from GPT-3.5 to GPT-4. Many people assume this was a natural evolution of capability, but in fact it happened because someone at OpenAI decided to add a large amount of chess data into pretraining. Once the data entered the distribution, the capability followed.
This reinterprets a story that looks like "the model got smarter" into a story about "the lab made a product decision."
To some extent, we're entirely constrained by whatever data the labs fed the model. If your use case happens to fall within the "capability loop" covered by RL training, the model will carry you far; but once you step outside that data distribution, it becomes extremely difficult.
Practical implication: If your application scenario falls within the covered capability loop, it works out of the box; if it's outside that loop, you need to do your own fine-tuning — don't expect the LLM to just know it from the start.
Startup opportunity: find a verifiable domain not yet covered by RL
Zhan asked: if an entrepreneur wants to tackle a verifiable problem today, but the big labs have already accelerated the most obvious areas like math and code, what should the entrepreneur do?
Karpathy's answer didn't name a specific track, but it offered a method for finding opportunities.
Under the current technical paradigm, verifiability makes a problem "solvable." If you can construct a large, diverse set of reinforcement learning environments that let a model try, fail, and receive rewards, then even if the big labs haven't made this domain a priority, you may still gain an edge through your own fine-tuning and training.
At this point he seemed almost about to name a domain he considers valuable, but stopped.
I don't want to just give you the answer... sorry, I don't mean to be vague up here on stage.
The audience laughed.
This pause itself reveals his judgment: the opportunity isn't something vague like "build another AI agent," but finding a specific problem for which a reward environment can be constructed.
He added a more radical remark: almost everything might eventually become verifiable to some degree. Even seemingly subjective tasks like writing and design could be imagined as being evaluated by a group of LLM judges — a panel of models — forming some kind of approximate assessment.
This statement needs to be understood carefully. Karpathy isn't saying every task can be perfectly automatically verified. He's talking about "degree" and "difficulty." Math and code are relatively easy because the answers or tests are fairly clear-cut. Writing, aesthetics, and strategic judgment are much harder.
Vibe Coding raises the floor, Agentic Engineering protects the ceiling
Zhan asked: last year you proposed Vibe Coding. Today we've entered a more serious world, more like agent engineering. What's the difference between the two?
Karpathy's distinction was very clear.
What Vibe Coding raises is the floor. More people can build software with AI using natural language. People who can't code can build small tools, and people who can code can build side projects faster. The entry point for creating software has widened.
What Agentic Engineering protects is the ceiling. It deals with professional software: you can't introduce security vulnerabilities just because you used AI, you can't lower the quality bar just because the model writes fast, and you can't have no one accountable just because the code was generated by an agent.
Vibe Coding raises the floor for everyone's ability to make software; Agentic Engineering has to protect the quality bar that professional software has always had.
Agentic Engineering can be translated as "intelligent agent engineering." It's not a specific tool but an engineering discipline: how to design, coordinate, and supervise a group of AI agents so they can accelerate development without sacrificing quality, safety, or maintainability.
Karpathy said these agents are "spiky entities." They're highly capable, but they make mistakes, are unpredictable, and unstable. An engineer's job isn't to blindly trust them, but to place them into an appropriate process: have them generate proposals, write code, run tests, check each other, and make sure the system has boundaries, verification, and rollback.
Karpathy also raised an even stronger claim: the software industry used to love talking about the "10x engineer" — an engineer far more efficient than the average person. But in Agentic Engineering, the acceleration he's seeing may be far more than 10x.
10x is not the multiplier you're getting.
A truly skilled person, who can organize multiple agents, tools, tests, and context together, will see their output amplified far more dramatically.
AI-native engineers: not about acing coding puzzles, but about making large projects safe
Zhan asked: if you observed two people using AI coding tools, one average and one truly AI-native, what would the difference be?
Karpathy first said that AI-native engineers make full use of the available tools and invest in setting up their own workflows. Just as engineers used to spend time configuring Vim, VS Code, the command line, shortcuts, and their dev environment, now they need to spend time configuring Cursor, Claude Code, or similar tools so they genuinely fit how they work.
But he quickly turned the topic to hiring.
He believes many companies still haven't restructured their interview process. If they're still giving candidates a set of small puzzles and having them solve algorithm problems on the spot, that's still the old paradigm. It doesn't test whether someone can work effectively within Agentic Engineering.
A better test should be a large project. For example, have the candidate build a Twitter clone: it not only has to run, but has to be built well and securely. Then use multiple agents to attack the site, trying to break it, and see whether the system can hold up.
The interview should really work like this: give the candidate a massive project, like building a Twitter clone for agents, and require it to be absolutely secure. Then, I deploy 10 instances of Cursor as a "red team" and let them go all out attacking the website you built.
The core of this kind of evaluation isn't whether the candidate can hand-write a certain algorithm, but whether they can: turn a vague goal into a clear specification; direct agents to complete a large-scale implementation; identify security and architectural risks; set up tests and verification; maintain quality judgment across a large volume of model-generated code; and make the final system withstand external attacks and stress.
Agents can write code, but they'll still bind payments to the wrong email address
Zhan asked: as agents do more and more, which human skills become more valuable?
Karpathy's answer: taste, judgment, aesthetics, oversight, and specification design.
He compared today's agents to interns. This analogy is accurate, but shouldn't be over-anthropomorphized. Agents aren't really employees with human motivations — they're just increasingly capable at execution, while still making mistakes in places that seem obvious to humans.
Karpathy gave a real example from MenuGen. Users log in with their Google account, but purchase credits using a Stripe account. Both Google and Stripe have email addresses. When implementing the purchase logic, the agent tried to match the Stripe email to the Google email in order to attribute purchased credits to the corresponding user.
This sounds reasonable at first, but it's dangerous from an engineering standpoint. A person could easily log into Google with one email and pay with a different one. If the system links funds by email, purchase records could fail to be attributed correctly, funds could get mismatched, or accounts could get mixed up. The correct approach should be to use a stable, internal persistent user ID to bind user identity and payment records together.
Why would you use email addresses to cross-reference funds? They can be arbitrary — you can use different emails. This approach is just too strange.
This kind of problem has no syntax errors, the code might run, the tests might even pass, but the system design is wrong. The agent didn't truly understand the risks around identity, payment, and fund attribution.
So Karpathy says humans must be responsible for the spec, the specification. You have to tell the agent: all funds and user state must be bound to an internal unique user ID, not to an external email address. You have to be responsible for the top-level design, constraints, and judgment criteria. The agent can fill in implementation details, but it can't understand the system's boundaries for you.
He then gave a more technical example. These days he no longer memorizes many of the trivial API differences between PyTorch, NumPy, and pandas — things like whether it's keepdims or keepdim, dim or axis, or how reshape, permute, and transpose are each written. These details can be left to the agent, because the model's memory is excellent.
But he still stressed that humans must understand the underlying concepts. For example, what a tensor is, the relationship between view and storage, when something merely changes the view onto the same block of memory versus when it actually copies data. If you don't understand these underlying mechanisms, you might let the model write inefficient or even incorrect code.
This gives a very concrete answer to "what's worth learning": details can be outsourced, but understanding cannot. API names can be forgotten, but the conceptual structure cannot be lost.
The code the model writes runs, but sometimes it's "ugly"
Zhan followed up: will taste and judgment become less important as models improve?
Karpathy didn't rule it out entirely. He hopes models will improve, and sees no fundamental reason preventing them from getting better at taste, aesthetics, and simplicity. But he pointed out that, at least for now, these abilities haven't been well trained, possibly because they haven't been captured by a good enough RL reward environment.
When he looks at code generated by models, he sometimes feels like he's having a mild heart attack. The code runs, but it isn't necessarily good. It can be bloated, full of copy-paste, have awkward abstractions, be structurally fragile, and be hard to maintain.
Sometimes when I see the code it writes, I get a bit of a heart-attack feeling. It runs, but it's really gross.
He also mentioned the MicroGPT project. He wanted to simplify LLM training to the extreme, making the training process as small, clear, and understandable as possible. He kept asking the model to "simplify it further," but the model couldn't do it. It felt as difficult as "pulling teeth."
I kept telling the LLM to "simplify it more," and it just couldn't do it. You can feel that you're outside the RL loop. It's like pulling teeth.
Karpathy's explanation is that this task may fall outside the capability loop covered by the model's RL training. Models are good at generating common engineering patterns, but not good at extreme, restrained, elegant abstraction and compression.
We're not building animals: Karpathy says we're summoning "ghosts"
Zhan asked: you wrote an article about animals vs. ghosts, whose core idea is that we're not building animals, we're summoning ghosts. Why does this framework matter?
Karpathy said he wrote that article because he himself was trying to understand what these models actually are. If you have a better mental model of what a model is, you'll be better at using it.
The word "ghost" sounds mystical, but Karpathy's meaning isn't esoteric. He's contrasting two sources of intelligence.
Animal intelligence comes from evolution, embodiment, interaction with the environment, intrinsic motivation, curiosity, enjoyment, and continual learning. Animals act in the world, are shaped by consequences, and keep adapting throughout their lives.
LLMs aren't like that. Today's frontier LLMs start from large-scale pretraining: the model learns statistical structure from a massive corpus of human documents. Then reinforcement learning, preference data, tool use, and other post-training processes are layered on top. They're not animal-like intelligences, but simulated entities shaped by human documents, statistical patterns, and reward functions.
In the interview, he distilled this metaphor into a very plain usage principle: don't treat the LLM like an animal. Yelling at it won't make it work harder out of fear. Encouraging it isn't sparking any intrinsic motivation either. The model has no animal-like emotions. Its behavior comes from statistical simulation, context, tools, training data, and reward mechanisms.
If you yell at it, it won't work any better or worse because of that — there's no effect at all.
Karpathy also admits the "ghost" framework has a somewhat philosophical side. He didn't claim it directly yields five concrete optimization tips. It's more like a reminder to prevent misuse: don't ask broadly "is the AI smart or not," ask which training distributions it's strong in, which reward signals shaped it, and on which tasks it might hit jagged cliffs.
Agent-first infrastructure: build and deploy MenuGen with one sentence
Zhan asked: when agents don't just chat, but hold permissions, have local context, and can act on a person's behalf, what will the world look like?
Karpathy said almost everything will need to be rewritten. Today's tools, documentation, services, and setup flows are still mostly designed for humans.
For example, a framework's documentation will tell you: go to some URL, click some setting, copy some key, open some menu, configure some DNS. Karpathy's reaction is: why is it still telling me what to do? I don't want to do these things. What I want to know is which piece of this can be copied straight to my agent so it can go do it itself.
Why is someone still telling me what to do? I don't want to do any of it. "What's the thing I can copy-paste to give to the agent?"
This isn't laziness, it's a paradigm shift. The goal of agent-first infrastructure is to break the world down into inputs an agent can understand and action interfaces an agent can safely call.
In software infrastructure, this means documentation, APIs, permissions, logs, deployment, configuration, billing, and rollback all need to become more agent-friendly. Instead of having the agent simulate a human clicking through web pages, let the agent directly understand state, call actions, and receive feedback.
Karpathy returned to MenuGen. He said the most troublesome part of building MenuGen wasn't actually writing the code, but the deployment: deploying on Vercel, connecting various services, going through different settings pages, configuring DNS, and stringing everything together.
He hopes the future standard test will be: give an LLM the sentence "Build MenuGen," and it can not only write the code, but also complete the deployment, get it live on the internet, configure the necessary dependent services — all without a human having to click through menus one by one.
Further out, he imagines that every individual and every organization might have its own Agent representation. In the future, scheduling meetings, handling details, and coordinating logistics might become "my Agent talking to your Agent."
When intelligence gets cheap, understanding becomes the most expensive thing
Zhan's final question: when intelligence becomes cheap, what is still worth learning deeply?
Karpathy quoted a line:
You can outsource your thinking, but you can't outsource your understanding.
This line is easy to turn into a motivational slogan, but Karpathy's explanation was concrete.
He is still part of the system. Information has to get into his head. He feels he's becoming the bottleneck: he needs to know what's actually being built, why it's worth building, and how to direct his Agent. You can let the model run through many reasoning steps, but if the person doesn't understand, they can't judge which path is right, can't write good specs, and can't catch the Agent's mistakes in identity binding, system structure, or code quality.
I feel like I'm becoming the bottleneck: I need to know what we're actually building, why it's worth building, and how to direct my Agent.
This is also why he's interested in LLM knowledge bases. He likes re-projecting articles, materials, and facts into wikis, because organizing information in different ways can help him gain insight. To him, this isn't about letting AI replace understanding—it's about using AI to augment understanding.
This connects to the engineering examples mentioned earlier:
An Agent can remember API details, but a person needs to understand tensors, views, storage, and memory efficiency;
An Agent can write payment logic, but a person needs to understand user identity and ownership of funds;
An Agent can generate large amounts of code, but a person needs to judge whether the abstraction is bloated or the structure is fragile;
An Agent can help you think through many options, but a person needs to know whether the goal is worth pursuing.
So once intelligence becomes cheap, learning doesn't become unimportant—rather, the center of gravity of learning shifts. Less time goes into rote memorization and low-level execution, and more time goes into system understanding, problem definition, quality judgment, causal reasoning, and domain intuition.
Q&A Quick Look
Q: What happened in December 2025? A: Code generated by the latest models no longer needs modification, and reliability held up even in sustained projects.
Q: How is Software 3.0 different from before? A: Before, code processed structured data; now you can process arbitrary information. Things that couldn't be done before can now be done. This isn't acceleration—it's a new set of possibilities.
Q: Why do state-of-the-art AI models make elementary mistakes on simple tasks? A: The capability distribution depends on which domains RL training covered and the labs' data choices. Capability in verifiable domains has surged, while other domains may remain weak.
Q: What's the difference between Vibe Coding and Agentic Engineering? A: Vibe Coding raises the floor for everyone; Agentic Engineering uses Agents to accelerate while maintaining professional standards.
Q: When will human taste and judgment stop mattering? A: Possibly—but only if labs incorporate aesthetic rewards into RL training objectives. Right now, Agent-written code often "works but looks awful."
[Finally]
In this interview, there are a few tensions in Karpathy's judgments worth noting.
First, he says on one hand that the code Agents produce is ugly enough to give him a heart attack, and on the other hand that he himself has stopped editing it. "Trust hasn't solved the taste problem"—working code and good code aren't the same thing. But this state of "using it even though it's ugly" may be closer to the real state of Vibe Coding than any hype.
Second, he hints there are "underrated RL opportunities" in certain domains but is unwilling to name them publicly. For someone who doesn't shy away from posting blunt tweets, deliberately avoiding the topic is itself a signal: the window hasn't closed yet. Notably, his company Eureka Labs works on AI education—and education happens to be a domain where output can be evaluated and standardized for assessment.
Third, he himself downgrades the "animal vs. ghost" framework, then closes out the whole conversation with "you can outsource thinking but not understanding." Read together, his judgment is: what's truly scarce isn't any particular skill, but the ability to judge "what we should actually build, and why it's worth doing." If the premise holds that "almost every domain can eventually be made verifiable," then the bottleneck ultimately isn't on the execution side, but on the goal-setting side.
But there's an implicit question mark over time here. Karpathy himself admits that taste and judgment are only temporarily irreplaceable because "the labs haven't done it yet." If that's true, then the supposedly irreplaceable human part isn't irreplaceable because humans are unique, but because the training methods aren't there yet. That puts a question mark over how long "you can outsource thinking but not understanding" will remain valid.
Three concrete signals worth watching over the next 6-12 months:
Which domains beyond coding/math the frontier labs inject RL data into—capability will suddenly emerge there
Whether agent-first infrastructure (deployment, auth, payments) sees its first wave of convergence—if the pain of deploying something like MenuGen persists, the road to an "automated society" is much longer
Whether the next generation of model updates includes RL objectives related to aesthetics and code quality
Original video: https://www.youtube.com/watch?v=96jN2OCOfLs
Andrej Karpathy 说,他已经记不清上次修改 AI 生成的代码是什么时候了。
Karpathy 参与创建了 OpenAI,在 Tesla 领导过 Autopilot 视觉团队,去年一条推文发明了“凭感觉编程”(Vibe Coding)这个词,后来被 Collins 词典选为 2025 年度词汇。
2026 年 4 月,Karpathy 在 Sequoia Capital 的 AI Ascent 现场接受合伙人 Stephanie Zhan 的访谈。这场 30 分钟的对话覆盖了他对编程范式剧变的亲身感受、Software 3.0 的实质、AI 为什么在某些地方极强而在另一些地方离谱地弱,以及“凭感觉编程”之后更严肃的下一步是什么。
原始视频:https://www.youtube.com/watch?v=96jN2OCOfLs
要点速览
2025 年 12 月是 Karpathy 个人的转折点:AI 输出从“有帮助但常要修补”变成“直接可用”,他进入完全凭感觉编程的状态。
Software 3.0 的关键不是“用自然语言写代码”,而是通过
prompt和context操作 LLM 这个新的信息处理解释器。MenuGen 案例让 Karpathy 意识到,一些 AI 应用不是会被做得更快,而是会被模型原生能力直接吞掉。
LLM 的能力高度不均匀:它可以重构 10 万行代码、找零日漏洞,却可能在“去 50 米外洗车该走路还是开车”这种常识题上犯错。
Vibe Coding 抬高所有人做软件的下限;Agentic Engineering 则是在使用 Agent 提速时,保住专业软件的质量、安全和责任门槛。
人类不必再记住每个 API 细节,但必须理解系统结构、底层机制和质量标准,否则无法监督 Agent。
Karpathy 用“幽灵”形容 LLM:它不是动物式智能,而是由人类文档、预训练统计和强化学习奖励塑造出的锯齿状实体。
智能变便宜后,教育的重点不是抵制外包思考,而是确保理解仍然进入人的大脑。
【1】2025 年 12 月:一个程序员的投降
Zhan 问:你几个月前说,自己从未像现在这样觉得作为程序员落后。这是兴奋还是不安?
Karpathy 说两者都有。
过去一年他一直在用 Cursor 等智能体编码工具。早期这些工具有用,可以生成一些代码块,但经常出错需要修改。真正的转折出现在 2025 年 12 月。那段时间他正好休假,有更多时间折腾 side project,明显感觉到最新模型生成的代码块开始“直接能用”。
一开始,他只让模型写一点。结果不错,就继续让它写更多。再往后,他发现自己已经很久没有亲自纠正模型输出了,信任感不断增加。最后他进入了自己后来称为 Vibe Coding 的状态。
我记不得上一次我需要纠正它是什么时候了。然后我就越来越信任这个系统。
这里的 Vibe Coding,不适合硬译成“氛围编程”。更准确地说,它是一种“凭感觉让 AI 写代码”的开发方式:人用自然语言持续提出意图,模型生成、修改、调试代码,人不再像过去那样逐行写、逐行读 diff。Karpathy 2025 年 2 月在 X 上提出这个词时,描述的是一种“放弃对代码本身的直接控制、顺着感觉让模型往前走”的开发体验。
但这场访谈里,Karpathy 的重点已经不只是 Vibe Coding。他强调,很多人对 AI 的印象还停留在“一个类似 ChatGPT 的东西”上:你问一句,它答一句。到 2025 年底以后,值得重新看的是 Agentic coherent workflow——一种更连贯的智能体工作流。模型不只是回答问题,而是能连续规划、写代码、调试、执行、根据环境反馈继续修正。
很多人去年体验到的 AI,还是一个类似 ChatGPT 的东西。但你真的必须重新看一眼,而且要看 12 月之后的版本。
过去程序员的速度主要取决于他能写多少代码、记住多少 API、怎样调试。现在,速度越来越取决于他能否正确地指挥一组强大但会犯错的 Agent。
【2】Software 3.0:给 Agent 复制粘贴一段文字,这就是编程
Zhan 问:你说 LLM 是一种新计算机,不只是更好的软件。如果一个团队真的相信这一点,它会怎样不同地构建产品?
Karpathy 从自己那套软件分期讲起。
Software 1.0 是传统软件:人写显式代码,计算机按规则执行。
Software 2.0 是神经网络时代:人不再直接写所有规则,而是设计数据集、目标函数和神经网络架构,通过训练得到模型权重。Karpathy 早在 2017 年就写过《Software 2.0》,把神经网络视为一种新的软件开发方式。
Software 3.0 则是大语言模型时代。LLM 经过大规模任务训练之后,变成一种可编程的计算机。你不再只是在代码编辑器里写函数,而是在 prompt、context window、文件、工具调用和外部环境之间,组织一段给模型执行的“上下文程序”。
context window 可以理解为模型一次调用中能看到的全部信息:指令、历史对话、文件、错误日志、代码片段、图片、工具返回结果。Karpathy 的说法是,这个上下文窗口成了人操纵 LLM 解释器的“把手”。
他举了一个安装 OpenCL 的例子。传统做法是写一个 shell script,让它适配各种机器、平台和环境。随着目标环境变多,脚本会不断膨胀,最后复杂到很难维护。但在 Software 3.0 里,安装说明本身可能就是一段可以复制给 Agent 的文本。Agent 会读取你的机器环境,执行步骤,遇到错误再调试。
现在的问题变成:哪一段文字应该复制给你的 Agent?这就是新的编程范式。
这句话的重点不是“程序员以后只需要写提示词”。Karpathy 要表达的是,程序边界扩大了。过去的程序是代码文件。现在,程序可能是一段说明、一个上下文窗口、一组工具权限、一个测试环境,外加模型内部已经学到的大量统计结构。
【3】MenuGen:这个 App 不应该存在
Karpathy 接着讲了自己的 MenuGen。
这个 App 的想法很简单:人在餐厅拿到菜单时,通常看不到菜品图片。很多菜名,尤其是陌生菜系里的菜名,光看文字不知道是什么。Karpathy 想做一个应用:拍一张菜单照片,App 识别菜单上的菜名,再为每个菜品生成一张大致图片,最后重新渲染菜单,让用户看到“这些菜大概长什么样”。
用旧范式做这个 App,需要好几层中间步骤:上传照片,OCR 识别文字,抽出菜名,调用图像生成器生成菜品图,再把结果重新排版,部署到 Vercel 上。Karpathy 用 Vibe Coding 把这个 App 做了出来。
然后他看到了 Software 3.0 版本。
做法变成:直接把菜单照片交给 Gemini,然后说,让 Nano Banana 把这些菜品图叠加回菜单上。Nano Banana 返回的不是结构化数据,也不是一组组件,而是一张新的图片:原菜单仍在,但对应菜品的位置已经直接渲染进了图片。
【注:Nano Banana 是 Google Gemini 的图像生成和编辑能力名称,支持用文本、图像或两者结合进行对话式生成与编辑。】
Karpathy 认为他原来写的 MenuGen 是多余的,因为它还停留在旧范式里。
我的整个 MenuGen 都是多余的。它还停留在旧范式里。那个 App 不应该存在。
这个例子是整场访谈里最关键的商业判断之一。
很多 AI 应用公司以为自己在做“更快的软件”。比如过去一个任务要 10 个步骤,现在 App 帮你压成 3 个步骤。但在 Software 3.0 里,模型本身的输入输出可能直接覆盖这个任务,中间 App 的结构就失去必要性。
Karpathy 进一步说,这种变化不只发生在代码里。传统代码擅长处理结构化数据:表格、数组、数据库字段、明确规则。但 LLM 可以处理更一般的信息重组。比如他的 LLM Knowledge Bases 项目:把文章、文档和事实重新编译成个人或组织 wiki。这不是传统程序天然擅长的东西,因为它要求模型理解文本之间的关系、重新排序信息、生成新的知识结构。
更令人兴奋的不是把已有东西做得更快,而是那些以前根本不可能存在的东西。
【4】神经计算机:CPU 变成协处理器
Zhan 问:把这种进展外推到 2026 年,什么是今天大部分人还没建出来、回头看会觉得理所当然的东西?
Karpathy 提出了一个更大胆但也更不确定的设想:未来可能出现一种完全的“神经计算机”。
今天的计算机仍然以 CPU、操作系统、传统程序为中心。神经网络运行在现有计算机之上,像是一个被虚拟化出来的能力模块。但 Karpathy 设想,未来有可能反过来:神经网络成为 host process,也就是主流程;CPU、传统代码和工具调用变成协处理器,负责一些确定性任务。
他举的想象场景是:一个设备接收原始视频或音频,神经网络理解当前场景,再用扩散模型为这一刻生成一个独特的 UI。用户看到的界面不再是固定组件拼出来的,而是由模型根据上下文实时生成。
他也很快给这个判断加了限制:这种外推看起来很怪,具体路径仍然 TBD,不会一夜之间发生,而会一块一块地到来。
“神经网络成为主进程”不是一个已经发生的产品事实,更像是他用来解释方向感的心智模型。
【5】LLM 能重构 10 万行代码,却让你走路去洗车
Zhan 问:如果 AI 更容易自动化可验证领域,哪些工作会比人们想象中更快移动?哪些看起来安全的职业,其实高度可验证?
Karpathy 没有直接列职业。他转向解释“可验证性”。
他的核心判断是:
传统计算机容易自动化你能写进代码的东西;这一代 LLM 容易自动化你能验证的东西。
传统软件自动化的前提,是人能把规则精确写出来。比如税率计算、排序、数据库查询、订单状态流转。只要规则清楚,就能写代码。
LLM 的自动化边界不同。它不一定需要你把规则全部写出来,但它需要某种方式判断输出好坏。数学题可以验证答案。代码可以跑测试。某些安全问题可以通过漏洞复现判断。这样的任务能进入强化学习(RL)环境:模型尝试解题,系统给奖励或惩罚,模型在大量样本中优化行为。
所以,模型在数学、代码和相邻领域能力提升很快,并不只是因为“模型整体更聪明了”。Karpathy 认为,这和前沿实验室如何训练模型有关。实验室构造了大量可验证任务,把它们放进训练和强化学习流程里,模型就在这些地方形成高峰能力。
这也解释了 LLM 的“锯齿状智能”(jagged intelligence):能力曲线不是平滑上升,而是有高峰和断崖。有些任务强得惊人,有些任务弱得荒诞。
Karpathy 说,现在更好的例子是洗车题:我要去 50 米外的洗车店洗车,应该开车还是走路?最先进的模型可能会说,走路,因为很近。这个回答忽略了问题的关键:你要洗的是车,所以车必须到洗车店。
一个最先进的模型可以重构 10 万行代码、找到零日漏洞,却告诉我应该走路去洗 50 米外的车。
【注:零日漏洞指尚未公开或尚未修补的安全漏洞。】
如果一个任务落在模型训练和 RL 覆盖过的能力回路里,它可能表现得像专家。如果落在数据分布外,即使人类觉得很简单,它也可能出错。
这对使用者的要求很高。你不能因为模型在代码上很强,就默认它在所有工程判断上都强。你也不能因为它犯了洗车题这种错误,就断定它整体没用。更准确的做法是:探索它的能力边界,找出哪些任务在“能力高峰”里,哪些任务在“断崖”旁边。
【6】能力不是自然进化,和实验室的数据决策相关
Karpathy 提到一个细节:从 GPT-3.5 到 GPT-4,国际象棋能力提升非常大。很多人以为这是能力的自然进化,但实际上是因为有人在 OpenAI 决定把大量国际象棋数据加进了预训练。数据进了分布,能力就跟着上去了。
这把一个看起来“模型变强”的故事,重新解释成了一个“实验室在做产品决策”的故事。
某种程度上,我们完全受制于实验室给模型喂了什么数据。如果你的场景刚好落在 RL 训练覆盖的“能力回路”里,模型就会带你起飞;但一旦超出了这个数据分布,它就会觉得极其吃力。
实操含义:如果你的应用场景在覆盖的能力回路里,开箱即用;如果在外面,你需要自己做微调,不要指望 LLM 一上来就会。
【7】创业机会:找一个还没被 RL 覆盖的可验证领域
Zhan 问:如果创业者今天想解决一个可验证的问题,但大模型实验室已经在数学、代码等最明显领域加速了,创业者该怎么办?
Karpathy 的回答没有给出具体赛道,但给出了一种找机会的方法。
在当前技术范式下,可验证性让一个问题变得“可解”。如果你能构造大量、多样的强化学习环境,能让模型尝试、失败、获得奖励,那么即便大实验室没有把这个领域作为重点,你也可能通过自己的微调和训练获得优势。
他说到这里时,几乎要举一个自己认为很有价值的领域,但停住了。
我不想直接给出答案……抱歉,我不是有意在台上发含糊推文的。
台下笑了。
这个停顿本身也说明了他的判断:机会不是“再做一个 AI Agent”这样泛泛的方向,而是找到某个可构造奖励环境的具体问题。
他还补了一句更激进的话:几乎所有事情,最终都可能在某种程度上变得可验证。写作、设计这类看似主观的任务,也可以想象用一组 LLM judges,也就是模型评审团,形成某种近似评价。
这句话需要谨慎理解。Karpathy 并不是说所有任务都能被完美自动验证。他说的是“程度”和“难易”。数学和代码比较容易,因为答案或测试相对明确。写作、审美、战略判断则要困难得多。
【8】Vibe Coding 抬高下限,Agentic Engineering 保住上限
Zhan 问:去年你提出 Vibe Coding。今天我们进入了一个更严肃的世界,更像 Agent engineering。二者的区别是什么?
Karpathy 的区分非常清楚。
Vibe Coding 抬高的是下限。更多人可以用自然语言和 AI 做出软件。不会写代码的人可以做小工具,会写代码的人可以更快做 side project。软件创造的入口变宽了。
Agentic Engineering 保住的是上限。它面对的是专业软件:不能因为用了 AI 就引入安全漏洞,不能因为模型写得快就降低质量门槛,不能因为代码是 Agent 生成的就没人负责。
Vibe Coding 抬高的是所有人能做软件的下限;Agentic Engineering 要保住的是专业软件过去已有的质量门槛。
Agentic Engineering 可以译作“智能体工程”。它不是一个具体工具,而是一种工程纪律:如何设计、协调、监督一组 AI Agent,让它们在不牺牲质量、安全、可维护性的情况下加速开发。
Karpathy 说,这些 Agent 是“spiky entities”——有尖刺的实体。它们能力很强,但会犯错,有随机性,不稳定。工程师的工作不是盲目信任它们,而是把它们放进合适的流程里:让它们生成方案、写代码、跑测试、互相检查,让系统有边界、有验证、有回滚。
Karpathy 还提到一个更强的判断:过去软件行业喜欢说“10x engineer”,也就是效率远超普通人的工程师。但在 Agentic Engineering 里,他看到的加速幅度可能远不止 10 倍。
10x 不是你获得的加速倍数。
真正熟练的人,能把多个 Agent、工具、测试和上下文组织起来,产出速度会被放大得更厉害。
【9】AI-native 工程师:不是会刷题,而是能把大项目做安全
Zhan 问:如果观察两个使用 AI coding 工具的人,一个普通,一个真正 AI-native,区别会是什么?
Karpathy 先说,AI-native 工程师会充分利用可用工具,并投资自己的工作流设置。就像过去工程师会花时间配置 Vim、VS Code、命令行、快捷键和开发环境,现在也要花时间配置 Cursor、Claude Code 或类似工具,让它们真正适合自己的工作方式。
但他很快把话题转到招聘。
他认为,很多公司还没有重构面试流程。如果仍然给候选人一组小 puzzle,让他们现场解算法题,这还是旧范式。它测不出一个人是否会在 Agentic Engineering 里高效工作。
更好的测试应该是大项目。比如让候选人做一个 Twitter clone:不仅要能跑,还要做得好、做得安全。然后再用多个 Agent 去攻击这个网站,尝试破坏它,看看系统能否经得住。
面试本该是这样的:甩给候选人一个极大的项目,比如做个给 Agent 用的 Twitter 仿盘,要求做得绝对安全。然后,我挂上 10 个 Cursor 当作“红队”,放开手脚去攻击你做出来的这个网站。
这套评估方式的核心,不是看候选人能不能手写某个算法,而是看他能不能:把模糊目标变成清晰规格;指挥 Agent 完成大规模实现;识别安全和架构风险;设置测试与验证;在模型生成的大量代码里保持质量判断;让最终系统经得起外部攻击和压力。
【10】Agent 能写代码,但还会把付款绑到错误邮箱上
Zhan 问:Agent 做得越多,什么人类技能会变得更有价值?
Karpathy 的答案是:品味、判断、审美、监督,以及规格设计。
他把当前 Agent 比作实习生。这个比喻很准确,但不能过度拟人化。Agent 不是真的有人类动机的员工,它只是执行能力越来越强,同时会在一些人类觉得显而易见的地方犯错。
Karpathy 举了 MenuGen 的一个实际问题。用户用 Google 账号登录,但购买 credits 时使用 Stripe 账号。Google 和 Stripe 都有邮箱地址。Agent 在实现购买逻辑时,试图用 Stripe 邮箱去匹配 Google 邮箱,把购买的 credits 归到对应用户身上。
这听起来好像合理,但在工程上是危险的。一个人完全可能用一个邮箱登录 Google,用另一个邮箱付款。如果系统用邮箱关联资金,就可能出现购买记录无法归属、资金错配或账户混乱。正确做法应该是使用系统内部稳定的 persistent user ID 来绑定用户身份和支付记录。
你为什么要用邮箱地址来交叉关联资金?它们可以是任意的,你可以用不同的邮箱。这种做法太奇怪了。
这类问题没有语法错误,代码可能能跑,测试可能还过,但系统设计是错的。Agent 没有真正理解身份、支付和资金归属的风险。
所以 Karpathy 说,人必须负责 spec,也就是规格。你要告诉 Agent:所有资金和用户状态必须绑定到内部唯一用户 ID,而不是绑定到外部邮箱。你要负责顶层设计、约束条件和判断标准。Agent 可以填补实现细节,但不能替你理解系统边界。
他接着举了一个更技术的例子。现在他已经不再记 PyTorch、NumPy、pandas 之间很多细碎 API 差异,比如 keepdims 还是 keepdim,dim 还是 axis,reshape、permute、transpose 分别怎么写。这些细节可以交给 Agent,因为模型记忆很好。
但他仍然强调,人必须理解底层概念。比如张量(tensor)是什么,view 和 storage 的关系是什么,什么时候只是改变同一块内存的视图,什么时候会复制数据。如果不懂这些底层机制,就可能让模型写出低效甚至错误的代码。
这给“什么值得学”提供了一个非常具体的答案:细节可以外包,理解不能外包。API 名称可以忘,但概念结构不能丢。
【11】模型写出的代码能跑,但有时“很丑”
Zhan 追问:taste 和 judgment 会不会随着模型进步而越来越不重要?
Karpathy 没有把话说死。他希望模型会进步,也认为没有什么根本原因阻止它们在品味、审美和简洁性上变好。但他指出,至少现在,这些能力还没有被很好地训练出来,可能因为它们没有进入足够好的 RL 奖励环境。
他看模型生成的代码时,有时会“心脏病发作”。代码能跑,但不一定好。它可能很臃肿,有很多复制粘贴,有别扭的抽象,结构脆弱,维护起来很难。
有时我看到它写出来的代码,会有一点心脏病发作的感觉。它能跑,但真的很恶心。
他还提到 MicroGPT 项目。他想把 LLM training 简化到极致,让训练过程尽可能小、清晰、可理解。他不断要求模型“再简化一点”,但模型做不到。那种感觉像“拔牙”一样困难。
我不断地让 LLM“再简化一点”,它就是做不到。你能感觉到你在 RL 回路之外。就像在拔牙。
Karpathy 的解释是,这个任务可能走出了模型被 RL 覆盖的能力回路。模型擅长生成常见工程形态,却不擅长极简、克制、优雅的抽象压缩。
【12】我们不是在造动物:Karpathy 说我们召唤的是“幽灵”
Zhan 问:你写过一篇关于 animals vs ghosts 的文章,核心意思是我们不是在造动物,而是在召唤幽灵。这个框架为什么重要?
Karpathy 说,他写这篇文章,是因为自己也在试图理解这些模型到底是什么。如果你对模型是什么有一个更好的心智模型,你就会更擅长使用它。
“幽灵”这个词听起来神秘,但 Karpathy 的意思并不玄学。他是在对比两种智能来源。
动物智能来自进化、身体、环境互动、内在动机、好奇心、乐趣、持续学习。动物会在世界中行动,被后果塑造,会在生命过程中不断适应。
LLM 不是这样。今天的前沿 LLM,首先来自大规模预训练:模型在海量人类文档上学习统计结构。然后再叠加强化学习、偏好数据、工具调用等后训练过程。它们不是动物式智能,而是由人类文档、统计模式和奖励函数塑造出的模拟实体。
在访谈里,他把这个比喻落到一个很朴素的使用原则上:不要把 LLM 当动物。你对它大喊大叫,不会让它因为害怕而更努力。你鼓励它,也不是在激发它的内在动机。模型没有动物式情绪。它的行为来自统计模拟、上下文、工具、训练数据和奖励机制。
如果你对它大吼,它不会因此工作得更好或更差,也没有任何影响。
Karpathy 也承认,“幽灵”框架有哲学化的一面。他没有说它能直接产出五条系统优化建议。它更像一种防止误用的提醒:不要笼统地问“AI 聪不聪明”,要问它在哪些训练分布里强,哪些奖励信号塑造了它,在哪些任务上可能出现锯齿状断崖。
【13】Agent-first 基础设施:一句话构建并部署 MenuGen
Zhan 问:当 Agent 不只聊天,而是拥有权限、本地上下文,并能代表人采取行动时,世界会变成什么样?
Karpathy 说,几乎一切都要重写。今天的工具、文档、服务和设置流程,仍然主要是为人设计的。
比如一个框架的文档会告诉你:去某个 URL,点击某个设置,复制某个 key,打开某个菜单,配置某个 DNS。Karpathy 的反应是:为什么还在告诉我该怎么做?我不想做这些事。我想知道的是,哪一段东西可以复制给我的 Agent,让它自己去做。
为什么还有人在告诉我该做什么?我什么都不想做。“给我复制粘贴给 Agent 的东西是什么?”
这不是懒,而是范式变化。Agent-first infrastructure 的目标,是把世界拆成 Agent 能读懂的输入,以及 Agent 能安全调用的动作接口。
在软件基础设施里,这意味着文档、API、权限、日志、部署、配置、账单、回滚,都要变得更适合 Agent 使用。不是让 Agent 模拟人去点网页,而是让 Agent 直接理解状态、调用动作、收到反馈。
Karpathy 又回到 MenuGen。他说,做 MenuGen 最麻烦的部分其实不是写代码,而是部署:在 Vercel 上部署,连接各种服务,进入不同设置页面,配置 DNS,把所有东西串起来。
他希望未来的测试标准是:给 LLM 一句 Build MenuGen,它不仅能写代码,还能完成部署,上线到互联网,配置好依赖服务,而且整个过程不需要人去一个个菜单里操作。
更远一点,他设想每个人、每个组织都可能有自己的 Agent representation。以后安排会议、处理细节、协调事项,可能变成“我的 Agent 和你的 Agent 去谈”。
【14】智能变便宜后,最贵的是理解
Zhan 最后问:当智能变得便宜,什么仍然值得深入学习?
Karpathy 引用了一句话:
你可以外包你的思考,但不能外包你的理解。
这句话容易被写成励志格言,但 Karpathy 的解释很具体。
他仍然是系统的一部分。信息必须进入他的脑子里。他觉得自己正在变成瓶颈:要知道到底在建什么,为什么值得做,怎样指导自己的 Agent。思考步骤可以让模型跑很多遍,但如果人没有理解,就无法判断哪条路线是对的,无法写出好的规格,也无法发现 Agent 在身份绑定、系统结构、代码质量上的错误。
我感觉自己正在变成瓶颈:我要知道我们到底在建什么,为什么值得做,以及怎样指导我的 Agent。
这也是他对 LLM knowledge bases 感兴趣的原因。他喜欢把文章、资料、事实重新投影成 wiki,因为不同的信息组织方式能帮助他获得洞见。对他来说,这不是让 AI 代替理解,而是用 AI 增强理解。
这一点和前面的工程例子连在一起:
- Agent 可以记 API 细节,但人要理解
tensor、view、storage和内存效率; - Agent 可以写支付逻辑,但人要理解用户身份和资金归属;
- Agent 可以生成大量代码,但人要判断抽象是否臃肿、结构是否脆弱;
- Agent 可以帮你思考很多方案,但人要知道目标是否值得做。
所以,智能变便宜之后,学习不是不重要了,而是学习的重心变了。更少时间花在机械记忆和低层执行上,更多时间花在系统理解、问题定义、质量判断、因果关系和领域直觉上。
Q&A 速览
问:2025 年 12 月发生了什么? 答:最新模型生成的代码不需要修改了,可靠性在持续的项目中也保持住了。
问:Software 3.0 和以前有什么不同? 答:以前的代码处理结构化数据,现在你可以处理任意信息。以前做不了的东西现在可以了。这不是加速,是新的可能性。
问:为什么最先进的 AI 模型在简单任务上犯低级错误? 答:能力分布取决于 RL 训练覆盖的领域和实验室的数据选择。可验证的领域能力飙升,其余领域可能很弱。
问:Vibe Coding 和 Agentic Engineering 的区别? 答:Vibe Coding 是提升所有人的下限,Agentic Engineering 是保持专业标准的前提下利用 Agent 加速。
问:什么时候人的品味和判断会不重要? 答:可能会,但前提是实验室把审美奖励纳入 RL 训练目标。目前 Agent 的代码经常“能跑但很难看”。
【最后】
这场访谈里,Karpathy 的判断有几个值得注意的张力。
第一,他一边说 Agent 写出的代码丑得让他心脏病发作,一边说他自己已经停止修改了。“信任并没有解决品味的问题”——能跑的代码和好代码不是一回事。可这种“用着丑的,但用着”的状态,可能比任何 hype 都更接近真实的 Vibe Coding 现状。
第二,他暗示有“被低估的 RL 机会”领域却不愿公开。一个不愿在台上发含糊推文的人主动回避,本身是个信号:窗口期还没关。值得注意的是,他的公司 Eureka Labs 做的是 AI 教育,而教育恰好是一个输出可以被评估、可以被标准化考核的领域。
第三,他给“动物 vs 幽灵”这个框架自己降了级别,又用“你可以外包思考,但不能外包理解”给整场对谈收束。把这两件事放在一起读:他的判断是,真正稀缺的不是任何一个具体技能,而是判断“我们到底要做什么、为什么值得做”的能力。如果“几乎所有领域最终都能被验证”这个判断成立,那么瓶颈最终不在执行端,而在目标设定端。
但这里有一个隐含的时间问号。Karpathy 自己也承认,品味和判断之所以暂时不可替代,原因只是“实验室还没做”。如果这个判断成立,那么所谓人类不可替代的部分,不是因为人类独一无二,而是因为训练方法还没到位。这就把“外包思考但不能外包理解”这句话的有效期打了一个问号。
未来 6-12 个月值得盯三个具体信号:
- 前沿实验室在编程/数学之外,往哪些领域注入 RL 数据——那里的能力会突然冒出来
- Agent-first 的基础设施(部署、auth、payments)会不会有第一波收敛——MenuGen 部署的痛苦如果还在,“自动化社会”的路就长得多
- 模型的下一代更新是否包含审美和代码质量相关的 RL 目标
原始视频:https://www.youtube.com/watch?v=96jN2OCOfLs
See all posts