原视频:The End of Coding: Andrej Karpathy on Agents, AutoResearch, and the Loopy Era of AI
视频链接:https://www.youtube.com/watch?v=kwSVtQ7dziU
说明:以下是按说话人重新整理的中文翻译版。为保证可读性,只删除了少量无意义语气词,并把极短的插话并入相邻发言;核心内容完整保留,重点把主持人和 Andrej Karpathy 的发言分开。
片头摘录
Andrej Karpathy:
“现在说‘写代码’都已经不太准确了。更准确的说法是:我每天要花 16 个小时,向我的 agents 表达意图,让事情发生。”
Andrej Karpathy:
“我怎么才能不只是开一个 Claude Code、Codex,或者别的 agent 框架会话,而是同时开更多个?我怎么才能把这件事做对?现在,agent 本身几乎已经成了默认前提,类似 Claude 这样的实体也越来越像默认前提了。你可以同时拥有多个,可以给它们下指令,还可以继续优化这些指令。所以这件事会让人非常上头:它几乎像是无限展开的,而一切又都像是‘技能问题’。”
正文
主持人:
欢迎回到 No Priors。今天我们请到 Andrej Karpathy,一起来聊代码 agents、工程和 AI 研究的未来、更多人如何参与研究、机器人正在发生什么、agents 如何进一步伸向现实世界,以及下一个时代的教育会是什么样子。
最近这几个月,AI 领域真的非常刺激。我记得有一次我走进办公室,你整个人完全进入状态。我问你在干什么,你说你现在每天都得“编码”16 个小时——不过连“编码”这个词都已经不准确了,更像是在不断向 agents 发号施令。到底发生了什么?你的体感是什么?
Andrej Karpathy:
我现在经常处在一种“AI 上头”的状态里,而且这种状态已经持续很久了。因为对个体来说,能力的上限突然被大幅打开了。过去你的瓶颈是打字速度、实现速度、你自己能同时做多少事;但到了去年 12 月左右,感觉像有什么东西突然翻过去了。
以前大概还是 80% 自己写、20% 委托给 agent;后来慢慢变成 20/80;再到现在,甚至比这还极端。我从 12 月开始,可能几乎就没再亲手敲过几行代码。这是一个非常巨大的变化。
而且我觉得,普通人其实还没有意识到这个变化到底有多戏剧性。你现在随便找一个坐在工位上的软件工程师,他默认的工作流,和去年相比已经不是同一种东西了。所以我现在一直都在试:我能不能不只开一个 Claude Code 或 Codex?我能不能同时开一堆?我怎么调度它们?我怎么把这件事做得更系统?
我在 Twitter 上看到很多人都在做各种新东西,而且听起来都很合理。我会有一种很强的焦虑感:如果我没有站在最前面,我就会非常不安。因为这整件事从根本上说还远远没有被探索完。
主持人:
如果连你都紧张,那我们剩下的人就更该紧张了。我们合作过的一个团队,已经没有工程师手写代码了。每个人都戴着麦克风,对着自己的 agents 一直小声说话。我以前觉得他们疯了,现在反而会觉得:哦,原来你只是更早进入了这个状态。
那你觉得,现在限制你探索能力或者做项目能力的真正瓶颈是什么?
Andrej Karpathy:
很多时候,限制并不像是“能力不存在”,而更像是“你还不够会用”。如果某件事没跑起来,我第一反应往往不是“模型不行”,而是:是不是我给的说明还不够好?是不是我没有接好记忆系统?是不是我没有把任务切得足够清楚?是不是我没有把整个过程并行化得足够好?
换句话说,很多问题都更像是 skill issue,而不是 capability issue。
你会开始用一种很宏观的方式去思考软件仓库。以前你想的是“写一行代码”“实现一个函数”;现在你想的是“这个新功能交给 agent A”“另一个不冲突的功能交给 agent B”“让第三个 agent 去做研究或者先出一个实施方案”。然后你像项目总调度一样,在这些仓库、分支、任务之间来回穿梭,检查、合并、继续派工。
Peter Steinberger 在这件事上就做得非常极致。他有一张很有名的照片,前面一排显示器,上面挂着一堆 Codex 实例。每个 agent 都可能要跑 20 分钟,但他同时开很多个,在不同仓库之间切换,不断给它们布置工作。
于是你会开始形成一种新的肌肉记忆:当一个 agent 在跑的时候,你的第一反应不再是“等它结束”,而是“我为什么不再开几个?”如果你还有 token 没打满、订阅没打满、算力没打满,那说明你自己才是这个系统里的瓶颈。
主持人:
也就是说,过去很多工程任务的瓶颈是“算力不够”;现在突然变成“我自己成了瓶颈”。
Andrej Karpathy:
对,而且这也是为什么它这么容易让人上瘾。
我读博的时候,只要 GPU 没跑满,你就会有一种焦虑感:明明有算力在那里,结果你没把它用满。现在这种感觉被迁移到了 token 吞吐量上。如果 Codex 的额度跑满了,你就会想是不是应该切到 Claude 或别的工具。核心问题变成:我到底能把多少 token 吞吐量,转化成真正有效的成果?
这是一种非常新的技能,而且它真的会不断解锁新的上限。
主持人:
那如果我们把时间往后看一年、两年,这种 mastery 会长成什么样?
Andrej Karpathy:
我觉得大家现在都已经默认“单个 agent”存在了,下一步自然就是“多 agent 协作堆栈”。大家都在摸索:多个 agents 怎么组成一个团队?怎么合理分工?怎么管理状态和记忆?
另一个我非常感兴趣的方向,是一种更持久、更常驻的后台代理系统。我之前会用 claw 这种说法来描述它。意思不是你和它开一次会话,而是它在自己的小沙箱里持续运转、替你做事、拥有更强的持久性和更复杂的记忆,而不是只靠上下文快满了之后的压缩记忆。
这类系统一旦做起来,会把 agent 的持久性提升到另一个级别。
主持人:
那你觉得更重要的是工具接入,还是更强的记忆和长期性?
Andrej Karpathy:
我觉得两者都重要,而且它们是互相增强的。
Peter 做得特别好的地方在于:他不是只优化了一件事,而是同时在很多层面上做了创新——人格、记忆、编排、工具接入、工作流,全都一起推。
比如我现在越来越觉得,人格这件事其实非常重要。Claude 的人格就做得不错,感觉像一个真的愿意合作的队友;Codex 的编码代理则更干、更冷一点,更像“我已经帮你做完了,但我不怎么关心你到底在构建什么”。而 ChatGPT 往往更乐观,也更容易顺着你。
这种差别不是装饰,它会直接影响协作体验。甚至我还会有一种很奇怪的感觉:如果 Claude 夸我,我会觉得自己真的有点想“挣到这个夸奖”。如果我给它一个半生不熟的点子,它反应不会很大;但如果我自己也觉得这个点子确实很不错,它的反馈似乎也会更强。你会想赢得它的认可,这听起来有点荒唐,但说明人格层不是边角料,而是产品体验的一部分。
主持人:
除了软件工程,你还真的拿这些东西做过什么有趣的事情吗?
Andrej Karpathy:
有。今年一月我搞了一个家庭后台代理,叫家务精灵 Dobby。它基本上就是在替我照看整个家。
我做的第一件事,是让它在局域网上找我家所有的智能家居子系统。结果它真的去扫 IP,找到了 Sonos,然后发现某些接口几乎没有什么保护,就自己去查资料、逆向 API,再回来问我要不要试试看。我说那你在书房放首歌吧,结果它真的就把音乐放出来了。只用了三条 prompt。
后来它又接管了灯光、HVAC、窗帘、泳池、水疗和安防系统。我还有一个摄像头对着门外,前面先做变化检测,后面再把画面交给视觉模型分析,然后它会直接通过 WhatsApp 给我发消息,附上一张门口的图片,告诉我:刚刚有一辆 FedEx 的车停在门口,你可能有包裹。
这件事给人的感觉非常离谱,也非常新鲜:Dobby 真的像是在替我看家。
以前我得同时用六个完全不同的 App 才能控制这些系统;现在这些 App 我基本都不用了。Dobby 直接用自然语言控制一切。哪怕我还没有把这种范式推到极限,它也已经非常有帮助、非常鼓舞人。
主持人:
这是不是在说明,人们真正想要的并不一定是今天这些软件本身,而是一个能替他们调动软件的存在?因为学习一个新的 UI、本来就是成本。
Andrej Karpathy:
我觉得某种程度上确实如此。
普通人脑子里想象的 AI,并不是“一个原始的 LLM token 生成器”。对大多数人来说,他们想象中的 AI 更像是一个有身份、有记忆、你可以跟它说事情、它会记住、会持续替你处理问题的存在——像是藏在 WhatsApp 后面的一个实体。
从这个角度看,很多软件今天的用户体验层,本来就不一定该存在。很多 App 最后可能都应该退化成一组 API endpoint,由 agent 来调用,由 agent 作为智能胶水层把它们粘起来。
比如我的跑步机,当然也有一个配套 App。但我并不想打开一个网页或者 App 去按一堆按钮,我真正想说的是:“帮我记录这周做了几次有氧。”
所以我觉得很多行业最后都得重新配置:客户不再只包括人类,也包括代表人类行动的 agent。未来大量工具更像是 agent-first,而不是 UI-first。
主持人:
那你为什么没有进一步把它接到邮件、日历这些更核心的系统里?
Andrej Karpathy:
一部分是因为我自己会分心,另一部分是因为我对这件事依然相当谨慎。
像邮件、日历、整个数字生活的权限,一旦全交出去,安全和隐私问题就真的很严肃。现在这些系统虽然很强,但边缘还是挺粗糙的,所以我还不想毫无保留地把整套数字生活都交给它们。
主持人:
那我们来聊 AutoResearch。你提这个词的时候,背后真正的动机是什么?
Andrej Karpathy:
最核心的动机就是:把自己从瓶颈里移出去。
如果你还坐在 loop 里,一直盯着结果、再决定下一步,那系统就会被你卡住。现在这个阶段,游戏的名字其实是 leverage——扩大自己的杠杆。我希望自己只偶尔投入很少量的 token,却有大量工作能以我的名义持续发生。
所以 AutoResearch 对我来说,不是一个噱头词,而是一个边界测试:我怎样才能让更多 agents 跑更久、做更多事,而不需要我一直参与?
我原本并没有很强预期它会立刻有效。但我拿自己熟得不能再熟的 GPT-2 小 playground 去跑实验,它真的给我挖出了一些我之前没有看到的东西——比如某些权重衰减、超参数之间的联动。我原来以为那个仓库已经被我调得很透了,结果它还是找到了一些增益。
这让我意识到:这种“递归自我改进”并不是玩具。前沿实验室当然也都在往这个方向走。你可以先在小模型上做大量探索,再把结论外推到更大的模型上。
主持人:
也就是说,研究流程本身都得被重写。研究员不应该继续亲手做那么多事情。
Andrej Karpathy:
我觉得是的。人类当然还可以贡献想法,但大量实现、搜索、试错和评估流程,本来就应该自动化。
你甚至可以把一个研究组织理解成一组 Markdown 文件:里面定义了所有角色、流程、接口、怎么协作、会议怎么开、怎么挑题、怎么合并成果。只要这套“组织方式”被写成了代码,你就可以优化它、比较它、演化它。
我特别喜欢一个想法:让很多人各自写不同版本的 program MD,然后在同样的硬件预算下,看谁带来的改进更大。你再把这些结果喂回模型,让模型去写更好的下一版。
所以现在整个过程像一层一层往上抬:先有 LLM,再有 agent,再有多 agent,再有指令优化,再有对“组织本身”和“program MD 本身”的元优化。也因为它是这样层层往上的,所以才会让人觉得近乎无限展开。
主持人:
但这件事应该也不是对所有任务都同样适用。什么类型最适合 AutoResearch?
Andrej Karpathy:
最重要的前提,是你得有可以明确评估的客观指标。
比如你想把一段 CUDA kernel 或者模型中的某段代码改得更高效,这就非常适合。因为目标非常清楚:行为不变,但更快、更省、更好。
可一旦任务没有一个清楚、自动化、低歧义的评估标准,你就很难把它彻底自动化。很多事情不是 agent 做不了,而是你没法验证它到底做得是不是“更好”。
另外,今天这些模型虽然已经很强,但边缘其实还是很粗糙。我经常会觉得自己一边在和一个非常厉害的博士生对话,一边又像在和一个十岁小孩对话。你能感受到它很强,也会经常感受到那种非常奇怪的参差感。
有时候它会在一个你觉得明显到不能再明显的问题上,浪费掉海量计算。这种 jaggedness 真的非常怪。人类当然也有短板,但模型的这种锯齿状短板,更极端、更跳跃。
主持人:
这会不会意味着:代码能力和更广义的“智能”之间,其实并没有很多人想象得那么强的同步泛化?
Andrej Karpathy:
我觉得确实存在某种解耦。
一个特别典型的例子就是笑话。今天你去问最先进的模型讲笑话,它大概率还是会给你那些很多年前就在流传的老梗。比如“为什么科学家不相信原子?因为原子构成了一切(make everything up)。”
这说明一件事:模型在 RL 奖励覆盖到、可验证、可优化的领域,进步会非常快;但在那些没有被专门优化、没有明确奖励信号的区域,它并不会自动同步变强。
所以我不相信“只要代码更强,所有别的能力就都会免费跟着变强”。可能会有一点泛化,但没有那么线性、那么平滑。
主持人:
那是不是意味着,未来不会只是一个万能的大一统模型,而会出现更多“物种分化”?
Andrej Karpathy:
我觉得很可能会。
今天实验室更像是在做一个单一文化模型:什么能力都往一个大脑里塞。但从自然界看,智能从来都不是单一形态。不同生态位会长出完全不同的大脑结构。
所以未来我们很可能会看到:更小但更专精的模型,围绕某些具体任务,在延迟、吞吐量和能力分布上做定制化优化。
只是今天“怎么稳定地改权重、做深层微调、做持续学习”这套工程学还不成熟。现在最成熟的,还是在上下文窗口里做文章;真正去动模型权重本身,这件事还是太贵、太粗糙。
主持人:
你还提过另一个方向:如果把 AutoResearch 再往外推,可能会变成一种更开放的互联网协作表面。那是什么样?
Andrej Karpathy:
我想的是一种系统:生成候选解非常昂贵,但验证候选解是否成立相对便宜。
比如在 AutoResearch 里,有人给你一个 candidate commit,说这会让模型训练得更好。你要验证它是不是真的更好,其实是可以做成比较明确的;难的是先把它找出来。
这在味道上有点像 Folding@home、SETI@home,甚至某种程度上像区块链。区别只是,这里不是块,而是提交;不是挖矿,而是做实验搜索。真正难的是找到有效方案,验证反而更便宜。
所以理论上,你可以让互联网上一群不受信任的贡献者,和一组负责验证的可信节点协作。只要沙箱、安全隔离和验证流程设计得够好,这套系统完全可能把全球零散算力组织起来。
而且这件事很迷人,因为它甚至能让“按兴趣捐算力”变得有意义。你关心癌症,就把算力投给某种癌症研究的 AutoResearch 轨道;你关心材料、物理、别的具体问题,也可以把算力投给对应方向。
主持人:
你之前还发过一组就业数据。你当时到底想从里面看什么?
Andrej Karpathy:
我其实是在试着建立自己的思考链:AI 到底会怎样作用于就业市场?哪些职业只是工具变了,哪些职业会被重构,哪些可能反而增长?
如果你把今天的 AI 理解成一种“数字世界里的劳动者”,那它们最擅长的其实是操纵数字信息,而不是直接操纵原子世界。复制、修改、传递 bit 的速度,比改造现实世界要快太多了。
所以我的直觉一直是:数字空间会先发生大规模重写、沸腾和重构;物理世界会慢一些。这不意味着数字职业一定会消失,而是意味着这些职业的工作方式一定会被重塑。那些主要在家里、主要处理数字信息的岗位,受到的影响会尤其大。
主持人:
那如果一个人正在找工作,或者正在想“我现在到底该学什么”,你会怎么说?
Andrej Karpathy:
第一件事就是:不要忽视它,也不要因为害怕就选择回避它。
这些工具现在首先还是赋权工具。绝大多数工作,本来就是一串任务组成的;而其中一部分任务,已经明显能被这些系统加速。所以在眼下这个阶段,尽快跟上它、学会和它协作,几乎是任何知识工作者都应该做的事情。
长期会怎样,我不想假装自己能精确预测,但短期里,它更像是一个巨大杠杆。
拿软件工程来说,我其实是偏乐观的。对软件的需求本来就接近无限,过去限制它的不是需求不足,而是太贵、太慢、太难做。门槛一旦下降,Jevons Paradox 很可能就会出现:东西变便宜了,需求反而更大。
就像 ATM 并没有让银行出纳直接消失,反而因为网点更便宜,银行能开得更多,所以总需求也被重新放大。AI 对软件行业也可能有类似效果:软件会更便宜、更强、更短暂、更容易定制,于是社会对软件的总需求继续上升。
主持人:
很多人也会问:如果你都这么看,那最值得去的地方是不是还是前沿实验室?
Andrej Karpathy:
我不觉得答案这么简单。
前沿实验室当然非常重要,但在实验室之外、在生态系统层面做事情,也可能非常有影响力。问题在于:一旦你进入组织,你就不再是一个完全自由的 agent。你会承受很多显性和隐性的压力——有些话能说,有些话不好说,有些问题你能参与,有些参与不了。
而在实验室之外,你反而更有机会从生态系统层面施加影响:写工具、塑造工作流、推动开放基础设施、做教育、做新的协作范式、当一个真正独立的参与者。
所以我不会把“最有价值的位置”简单等同于“进入某一家最前沿公司”。
主持人:
那你对开源和闭源的长期格局怎么看?
Andrej Karpathy:
我本能上还是偏开源。
一方面,封闭智能的高度集中化,本身就有结构性风险。回头看历史,无论是政治还是经济,权力过度集中通常都没有特别好的记录。
另一方面,从软件史看,Windows 和 macOS 当然都很强,但 Linux 这种开放系统最终撑起了大量真实世界计算。AI 也完全可能出现类似格局:最前沿的能力也许暂时掌握在少数封闭系统手里,但我希望未来会出现更多足够强、足够开放、可被更广泛社会理解和塑造的替代方案。
我不觉得“把最重要的智能系统尽量集中到尽可能少的人手里”会是一个健康的终局。
主持人:
你还提到过一个很有意思的点:数字世界和物理世界的接口,可能是接下来特别值得看的地方。
Andrej Karpathy:
对。因为 bit 太容易复制和操纵了,所以数字空间的变化会先爆炸;但如果 agents 开始彼此交谈、执行任务、形成 agent economy,那它们最后总会碰到现实世界。
你终究要接触传感器、接触设备、发起实验、调用外部系统、采集新数据。这个接口非常有意思,因为它不一定非得从“昂贵机器人”开始。很多进入物理世界的能力,其实已经以相机、传感器、现成硬件和软件接口的形式存在了。只要 agent 足够聪明,它就能利用这些东西去获取数据、控制系统、完成任务。
所以我觉得所谓的 agentic web 很可能真的会出现:互联网不再只是人类浏览的网站,而会变成 agents 彼此消费、生成、验证、交换信息的工作表面。
主持人:
这也意味着,数据收集和训练流程本身会越来越被重构。
Andrej Karpathy:
是的。很多训练、收集和评估流程都会更机械化、更程序化。某些任务特别适合被做成干净指标和自动闭环,LLM 训练本身就是一个典型例子。
所以你会看到越来越多系统开始为了“喂给 agent”和“喂给训练过程”而重组。社会中的一部分工作,最终甚至会转而服务于机器系统本身的需求。
主持人:
最后我想聊聊教育。你做过 MicroGPT。在这样的时代里,“教学”会变成什么样?
Andrej Karpathy:
MicroGPT 本来就是一个很小的教学 playground,目的是让人能真正看清楚 LLM 训练过程在干什么。如果你不追求跑得快,只追求清楚,它其实就是一小段非常好读的 Python:文本数据集、一个小神经网络、前向传播、反向传播、一个极简 autograd,再加上优化器。它可以把整个过程压到一个普通人还能真正读懂的尺度。
但我现在越来越觉得,教育本身也会变化。过去教育是课程、讲座、文档;以后越来越像是“我把我认为最好的解释路径,写成 agent 能执行的技能和提示”。
也就是说,我不一定再直接给每一个人上课,而是把“该如何解释某件事”这件事编码进去。这样学习者不懂某个点时,agent 可以换三种方式解释、带着他沿着代码库走、根据他的背景调整顺序。
真正重要的,反而是你能不能把自己的洞见、判断和解释结构,准确地注入 agent。代理做不到的事情,才是你真正的工作;代理已经能做好的事情,它们很快只会做得比你更好。
主持人:
所以你真正的贡献,会越来越像是:决定什么值得解释,以及应该怎样解释。
Andrej Karpathy:
对。很多东西 agent 已经理解了,只是它还不一定能自己发明出最好的解释方式。那部分暂时还是人的价值所在。但这条边界也在不断移动。
所以你必须非常有策略地决定:自己的时间,究竟该花在哪些事情上。
主持人:
非常感谢你,Andrej。
Andrej Karpathy:
谢谢邀请。
如果你想看原始英文视频: