test split of ScaleAI/SWE-bench_Pro; the number of tasks available to a run therefore follows that public dataset release.
How it works
A task has separate inference and evaluation stages:- Load and prepare. AgentCompass reads
instance_id, repository, base commit, problem statement, requirements, and any newly introduced interface from the dataset. A provider recipe normally selects the task’s prebaked image and exposes its repository at/app. - Run the coding agent. A harness such as mini-SWE-agent or OpenHands receives the issue and edits the checked-out repository. It must write the final unified diff to
/app/patch.txtwhen using the standard recipe layout. - Start a fresh evaluation environment. Inference changes are not trusted as the evaluation workspace. AgentCompass starts a new environment from the task image, resets
/apptobase_commit, and applies the patch. - Run the official instance scripts. The benchmark loads the task’s
run_script.shandparser.pyfrom the localrun_scripts/<instance_id>/tree, downloading missing scripts fromSWE-bench_Pro-os. The parser turns test logs into structured results. - Decide resolution. A task is
resolved=trueonly when every requiredFAIL_TO_PASSandPASS_TO_PASStest appears in the passed-test set.
Parameters
Pass benchmark configuration via--benchmark-params '{...}', or through benchmark.params in a YAML file given to --config; the CLI wins on shared keys.
Parameter reference
| Parameter | Type | Default | Choices / values | Description |
|---|---|---|---|---|
prepare_mode | string | git_clone | git_clone / prebaked | How the inference repository is prepared. Built-in provider recipes normally replace this with prebaked. |
workspace_root | string | /app | absolute environment path | Root used for task workspaces before recipe overrides. |
dataset_zip_url | string | "" | ZIP URL | Optional dataset mirror used to repair a broken local dataset. Empty uses the Hugging Face dataset. |
repo_url_template | string | https://github.com/{repo}.git | template containing {repo} | Repository clone URL used in git_clone mode. |
scripts_dir | string | "" | local directory | Controller-side directory containing <instance_id>/run_script.sh and parser.py. Empty resolves to the data directory’s run_scripts/. |
dockerfiles_dir | string | "" | local directory | Controller-side official Dockerfile root used to recover task environment exports. Empty resolves under the data directory. |
evaluation_repo_dir | string | /app | absolute environment path | Repository path in the evaluation image; recipes keep it at /app. |
evaluation_workspace_dir | string | /app | absolute environment path | Directory where the patch, scripts, logs, and parser output are staged during evaluation. |
eval_timeout | int | 3600 | integer ≥ 1 | Timeout for the official evaluation command, in seconds. |
sample_ids | list / string / null | null | valid instance ids | Optional exact task filter. Unknown ids fail fast. |
k | int | 1 | integer ≥ 1 | Number of independent attempts per task. |
avgk | bool | true | true / false | Whether to report avg@k when k > 1. |
agentcompass run, not a --benchmark-params field. This benchmark does not expose a split parameter: it loads the public test split.
Inference, model, and evaluation controls
eval_timeout controls only the fresh run_script.sh and parser evaluation after patch collection. It cannot extend inference. Thinking/reasoning belongs in --model-params; use the protocol/provider form documented for mini-SWE-agent or OpenHands.
Run examples
Replace<instance-id> with an instance_id from the public dataset.
Recommended harness
mini-SWE-agent is the recommended harness for SWE-bench Pro. It uses the benchmark-specific mini-SWE-agent configuration and executes repository commands in the task environment.- Smoke test (single task end-to-end)
- Custom parameters
- AgentCompass recommended config
Run one task to verify inference, patch collection, and official evaluation end to end.
Other optional harnesses
OpenHands is also supported. The following single-task command exposes its independent model-request, terminal-command, agent-loop, whole-task, and evaluation limits:Outputs
Aggregate metrics (summary.md)
Aggregate results are written tosummary.md. The primary metric is accuracy, the fraction of evaluated tasks with resolved=true; when k > 1, framework-generic pass@k and optional avg@k are also reported. See Results.
Per-task details (details/)
Per-task detail JSON files are written underresults/swebench_pro/<model>/<run>/details/. The attempt record contains:
status=COMPLETED does not by itself mean the issue was solved. Use correct / extra.eval_raw_data.resolved for resolution, and inspect error plus the two extra blocks for run, parser, or evaluation failures.