Claude Autoresearch:把Karpathy的夜间实验,变成你的编程工具箱
Claude Autoresearch:把Karpathy的"夜间实验",变成你的编程工具箱
> GitHub: https://github.com/uditgoenka/autoresearch > 作者:Udit Goenka > 灵感来源:Andrej Karpathy's autoresearch
---
一、先讲个场景:你凌晨三点在做一件蠢事
假设你正在写一个小项目。性能测试告诉你:程序每处理1000条记录要3.2秒。你盯着代码,改了行缓存逻辑,重跑测试,3.1秒——快了一点点。你继续改,再跑,3.3秒——更慢了。你回滚,再改别的地方,再跑……
两小时后,你改了17次,其中有3次有效改进。你的咖啡凉了,眼睛花了,但还有12个想法没试。你关了电脑,明天再说。
Karpathy在2024年底提出了一个疯狂的想法:让AI来做这件事。你只需写一个program.md,告诉AI"优化这个程序,让它更快",然后睡觉。第二天早上,AI已经做了100次实验,保留了8个有效改进,回滚了92个失败的。
这就是Karpathy的autoresearch——630行Python,极简到令人发指。但它有个问题:它是为机器学习训练优化的,你要改的不是训练脚本,而是网站后端、API服务、或者文档生成器。
Claude Autoresearch 就是来解决这个问题的。它把Karpathy的"自主迭代研究"范式,从ML领域解放出来,变成任何工程师都能装进Claude Code的通用工具。
---
二、核心概念:约束 + 机械度量 + 自主迭代 = 复利收益
Karpathy的autoresearch基于一个被反复验证的公式:
> 约束(Constraint) + 机械度量(Mechanical Metric) + 自主迭代(Autonomous Iteration) = 复利收益
什么意思?
- 约束:你不能让AI乱改一切。Karpathy的限制是:只改
train.py里的参数,不改网络结构。Claude Autoresearch的限制是:你指定哪些文件可读、哪些可写。 - 机械度量:不能是"我觉得更好了",必须是数字。比如"test覆盖率从65%到70%"、"bundle size从120KB到100KB"。
- 自主迭代:AI自己提出修改、验证、保留或回滚。人类只设定目标,不参与执行。
---
三、14个命令:你的自主迭代工具箱
Claude Autoresearch不是只有一个循环,而是14个专门化的命令,每个对应一种工程师日常做的事:
| 命令 | 做什么 | 场景 |
|---|---|---|
/autoresearch | 经典迭代:改→验证→保留/回滚 | 任何有明确度量的优化 |
/autoresearch:plan | 把目标转成可验证的配置 | 你不确定怎么度量时 |
/autoresearch:debug | 假设驱动的bug猎杀 | 有bug但不知道在哪 |
/autoresearch:fix | 把错误逐个归零 | 测试/类型/lint报错 |
/autoresearch:security | STRIDE + OWASP + 红队审计 | 发版前安全检查 |
/autoresearch:ship | 8阶段发布流程 | 准备PR或部署 |
/autoresearch:scenario | 12维度生成边缘情况 | 测试覆盖不足时 |
/autoresearch:predict | 5个专家角色辩论 | 重大决策前 |
/autoresearch:reason | 对抗性辩论+盲审 | 架构争议 |
/autoresearch:probe | 8个角色盘问需求 | 需求模糊时 |
/autoresearch:learn | 文档生成与验证 | 新代码库上手 |
/autoresearch:improve | 研究PRD生成 | 产品迭代 |
/autoresearch:evals | 分析迭代结果趋势 | 优化 plateau 时 |
/autoresearch:regression | 基线对比稳定性检查 | 发版前验证 |
你不需要手动选择命令链,AI会自己决定。
---
四、架构重构:从"大部头"到"薄路由+模块化命令"
v2.1.0是一个重大架构重构。之前是813行的monolithic SKILL.md,每次调用要~100K tokens上下文。现在拆成:
- 41行的路由文件(
SKILL.md) - 12个独立命令文件(每个94-120行)
- 每次调用仅~5-8K tokens
这意味着什么?
- 更快:Claude Code的上下文加载更快,响应更迅速
- 更便宜:每次调用消耗的API token更少
- 更清晰:每个命令独立维护,不容易互相干扰
- 更安全:9个hook独立运作,不依赖主文件
---
五、9个安全Hook:你的代码不会半夜被删掉
自主迭代最怕什么?AI失控。 比如半夜把node_modules提交了,或者把.env里的密钥泄露了。
Claude Autoresearch的9个安全Hook是自动运行的(不只是autoresearch命令期间,而是每个session都生效):
| Hook | 做什么 | 触发时机 |
|---|---|---|
| scout-block | 阻止node_modules/、.git/、pycache等进入上下文 | 每次工具调用前 |
| privacy-block | 阻止.env、SSH密钥、凭证被读取 | 每次工具调用前 |
| dangerous-cmd-block | 阻止force-push、rm -rf、git reset --hard | 每次工具调用前 |
| iteration-context | 注入最近的TSV迭代数据 | 用户提交后 |
| subagent-context | 给子agent注入循环状态 | 子agent启动时 |
| dev-rules-reminder | 重新注入计划路径和代码规范 | 上下文压缩后 |
| simplify-gate | 400行警告,800行阻断 | 用户提交前 |
| session-init | 初始化项目上下文 | session启动时 |
| stop-notify | session结束通知+可选webhook | session结束时 |
export AR_DISABLE_SCOUT_BLOCK=1
export AR_DISABLE_PRIVACY_BLOCK=1
但为什么要禁用?除非你知道自己在做什么,否则别开。
---
六、LOOP核心:8步,每步一个git commit
经典的/autoresearch循环是8步:
1. Review:读当前状态 + git历史 + 结果日志(TSV格式)
2. Pick:基于"什么有效、什么失败、什么没试过",选择下一个修改
3. Modify:只做一个聚焦的改动(原子性)
4. Commit:在验证前就先提交(git作为实验记录)
5. Verify:运行机械验证(测试、基准、分数)
6. Keep/Revert:改善了→保留;更差了→git revert;崩溃了→修复或跳过
7. Log:把结果写入TSV日志
8. Repeat:重复直到迭代完成或目标达成
关键设计原则:
- 一次只改一个地方:如果崩了,你知道是哪里崩的
- 机械验证,没有"看起来不错":所有判断必须是数字
- Git是记忆:每次实验都有commit,agent读git log和diff来做下一步决策
- 自动回滚:失败的改动不会留在代码里
七、费曼视角:这真的有用吗?还是又一个AI工具炒作?
让我问几个费曼式的问题。
Q1:这和Karpathy原版有什么区别?
Karpathy的autoresearch是专用工具:为ML训练优化,约束是"只改train.py参数"。
Claude Autoresearch是通用框架:约束由你定义,度量由你指定,适用任何工程任务。但这也意味着它不会自动知道什么对你的项目好——你需要自己定义好度量和边界。如果你说"优化性能"但不给具体指标,它可能会把代码改得更快但更脆弱。
Q2:95% token reduction真的重要吗?
重要。在Claude Code里,上下文窗口是有限资源。100K tokens的SKILL.md意味着你每次调用都要加载一个"大部头",剩下的窗口留给实际代码的空间就少了。拆成5-8K的小模块后,agent可以加载更多代码上下文,做更精确的修改。这是架构层面的优化,不是简单的"文件拆分"。
Q3:9个安全Hook是过度设计吗?
不是。自主迭代的工具如果没有安全边界,风险极高。想象一下:agent在循环中误读了你的.env文件,把密钥写进了日志,然后提交了。或者它为了"优化性能"把node_modules删了重新安装,结果破坏了依赖版本。Hook系统是必要的防护,不是过度设计。
Q4:这个项目的真正价值在哪?
我认为不是"14个命令"或"9个Hook",而是它提出了一个工程哲学:
> 目标(Goal) + 度量(Metric) + 循环(Loop) = 可以交给AI的自主任务
这个公式是通用的。不管是优化性能、修复bug、生成文档、还是安全审计,只要你能定义"好"和"更好"的机械度量,就可以让AI自主迭代。
Claude Autoresearch的价值,是把这个哲学工具化、模块化、安全化。它不是在发明新概念,而是在把Karpathy的实验证明有效的东西,做成每个工程师都能用的skill。
Q5:局限在哪?
1. 度量定义成本:你需要花时间来定义"什么算好"。如果度量没定义好,AI会优化错的东西。 2. 只改不改对:和Karpathy原版一样,它优化的是"已有代码的参数和结构",不是"提出全新架构"。如果你想让AI从零设计一个系统,这不是它的场景。 3. Claude Code依赖:这是Claude Code的skill,不是独立工具。如果你用Cursor、Trae或其他AI IDE,需要适配。 4. 多模态缺失:目前只支持代码和文本,图像、音频等模态的迭代优化不在范围内。
---
八、一句话总结
> Claude Autoresearch不是让你变懒,而是让你变"聪明地懒"——你设定目标、定义度量、划定边界,然后让AI在约束里自主探索。你省下的是机械重复的时间,但你需要花更多时间在"设计约束和度量"上。这是一种权责交换:人类负责思考什么值得做,AI负责穷尽怎么做。
Karpathy的原版证明了"让AI自主迭代ML代码"是可行的。Claude Autoresearch证明了"把这个范式泛化到任何工程任务"也是可行的。下一步?可能是让AI自己设计约束和度量——那才是真正的自主研究。
---
参考
- Goenka, U. (2026). Claude Autoresearch Skill. https://github.com/uditgoenka/autoresearch
- Karpathy, A. (2024). autoresearch. https://github.com/karpathy/autoresearch
- 相关智柴研究:Karpathy autoresearch 深度解读 (https://zhichai.net/topic/177168808)
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens