AI AgentKarpathy

76%的性能提升与模型无关?Karpathy 700次 Loop 实验揭开 Agent 最大误区

四月··原文链接
收录于 2026/7/8 21:38:48

"今天 AI 行业最大的误区,是大家都在逼 Agent 尽快干活,却没有先把底层模型和系统机制理解吃透。"——前 OpenAI 联合创始人、现 Anthropic 预训练研究员 Andrej Karpathy 在播客《AGI is still a decade away》中如此警示。他指出,OpenAI 早年也踩过类似的坑:在基础能力还没成熟时,就急着让 Agent 去完成复杂任务,结果白白浪费了五年时间。

过去一年,Agent 成了 AI 圈最拥挤的赛道。大家都在接模型、挂工具、堆工作流,仿佛只要再多套几层能力,一个真正能自主干活的 Agent 就会自然冒出来。但问题恰恰在这里:很多 Agent 看起来不是败在"模型不够聪明",而是败在模型之外那套更基础、更无聊、也更要命的系统工程。

实验:只优化"外壳",性能也能狂飙

Hugging Face 机器学习工程师 Joel Niklaus 的实验《Don't Train the Model, Evolve the Harness》表明:使用同一个 DeepSeek-V4-Pro,不改模型权重,只优化模型外层的执行机制,就能让 Agent 在专业任务中的表现大幅提升(pooled score 从 3.5% 拉升到 80.1%)。

DeepSeek-V4-Pro 在原始 LAB harness 下的任务表现

Niklaus 做了一件极其克制的事:完全冻结模型权重,不进行任何微调或继续训练,唯一的变量是包裹在模型外层的代码和执行逻辑——即 Agent Harness(外层执行机制)。

令人哭笑不得的是,在最初的测试里,这个模型在某些外层机制下的得分竟然是 0%。研究团队挖出真相:模型的法律推理过程其实全对,但它总是把结果存错了文件名,导致测试程序根本读不到结果。这意味着,0 分从来不是在测模型的智力,而是在测 Harness 是否有效

既然问题出在"外壳"上,只要优化它,性能能提升多少?同一个 DeepSeek-V4-Pro、同一批任务、同一个评测器,仅仅因为换了五种不同的外层执行机制,pooled score 在 3.5% 到 80.1% 之间剧烈波动:从 mini-swe-agent 的 3.5%、Goose 的 23.2%、Pi 的 45.4%,一路拉到原始 LAB harness 的 63.4%。

不同外层执行机制在 held-out test 任务上的表现对比,波动区间高达 76 分

经过约 22 轮的代码自动迭代优化后,最终在 100 个 held-out test 任务上,pooled score 从原始 LAB harness 的 63.4% 提升到了 80.1%(提升 16.7 个百分点),all-pass rate 也从 0% 提升到 5.0%。

仅靠优化 Harness,开源模型追平 Claude Sonnet 4.6,成本仅为 1/7

这个完全没动过权重的开源模型,仅靠优化 Harness,其表现就追平了业界顶级的闭源模型 Claude Sonnet 4.6,而运行成本仅为原来的 1/7。

更关键的是,这套优化好的 Harness 迁移到同族小模型 DeepSeek-V4-Flash 上,依然带来了 14.4 分的提升。这证明:代码层面的执行机制,远比 prompt 提示词调优更容易沉淀和跨模型迁移

Harness 迁移到 DeepSeek-V4-Flash 仍提升 14.4 分

什么是 Harness?12 个核心组件

前 Lightning AI 工程师、DailyDoseOfDS 联合创始人 Akshay 曾这样剖析:一个原始的 LLM 只是一个没有内存或硬盘的 CPU;如果不是模型本身,那就是 Harness——它是管理内存、I/O 和驱动程序的操作系统。他认为,生产级 Harness 应当包含 12 个核心组件,涵盖从流程编排、工具调用、分层存储到上下文管理和错误处理等各个环节。

生产级 Harness 的 12 个核心组件

例如,常见的"上下文腐烂"问题:当模型将关键信息置于上下文窗口中间时,性能会直接下降 30% 以上。成熟的 Harness 已经拥有一套完整的工程方法来解决这个问题——压缩历史记录、屏蔽旧输出、动态获取和代理摘要,其核心在于用最少数量的高信息密度 Token 获得最佳结果。

上下文腐烂问题与解决方案

基于上述实验,Niklaus 得出了一个核心结论:Benchmark 测到的永远不是裸模型,而是"模型 + Harness"的组合能力。最大的性能改进往往来自于简单的文件处理等自动化步骤,而非消耗大量 Token 去修改提示词。

700 次自动迭代、性能跃升 5 倍

既然模型之外的执行机制如此重要,具体该怎么搭一个能持续进化的 Agent?AI 研究员 Codila 对 Karpathy 斩获 9 万 Star 的 AutoResearch 项目进行了二次提炼,将 630 行开源代码浓缩为五步走的"Loop Engineering"方法论。这套方法目前在 X 上获得了超 200 万的阅读量。

Loop Engineering 方法论(X 上超 200 万阅读)

它戳中了一个核心痛点:不要指望 Agent 一次做对,而在低成本的持续试错中逼近最优解。这套循环的逻辑看似极简:

  • 基于一个精细调整的模型,编写一份文档,告诉智能体要探索哪些方向以及要遵循哪些约束条件。
  • 仅允许智能体修改训练脚本;评估和评分脚本已锁定,无法修改(防止智能体为了获得更高分数而擅自降低标准)。
  • 让 Agent 进入以下循环运行:提出变更 → 训练 → 评估 → 保留好的、改进并舍弃不好的改进。

Loop 循环流程图

Karpathy 用他凭借 20 年经验手动调整的模型跑了两天,结果令人咋舌:Agent 自动运行了 700 次实验,找出了 20 项连他自己都忽略的代码改进。比如,注意力机制中遗漏的一个标量乘数,导致注意力过度分散到多个"头"上——这种需要海量耐心的精细优化,人类在十几轮后就会筋疲力尽,但 Agent 不会。

Shopify 首席执行官 Tobi Lutke 连夜用内部模型进行了测试,醒来后发现质量提高了 19%,而优化后的模型大小也减少了一半。

700 次迭代与 Tobi Lutke 的实测结果

循环有效运作的三个基本要素

要使这个循环有效运作,核心不在于智能体有多聪明,而在于三个基本要素是否做对了:

  • 验证器:自动判断结果好坏的机制。没有它,Agent 就是在给自己批作业,跑一万次也毫无意义。
  • 状态文件:记录每次尝试的结果,避免页面关闭或进程重启后从头再来。
  • 停止条件:达到目标或撞到最大轮次必须停止,否则会持续运行烧光你的 Token 预算。

四项全能:什么时候该建 Loop 循环?

不是所有任务都值得大动干戈建一套 Loop 循环。Codila 提出了一个"四项全能"的适用标准:

四项全能适用标准

  1. 任务高频:至少每周重复一次,否则收不回构建成本(一次性任务用个好提示词就够了)。
  2. 验证可自动化:无需人工干预读取和修复。
  3. Token 预算能消化冗余:循环必然伴随大量重试,小预算扛不住。
  4. Agent 能访问真实的运行环境:不能闭着眼睛盲目迭代。

请注意,这四个条件缺一不可,否则成本将远超收益。

双层自动研究(Bilevel Autoresearch)

顺着这条思路,研究人员进一步提出了"双层自动研究",详情见论文《Bilevel Autoresearch: Meta-Autoresearching Itself》。他们在原有循环外再套了一层循环:内层循环负责优化模型,外层循环则负责优化内层循环的搜索逻辑。

双层自动研究架构

结果同样令人震撼:在使用同一个大型模型的情况下,性能比 Karpathy 的基准测试结果提升了整整 5 倍,且所有提升均来自架构的改进。

双层自动研究:性能提升 5 倍

外层循环的关键作用在于打破了 LLM 的"思维定势":内层循环极易陷入模型先验认知的搜索模式,即使策略失效也会反复尝试;而外层循环强制模型去探索它本能回避的方向,从而榨取出超越模型自身认知的潜力。

两个隐性代价:理解债与认知让渡

然而,需要警惕的是,Loop 自转也会带来两个隐性代价:

  • 理解债:循环生成的代码并非人工一行行敲出,仓库代码与开发者真正理解的代码差距越来越大。一旦系统崩溃,Debug 成本极高。
  • 认知让渡:循环一旦跑通,人极易停止思考。同样的工具,有人用来加速已理解的工作,有人却用来逃避理解工作,最终结果天差地别。

当试错成本趋近于零

回到开头 Karpathy 的警示,为什么"逼 Agent 一次做对"是个伪命题?因为现实世界的问题,从来不是靠一次灵感迸发就能解决的。Hugging Face 的实验和 Karpathy 的 Loop Cycle,其实共同指向了 AI 发展的一个底层逻辑变迁:真正的 AGI 不是靠模型单点爆破出来的,而是靠系统工程把"试错的成本"无限降低

当试错成本足够低,Agent 就能像一个不知疲倦的实习生,在成百上千次的碰壁中自动纠偏、自动成长。我们过去总在纠结"马(模型)跑得够不够快",却忘了给它套上"车架和方向盘(Harness)",更忘了给它设定"导航和刹车(Loop 的验证与停止条件)"。

这不仅是工程方法论的升级,也是对人类认知的考验。当外层机制开始自转,人最容易犯的错误就是"认知让渡"——用工具来逃避思考,而不是加速思考。落到我们个体用户层面,AI 真正的护城河,从来不在于你用了多大的模型,而在于你能否构建一套让模型在真实世界中不断进化的系统,同时保持人类对系统底层逻辑的清醒掌控。


参考:

  1. https://huggingface.co/spaces/joelniklaus/harness-optimization#the-dev-frontier-moved-in-a-few-big-steps
  2. https://x.com/0xCodila/status/2072329149520232639

编辑视角点评

这篇文章的核心论点对前端工程师 Rainsho 来说格外有共鸣。在组件库与构建工程领域,我们早已习惯于将"运行时能力"(模型)与"工程化外壳"(Harness)分离——正如 Webpack/Vite 的配置调优可以带来数十倍的构建提速,而无需改动 React 本身。文章给出的实验数据极其清晰:同一个模型仅因 Harness 不同就有 76 分的波动区间,这与前端"框架性能差异往往被工程化实践抹平"的经验高度一致。

特别值得关注的技术点:

  • Harness 的 12 组件模型:将 Agent 外层机制结构化为流程编排、工具调用、分层存储、上下文管理等,这与前端 BFF 层、状态管理、缓存策略的分层思路同构。上下文腐烂问题(关键信息在窗口中间性能下降 30%)本质上就是"长列表虚拟化"在 LLM 场景的映射。
  • Loop 三要素(验证器/状态文件/停止条件):与 CI/CD pipeline 的 test-report、artifact、retry-limit 三件套完全对应。如果你已经在做前端自动化测试,搭建 Agent Loop 的心智模型可以直接迁移。
  • 四项全能判断标准:高频、可验证、预算可承受、可访问真实环境——这四条同样适用于判断"什么功能值得做 E2E 自动化"。
  • 认知让渡的警告值得反复品读。Loop 跑通后人停止思考,本质上是"自动化幻觉"——正如引入了热重载后开发者反而更少理解编译管线。工具加速理解 vs 逃避理解,分野往往在一念之间。
评分:
暂无0 人评分)