runtime and execution; provider defaults live under environments.<provider>; benchmark filters live under benchmarks.<id>; harness controls live under harnesses.<id>.
This split is intentional. It lets you change the sandbox provider without editing benchmark code, tune a harness without changing dataset selection, and keep model credentials as run-local inputs.
Where Values Come From
| Source | Typical use |
|---|---|
config/defaults.yaml | Repository-wide defaults for runtime, execution, providers, benchmarks, harnesses, and analysis. |
Custom --config file | Private credentials, site-specific provider endpoints, or team-level overrides. |
| CLI flags / Python kwargs | Per-run overrides such as --env, --task-concurrency, model endpoint, and --benchmark-params. |
| Recipes | Provider-aware rewrites for task images, workspaces, snapshots, and resources before sandbox startup. |
Common Controls
| Need | Field or flag |
|---|---|
| Change result location | runtime.results_dir or --results-dir |
| Change dataset/cache location | runtime.data_dir or --data-dir |
| Limit per-run task parallelism | execution.task_concurrency or --task-concurrency |
| Limit provider sessions globally | runtime.provider_limits.<provider> |
| Run a subset of tasks | --benchmark-params '{"sample_ids":["<task-id>"]}' |
| Enable or skip post-analysis | execution.enable_analysis or CLI analysis flags |
| Select recipe behavior | execution.enabled_recipes |
| Load trusted external recipes | runtime.recipe_dirs or repeatable --recipe-dir |
Scoped Params
Provider params belong underenvironments.<provider>:
benchmarks.<benchmark_id>:
harnesses.<harness_id>:
Private Config Files
Use a private config file when values are stable for your machine or team but should not be committed.MODAL_TOKEN_ID and MODAL_TOKEN_SECRET; Daytona can use DAYTONA_API_KEY; model access can use MODEL_BASE_URL and MODEL_API_KEY.
Full Reference
The complete field-by-field index for the currentconfig/defaults.yaml lives in Configuration Reference.