ScaleAI/SWE-bench_Pro 的公开 test 数据划分,因此单次运行实际可见的任务数跟随该公开数据集版本。
工作原理
每个任务分为独立的推理和评测阶段:- 加载并准备任务:AgentCompass 从数据集中读取
instance_id、仓库、基础提交、问题陈述、要求以及新引入的接口。provider Recipe 通常会选择任务预构建镜像,并在/app暴露仓库。 - 运行编程 agent:mini-SWE-agent 或 OpenHands 等 Harness 接收问题描述,在检出目录后的仓库中修改代码。使用标准 Recipe 时,最终统一差异补丁必须写入
/app/patch.txt。 - 启动全新的评测环境:推理工作区的改动不会直接用于评测。AgentCompass 从任务镜像启动新环境,把
/app重置到base_commit,再应用被测补丁。 - 运行官方实例脚本:Benchmark 从本地
run_scripts/<instance_id>/加载该任务的run_script.sh与parser.py;缺失时从SWE-bench_Pro-os下载。解析器把测试日志转换为结构化结果。 - 判定是否解决:只有所有要求的
FAIL_TO_PASS与PASS_TO_PASS测试都出现在已通过测试集合中,任务才是resolved=true。
参数
通过--benchmark-params '{...}' 传入 Benchmark 配置,或写入 --config 指定 YAML 的 benchmark.params;同名字段以命令行为准。
参数总览
| 参数 | 类型 | 默认值 | 可选值 / 取值 | 说明 |
|---|---|---|---|---|
prepare_mode | 字符串 | git_clone | git_clone / prebaked | 推理仓库的准备方式;内置 provider Recipe 通常会改为 prebaked。 |
workspace_root | 字符串 | /app | 环境内绝对路径 | Recipe 覆盖前用于创建任务工作区的根目录。 |
dataset_zip_url | 字符串 | "" | ZIP URL | 用于修复损坏本地数据的可选镜像;为空时使用 Hugging Face 数据集。 |
repo_url_template | 字符串 | https://github.com/{repo}.git | 包含 {repo} 的模板 | git_clone 模式使用的仓库克隆 URL。 |
scripts_dir | 字符串 | "" | 本地目录 | 控制器侧包含 <instance_id>/run_script.sh 与 parser.py 的目录;为空时解析为数据目录下的 run_scripts/。 |
dockerfiles_dir | 字符串 | "" | 本地目录 | 控制器侧官方 Dockerfile 根目录,用于恢复任务环境变量;为空时从数据目录解析。 |
evaluation_repo_dir | 字符串 | /app | 环境内绝对路径 | 评测镜像内的仓库路径;内置 Recipe 保持为 /app。 |
evaluation_workspace_dir | 字符串 | /app | 环境内绝对路径 | 评测时写入补丁、脚本、日志与解析器输出的目录。 |
eval_timeout | 整数 | 3600 | 整数 ≥ 1 | 官方评测命令超时,单位为秒。 |
sample_ids | 列表 / 字符串 / 空值 | null | 有效实例 ID | 可选的精确任务过滤;出现未知 ID 时直接报错。 |
k | 整数 | 1 | 整数 ≥ 1 | 每个任务的独立尝试数。 |
avgk | 布尔值 | true | true / false | k > 1 时是否报告 avg@k。 |
agentcompass run 的第三个位置参数,不属于 --benchmark-params。本 Benchmark 固定加载公开 test 数据划分,不提供 split 参数。
推理、model 与评测控制
eval_timeout 只控制补丁回收后在全新环境中执行的 run_script.sh 与解析器评测,不能延长推理阶段。思考/推理应写入 --model-params;具体协议/provider 格式见 mini-SWE-agent 或 OpenHands。
运行示例
请把<instance-id> 替换为公开数据集中的 instance_id。
推荐 Harness
mini-SWE-agent 是 SWE-bench Pro 的推荐 Harness。它使用 Benchmark 专属的 mini-SWE-agent 配置,并在任务环境中执行仓库命令。- 冒烟测试(单条跑通)
- 自定义参数
- AgentCompass 推荐配置
运行一个任务,验证推理、补丁回收与官方评测的完整链路。
其他可选 Harness
也可以使用 OpenHands。下面的单任务命令分别配置 model 请求、终端命令、agent 循环、整题推理和评测限制:输出
聚合指标(summary.md)
聚合结果写入summary.md。主指标 accuracy 是 resolved=true 的已评测任务比例;k > 1 时还会报告框架通用的 pass@k 与可选 avg@k。详见结果。
单任务详情(details/)
单任务详情写入results/swebench_pro/<model>/<run>/details/。尝试记录包含:
status=COMPLETED 本身并不等于问题已经解决。是否解决应看 correct / extra.eval_raw_data.resolved;运行、解析器或评测失败则结合 error 与两个 extra 字段排查。