Karpathy autoresearch:从上下文工程到自主研究循环

核心结论(一句话)

autoresearch 的可复用部分不是“让 Agent 永不停止”,而是把自主试验限制在一个可证明进步的闭环里:不可变评分器、单一可编辑面、固定预算、结果账本和 Git 回退

分类提炼

知识节点

一手核验

主题 一手实现 公众号处理
原文形态 GitHub 仓库、README、program.md 与代码 “9 页 PDF”不成立
实验规模 Karpathy 更新:约 2 天、约 700 次实验 可引用
结果 Karpathy 更新:约 20 项保留改进,2.02 小时到 1.80 小时 “4 个 Bug”未证实
控制机制 固定评测、固定时长、Git keep/reset、TSV 账本 可作为实现主线
Agent DAG README 仅提及未来可增加更多 Agent Worktree/DAG 是扩展设计,不是原项目默认架构

最小实现路径

官方仓库的运行条件是单张 NVIDIA GPU、Python 3.10+ 与 uv,并已在 H100 上测试。先在隔离环境按官方步骤跑通基线:

1
2
3
4
5
git clone https://github.com/karpathy/autoresearch.git
cd autoresearch
uv sync
uv run prepare.py
uv run train.py

之后再让 Agent 执行 program.md 定义的循环:

  1. 阅读 README.mdprepare.pytrain.py,确认缓存数据与 tokenizer 已准备好。
  2. 创建独立实验分支与未跟踪的 results.tsv,先记录未改代码的基线。
  3. 只修改 train.py,提交改动并运行一次 5 分钟训练。
  4. 从日志提取 val_bpb 与显存;失败则记录 crash
  5. val_bpb 更低才保留当前 commit,否则回退到实验前状态。
  6. 继续下一项假设;每日审阅 Diff、TSV 和最优 commit,而不是只读文字总结。

迁移规则

将该模式迁移到非训练任务时,先补齐这五项,缺一项就不要启动无限循环:

  1. 不可变 verifier:独立于 Agent 修改面,可自动判定好坏。
  2. 可比较预算:固定时间、成本或样本集,避免实验口径漂移。
  3. 最小写入面:优先单文件、单模块或可隔离 Worktree。
  4. 回退状态机:只有 verifier 通过才允许推进分支或合并。
  5. 人工停止边界:生产、外部副作用、数据与安全路径不能照搬 NEVER STOP

关联图谱

上游(基于 / 来自)

下游(应用于 / 验证于)

同级(横向 / 并列)

相关链接