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. |
sample_ids | list / string / null | null | valid instance ids | Optional exact task filter. Unknown ids fail fast. |
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
agentcompass run takes three positional arguments in order: Benchmark, Harness, and Model. The examples use swebench_pro; harness choices are described below.
Before running, make sure local Docker is available and set MODEL_NAME, MODEL_BASE_URL, and MODEL_API_KEY to the model under test, API endpoint, and API key.
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 command evaluates the full dataset and exposes its independent model-request, terminal-command, agent-loop, whole-task, and evaluation limits:Evaluation Results
For shared result conventions, see Run Directory, Aggregate Scores, and Task Files and Shared Fields.Scoring Metrics
SWE-bench Pro’s primary metric is binarycorrect, matching the evaluator’s resolved decision. Resolution follows the test rules in How It Works; there is no partial credit.
With the default configuration, each task has one attempt and the overall score is the issue resolution rate over tasks with valid scores, ranging from 0 to 1; higher is better.
See Metrics and Aggregation for repeated attempts, category aggregation, and scoring failure rules.
Task Results and Scoring Evidence
final_answer contains the unified diff patch submitted to the evaluator. eval_raw_data under meta.benchmark preserves scoring evidence, with these fields when available:
