背景
2026 年 3 月,Andrej Karpathy 发布了 autoresearch——一个 630 行的 Python 脚本,让 AI Agent 在两天内自主运行 700 次实验,对已经高度优化的 GPT 代码又发现了 11% 的性能提升。项目在一周内获得 26,000 颗 Star。
几乎同时,uditgoenka/autoresearch 出现了。它自称将 Karpathy 的思路「泛化到任何领域」。本文对该项目做一次客观分析。
这个项目是什么
本质上,它是一堆 Markdown 文件,没有任何可执行代码。
.claude/skills/autoresearch/
├── SKILL.md ← 告诉 Claude 怎么执行循环
└── references/
├── autonomous-loop-protocol.md
├── debug-workflow.md
└── ... (共 13 个工作流文件)
Claude Code 读取这些 Markdown,然后 Claude 自己按照文件里描述的步骤去改代码、跑 shell、做 git 操作。没有独立进程,没有后台服务,没有真正的程序逻辑。
类比:这是给实习生(Claude)写的一份详细 SOP 文档,项目本身只是那份文档。
核心循环
LOOP(永不停止,直到你打断):
1. 读取当前代码状态 + git 历史
2. 选择下一个改动(单一聚焦变更)
3. git commit
4. 运行机械验证命令(不靠主观判断)
5. 指标改进 → 保留;变差 → 自动 git revert
6. 记录日志(TSV 格式)
7. 重复
提供 11 个子命令:/autoresearch、:plan、:debug、:fix、:security、:ship、:learn、:predict、:reason、:probe、:scenario。
它能做什么(真实有效的场景)
该项目在以下条件下有一定价值:
-
验证命令是秒级的(
grep | wc -l、npm test、eslint) -
你知道目标但不知道路径(比如「p95 从 200ms 降到 100ms,但不知道瓶颈在哪」)
-
搜索空间足够大,Claude 无法一次性扫完所有可能性
这种情况下,它相当于让 Claude 自动做 A/B 实验,试错 + 自动回滚 + 从 git 历史学习。
一个真实可行的例子:
/autoresearch
Iterations: 25
Goal: 消除所有 TypeScript any 类型
Scope: src/**/*.ts
Metric: any 出现次数(越低越好)
Verify: grep -r ":\s*any" src/ --include="*.ts" | wc -l
每轮迭代:改一处 → 跑 grep → 数字减少则保留,否则 revert。25 轮几分钟跑完。
核心问题与弊端
1. 大多数场景下,直接问 Claude 更快
项目宣传的主要用例——消除 any 类型、增加测试覆盖率、修 lint 错误——Claude 直接一次性全改完,比跑 25 轮迭代更快,token 消耗更少,结果一样好。
把一件 Claude 能一步做完的事人为拆成 N 步,每步都要重新读文件、写 git、跑命令,是在浪费时间和 token。
2. 无法处理复杂环境
所有设计都假设验证命令是秒级、无状态、轻量的。协议对复杂环境的处理:
| 场景 | 协议里的处理 |
|---|---|
| 验证超时 | kill,当作 crash,revert |
| OOM | revert,下次试更小的变体 |
| GPU 训练 | 完全未提及,不支持 |
| Docker 重建 | 没有处理逻辑 |
| 依赖安装耗时 | 没有提及 |
它能工作的前提是:你的项目已经能一条命令秒级出结果。 这在真实大型项目里经常不成立。
3. 与 Karpathy 原版的根本差距
Karpathy 的版本是真实的工程成果:
-
630 行真实 Python 代码
-
需要 NVIDIA GPU(H100/A100)
-
验证 = 真实训练 5 分钟,硬件确定,环境确定
-
2 天跑 700 次实验,发现了人类工程师没发现的优化
这个项目是:
-
5000+ 行 Markdown prompt 工程
-
不需要任何硬件
-
验证 = 用户自定义的任意 shell 命令
-
没有公开的 benchmark,没有验证过「发现了人类没发现的优化」
它的创新点是泛化,但泛化带来的代价是:搜索空间变小,Claude 直接就能找到所有能改的地方,迭代循环的价值接近于零。
4. 「长程不间断」是伪命题
README 宣传「Set the GOAL → The agent runs the LOOP → You wake up to results」,暗示它能 overnight 跑完大量实验。
但实际上:
-
没有独立进程,Claude Code 断掉循环就断
-
上下文窗口有上限,几十轮后会压缩
-
靠 git log 恢复状态,但 Claude 对早期实验的记忆会模糊
-
网络断开或 API timeout → 彻底停止
Karpathy 的版本真的能 overnight 跑,因为它是一个真正的 Python 进程。这个项目不能。
5. 蹭热度的时机选择
项目在 Karpathy 发布原版的同一时间(2026 年 3 月)推出,README 第一行就是「Based on Karpathy's autoresearch」,大量引用原版的数据(700 实验、11% 提升、26000 stars)来背书。但这些数据都是 Karpathy 项目的成果,与这个 Markdown skill 无关。
公平评价:它并非完全没用
以下场景中,它比直接对话有轻微优势:
-
不知道优化路径,只知道目标:让 Claude 自动试错,每次一个变量,失败自动回滚
-
需要长时间无人值守:设定
Iterations: 50,去做别的事,回来看结果 -
轻量重复性优化:需要反复跑同一类改动(比如多个模块都要做同样的重构)
但这些优势都很小,且只在验证命令极轻量的前提下成立。
总结
| 维度 | 评价 |
|---|---|
| 核心思想 | 好,来自 Karpathy,经过验证 |
| 实现方式 | Markdown prompt,无真实代码 |
| 适用范围 | 窄,仅限秒级验证的轻量项目 |
| 与原版对比 | 概念复刻,缺乏原版的工程深度 |
| token 效率 | 低,大多数场景直接对话更省 |
| 长程能力 | 弱,依赖 Claude Code 不断线 |
| 文档质量 | 高,写得很完整 |
一句话: 这是一个包装精美的 prompt 工程项目,它把一个好的思想(Karpathy Loop)翻译成了 Claude Code 的操作指南,并扩展到非 ML 场景。但在大多数真实场景下,你直接和 Claude 对话就能达到同样甚至更好的结果。
「Autonomy scales when you constrain scope, clarify success, mechanize verification.」——项目作者的 motto,本身是对的。但这个项目并没有真正做到这一点。
