承诺治疗基准
该项目对编码代理进行了基准测试,事实上,这些代理得到了有益的增强 上下文或MCP工具,它们组织混乱的工作树的能力 将未声明的更改转换为范围良好的原子提交。
目标
- 度量原子性准确性(预期提交的覆盖率)
- 衡量令牌和时间效率
- 跨场景比较真实和模拟候选工具
- 帮助证明及时的策略或MCP工具针对问题进行了调整
提供利益。
快速开始
pdm install
# Step 1: run each candidate tool into a named session
pdm run benchmark-run --session sessions/baseline scenarios/s01_easy tools/mock_perfect.sh
pdm run benchmark-run --session sessions/baseline scenarios/s01_easy tools/mock_one_big_commit.sh
pdm run benchmark-run --session sessions/baseline scenarios/s01_easy tools/mock_wrong_split.sh
# Step 2: evaluate the session (score against spec)
pdm run benchmark-eval sessions/baseline
# Step 3: generate HTML report
pdm run benchmark-report --out report_site/index.html
open report_site/index.html结构
scenarios/--可复制的凌乱仓库生成器,每个都有setup.sh和spec.jsontools/--候选工具脚本(模拟或真实代理包装器)harness/--跑步者、评估者和记者sessions/--累计运行输出(每次运行git repos+meta.json,每次会话eval.json)report_site/--生成的HTML报告
评分
每个场景的 spec.json 声明 intended_commits 随着 line_matchers.评估员 检查哪些添加的行出现在每个实际提交的差异中,并构建严格的1:1匹配:
| 工具 | 预期覆盖范围 |
|---|---|
| 模拟完美 | 1.0 |
| mock_one_big_comit | 0.0 |
| mock_wrong_split | 0.5 |
添加新场景
- 创建
scenarios/sNN_name/setup.sh--使用初始提交初始化git仓库,然后在工作树中留下混乱的更改。 - 创建
scenarios/sNN_name/spec.json--声明intended_commits随着line_matchers.
添加新工具
创建 tools/my_tool.sh。脚本在cwd设置为准备好的仓库的情况下运行,应生成一个或多个 git commits
