用途:让 LLM 充当完全自主的研究者,针对单个训练脚本持续做实验,优化一个标量指标(越低越好,如 val_bpb)。每次实验在固定预算(墙钟时间或固定 epoch 数)下运行,指标改善则保留改动并推进分支,否则回退,循环直到人工中断。
主要能力:只编辑 <editable_files>(模型结构、优化器、超参数、训练循环、batch size、模型大小等),其余文件只读;通过 <run_cmd>(如 uv run train.py)在用户环境中运行,不安装任何包、不新增依赖;从日志中用 grep "^<metric>:" run.log 读取指标;结果记录到 <sandbox_root>/results.tsv(制表符分隔,含 commit、metric、memory_gb、status、description 五列,不提交)。
使用方式:先交互式解析绑定并写入 loop.run.yaml,选择迭代策略 branches(每次运行一个 git commit)或 snapshots(每次运行一个 <sandbox_root>/iter<N>/ 文件夹,默认);branches 模式创建 git checkout -b autoresearch/<tag> 分支;阅读 README、只读评测 harness 与可编辑文件;确认环境与数据可用;初始化 results.tsv 表头;首次运行建立基线,随后按“改代码—提交—运行—读指标—记录—保留或回退”的清单无限循环。
适用场景:希望无人值守地让智能体在单一训练脚本上持续调优一个标量指标。
限制:不得修改只读 harness 或评测;不得安装新包或加依赖;每次只改一处以便归因;运行超时(超过 2 倍预算)视为失败并回退;崩溃需判断是简单错误还是思路本身有问题;VRAM 为软约束;同等条件下更简单的方案优先。不适用于先分析数据再改动的 ml-autoresearch 变体。循环开始后不应主动询问是否继续。