SWE-bench Pro
A harder public software-engineering agent benchmark built around professional repository tasks.
SWE-bench Pro is run via Scale AI's official open-source harness (scaleapi/SWE-bench_Pro-os) against the public ScaleAI/SWE-bench_Pro dataset (single 731-instance test split). You generate patches with your own model/agent (the repo ships SWE-agent and mini-swe-agent as submodules producing .pred files), collate them into a JSON with helper_code/gather_patches.py, then grade them in per-instance prebuilt Docker images via swe_bench_pro_eval.py (Modal by default, or local Docker with --use_local_docker). Keep attached to any score: the harness commit, the scaffold used to generate patches (SWE-agent / mini-swe-agent / your own agent), whether you ran Modal or local Docker, and that it was the public test split.
1Install
git clone --recurse-submodules https://github.com/scaleapi/SWE-bench_Pro-os.gitcd SWE-bench_Pro-ospip install -r requirements.txt# Install Docker (see https://docs.docker.com/engine/install/)
modal setup # follow prompts to generate your token (verify token_id/token_secret/active=true in ~/.modal.toml); or skip and use --use_local_docker (beta) with a local Docker install2Run evaluation
# Step 1: Generate patches with your model. Follow the bundled SWE-agent (or mini-swe-agent) git submodule instructions to run your model on the SWE-bench Pro instances; it produces a '.pred' file per instance (e.g. under swe_bench_pro_results/sample1/).
# Step 2: Collate the per-instance .pred files into a single predictions JSON
python helper_code/gather_patches.py --directory swe_bench_pro_results/sample1 --prefix sample1 --output sample1_patches.json3Score output
# Score predictions against the gold tests in per-instance Docker images (Modal by default; add --use_local_docker for local Docker)
python swe_bench_pro_eval.py --raw_sample_path=swe_bench_pro_full.csv --patch_path=sample1_patches.json --output_dir=eval_output --scripts_dir=run_scripts --num_workers=100 --dockerhub_username=jefzda# Optional sanity check: extract the dataset's gold patches and confirm they resolve
python helper_code/extract_gold_patches.py --output gold_patches.json4Expected output
swe_bench_pro_eval.py runs each patch in a Modal (or local Docker) sandbox using the per-instance Docker Hub images, executes the run_scripts tests, and calculates overall accuracy from test pass/fail status. An instance counts as resolved only if its fail_to_pass tests now pass and its pass_to_pass tests still pass; the headline metric is the Resolve Rate (% of instances resolved), written per-instance to --output_dir. Report it only against the SWE-bench Pro public test split (731 instances); do not compare it to SWE-bench / SWE-bench Verified resolve rates, which use a different instance set.
5Submit results
There is no automated submission endpoint in the repo; the public leaderboard is at scale.com/leaderboard/swe_bench_pro_public (Scale AI curates entries; there is also a private commercial leaderboard at labs.scale.com/leaderboard/swe_bench_pro_private). When reporting a self-run score, attach: the harness commit of scaleapi/SWE-bench_Pro-os, the exact scaffold used to generate patches (the bundled SWE-agent vs mini-swe-agent vs a custom agent) since the metric is scaffold-dependent, whether evaluation ran on Modal or local Docker, the dataset split (public test, 731 instances), and the dockerhub image source (jefzda/sweap-images). Run the gold-patch path first to confirm your environment scores known-good patches correctly.