Autoresearch实战第一课:25轮迭代把测试覆盖率从72%提升到90%
【免费下载链接】autoresearchClaude Autoresearch Skill — Autonomous goal-directed iteration for Claude Code. Inspired by Karpathy's autoresearch. Modify → Verify → Keep/Discard → Repeat forever.项目地址: https://gitcode.com/gh_mirrors/auto/autoresearch
Autoresearch 是一款开源的 Claude Code 自主迭代技能,核心玩法是:定目标 → 定指标 → 让 AI 循环"修改→验证→保留/回滚"直到达标。本文是一堂实战第一课:用 25 轮自动迭代,把一个项目的测试覆盖率从 72% 一路推到 90%,全程无需人工盯着。
为什么你需要 Autoresearch 这个自动迭代引擎 🚀
手动补测试是最枯燥的活:写完一批 → 跑一遍 → 发现挂了就回退 → 重来。Autoresearch 把这套流程完全机械化:
- 每轮只做一个原子改动,改完立即用机械指标验证
- 指标变好就保留,变差自动
git revert回滚,绝不留下坏代码 - git 就是它的记忆:每轮实验都提交为
experiment:前缀的 commit,下一轮它会自己读历史,决定"什么有效、什么该避免、什么还没试过"
这正是 Karpathy autoresearch 的核心思想——约束 + 机械指标 + 自主迭代 = 复利式提升,而 Autoresearch 把它推广到了任何可度量的场景(详见 COMPARISON.md)。
一键安装步骤:两条命令搞定 📦
在 Claude Code 里推荐用 npx 安装:
npx skills add uditgoenka/autoresearch安装后重启 Claude Code,14 个/autoresearch系列命令即可全部使用。
如果你偏好手动安装,可以克隆仓库后运行引导式安装脚本:
git clone https://gitcode.com/gh_mirrors/auto/autoresearch cd autoresearch ./scripts/install.sh --claude --global完整的安装说明见 guide/getting-started.md,脚本源码在 scripts/install.sh。
实战第一课:提升测试覆盖率的完整配置 ✍️
第一课选择最经典的目标——提升测试覆盖率。在 Claude Code 里输入:
/autoresearch Goal: Increase test coverage from 72% to 90% Scope: src/**/*.test.ts, src/**/*.ts Metric: coverage % (higher is better) Verify: npm test -- --coverage | grep "All files" Iterations: 25只有 5 个字段,却是全部关键:
| 字段 | 作用 | 一句话技巧 |
|---|---|---|
| Goal | 用自然语言描述目标 | 带上具体数字(72% → 90%) |
| Scope | AI 允许修改的文件范围 | 范围越小越安全 |
| Metric | 被追踪的指标 + 方向 | 必须是能输出的"一个数字" |
| Verify | 跑一遍输出该指标的 shell 命令 | 一条命令、干净地提取一个数 |
| Iterations | 迭代轮数(默认 25) | 陌生项目先用Iterations: 10试水 |
每轮迭代到底发生了什么 🔍
25 轮迭代,每一轮都在重复同一个闭环:
- 读状态— 读代码库、git 历史、上轮结果日志
- 选改动— 基于历史挑"影响最大的一步"(比如第 1 轮补认证边界测试,第 7 轮补支付错误处理)
- 做改动— 只做一个改动,一句话能解释清楚
- 提交— 先 commit,保证随时可干净回滚
- 验证— 跑
Verify命令,提取覆盖率数字 - 裁决— 指标提升 →keep;指标变差 → 自动 revert;崩溃 → 修复或跳过
- 记录— 把结果写进 TSV 日志,进入下一轮
完整协议见 guide/autoresearch.md。
读懂结果日志:25 轮的"账本" 📊
所有迭代都会记录成一张 TSV"账本",25 轮跑完大概长这样:
| iteration | commit | metric | delta | status | description |
|---|---|---|---|---|---|
| 0 | a1b2c3d | 72.0 | 0.0 | baseline | 初始状态 |
| 1 | b2c3d4e | 74.1 | +2.1 | keep | 补认证边界测试 |
| 2 | - | 73.5 | -0.6 | discard | 重构测试工具(挂了 2 个用例,已回滚) |
| 7 | c3d4e5f | 80.3 | +1.2 | keep | 补错误处理测试 |
| … | … | … | … | … | … |
| 25 | f4e5d6c | 90.2 | +0.5 | keep | 补并发场景测试,达标收工 |
跑完后执行/autoresearch:evals,它会自动分析这张表:趋势如何、是否进入平台期、哪一轮贡献最大、建议继续还是收手(用法详见 guide/autoresearch-evals.md)。
防翻车技巧:加一道 Guard 护栏 🛡️
提升覆盖率时 AI 可能为了凑数字而"改坏"现有行为。加一行Guard(护栏命令)即可:
Guard: npm test规则很简单:Verify 回答"指标变好了吗",Guard 回答"别的东西坏了吗"。若指标提升但护栏挂了,AI 会立即回滚并重做(最多 2 次),两次都失败就丢弃这轮、继续下一轮。护栏和测试文件本身永远不被 AI 修改。
给新手的 5 个上手建议 💡
- 先跑 10 轮校准:陌生代码库先
Iterations: 10,看结果顺眼再放大到 25 甚至unlimited - Verify 要"紧":一个数字、用
grep/awk干净提取,别给 AI 模糊的判据 - 手动跑一次 Verify:开跑前自己跑一遍,心里有基线数字
- 跑完看 git log:每个实验都有 commit 记录,任何一步都可以单独
git revert - 不知道指标定什么:先跑
/autoresearch:plan,它会帮你把模糊目标变成经过 dry-run 验证的完整配置
常见问题速答 ❓
Q:中途想停怎么办?A:Ctrl+C即可。因为 AI 是先提交再验证,所以你的最后一个成功状态永远安全地留在 git 里。
Q:25 轮没跑满 90% 怎么办?A:看 evals 报告——如果是平台期,可以扩 Scope 或换策略再开一轮;历史日志会自动成为下一轮的"经验"。
Q:除了覆盖率还能优化什么?A:任何有数字的场景:包体积、p95 延迟、lint 错误数,甚至 SEO 分数。示例大全见 README.md 的 Commands 章节和 guide/examples-by-domain.md。
总结:Autoresearch 的第一课只有 5 个字段,却交付了一套"永不放弃、绝不留烂账"的自动优化引擎。给它一个目标和一把尺子,然后去喝杯咖啡——回来时,覆盖率报表已经是 90% 了。☕
【免费下载链接】autoresearchClaude Autoresearch Skill — Autonomous goal-directed iteration for Claude Code. Inspired by Karpathy's autoresearch. Modify → Verify → Keep/Discard → Repeat forever.项目地址: https://gitcode.com/gh_mirrors/auto/autoresearch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考