这个项目的运行逻辑并不复杂。Agent 主要反复修改 train.py,每次只拿到固定 5 分钟训练预算,跑完后比较 val_bpb 指标,判断这次改动是否值得保留,再进入下一轮。指标变好,改动留下;指标变差,回退重来。这样一来,研究过程被离散成一串短周期、可验证、可淘汰的实验单元。它不是在追求一套完美理论,而是在真实约束下持续搜索局部更优解。

autoresearch 最有意思的地方,在于它刻意把系统压缩到了只有三个关键文件。prepare.py 负责数据准备和运行时工具,包括下载训练数据、训练 tokenizer、提供 dataloader 和评估能力,这部分默认不改。train.py 承载模型结构、优化器和训练循环,是 Agent 主要动刀的区域。program.md 则是人类写给 Agent 的指令集,决定它如何理解目标、如何做实验、如何记录和取舍。Karpathy 实际上把“研究组织”本身也当成了可编程对象。

这正是它和普通 AutoML 或脚本化调参最不一样的地方。很多自动化训练系统,本质上是在既定搜索空间里枚举超参数,或者把多组实验批量调度出去。autoresearch 并不只是在网格里找最优点,它允许 Agent 直接改训练代码本身:模型架构、批大小、优化器细节、训练循环,理论上都能进入实验范围。更关键的是,人类主要不再直接改 Python,而是通过 program.md 去编排研究流程。换句话说,研究者开始写“给研究员的操作系统”,而不是只写实现细节。

固定 5 分钟预算,是这个项目里很关键、也很聪明的设计。它让不同改动能在同一时间约束下横向比较,避免一个方案只是因为跑得更久而显得更好。同时,这种固定预算会把搜索目标自然锁定为“在当前硬件上,5 分钟内谁最有效”。这不是传统意义上的通用最优,而是对具体机器、具体数据、具体时间窗口的局部最优搜索。它很务实,也很工程化。代价同样明显:你的实验结果未必能直接迁移到别人的硬件环境,跨平台可比性会下降。

因此,autoresearch 的价值不应被误读为“研究员很快可以下岗”。它目前更像一个关于方法论的原型:如果把实验环境缩小到足够可控,把评价指标压缩到足够单一,再把人类策略外置到 program.md,AI 能不能形成一种可持续推进的实验循环?这个问题过去常停留在愿景层面,而 autoresearch 至少给出了一个可被复现、可被 fork、可被批评的答案。

它的现实边界也很清楚。项目需要单张 NVIDIA GPU,README 中测试环境是 H100,这已经决定了它不是面向大众电脑的即插即用工具。虽然社区已经出现 macOS 和 Windows 的 fork,说明外部开发者正在快速扩展运行平台,但这些扩展更多代表概念被验证后开始外溢,不意味着主仓库已经变成成熟、稳定、跨设备一致的研究基础设施。它目前定位也不是工业级训练框架,而是一个围绕“AI 是否能自动做实验”展开的研究样机。

真正值得关注的,恰恰是这种边界感。autoresearch 没有试图包装成无所不能的平台,也没有把 agent 神化成会自动产出突破的黑箱。它只是用尽量少的文件、尽量硬的约束、尽量清晰的指标,搭出一个 overnight 就能运行起来的自动化研究范式。今天它当然还不能替代成熟研究团队,更谈不上覆盖开放式科学探索的复杂性;但它已经把一个重要问题摆到了工程桌面上:未来研究者的核心工作,也许不再只是亲手改每一行代码,而是设计实验制度、定义反馈回路、编写能驱动 AI 团队持续试错的 program.md。若这个方向继续演进,研究自动化真正被重写的地方,可能不是模型本身,而是“谁来组织实验”这件事。