Understand the Scope
For example,
--task-concurrency 8 with cpus: 2 may request up to approximately 16 task CPUs when eight Docker
containers are active. Benchmarks that create a fresh verifier sandbox can temporarily keep both task and verifier
environments alive within one attempt, so leave headroom rather than sizing the host to the exact product.
Provider Resource Fields
Resource schemas intentionally follow each provider API instead of forcing different providers into one lossy common format.
Use
agentcompass config docs env <provider> against the installed revision to inspect the exact accepted fields and
defaults. Provider pages explain mutually exclusive options and operational constraints that the generated schema
cannot capture.
Configure Docker
Set a two-core, 6 GiB container and disable swap by making the combined memory-plus-swap limit equal to the memory limit:memory_swap requires memory. Use -1 only when unlimited swap is intentional. A storage limit such as
{"storage_opt":{"size":"20g"}} works only with Docker storage drivers that support per-container size options.
Configure Daytona
Daytona uses oneresources object. CPU and GPU values are counts; memory and disk values are GiB:
cpus, storage, and gpus as aliases inside the object, but the canonical singular keys
above make the provider units clearest. A request can still fail when the selected Daytona target does not offer that
shape or the account has insufficient quota.
Configure Modal
For common fixed requests, use the top-level fields:resources mapping supports aliases such as
cpu, cpus, memory, memory_mb, memory_gb, gpu, and gpus; explicit top-level cpu, memory, and gpu
values take precedence over their mapping equivalents.
Follow Recipe and Override Precedence
Compatible recipes can translate benchmark task metadata into provider resource fields. For example, a task may define CPU and memory in its benchmark metadata while the Docker, Daytona, and Modal recipes convert those values into their provider-specific units. Explicit compatible--env-params values retain priority over recipe defaults. This gives two useful modes:
- omit resource fields to reproduce the benchmark or recipe-provided task shape; or
- pass deliberate overrides when testing another resource profile.
run_info.json or the resolved execution plan in each task detail to confirm the values used after recipe
adaptation. Record overrides in an alignment report because a lower memory limit, different GPU, or CPU throttling can
change completion rates and scores.
Choose Safe Values
- Start with the benchmark’s official resource metadata or its AgentCompass recipe.
- Run one representative task and observe peak memory, CPU saturation, disk growth, startup time, and verifier use.
- Add reasonable headroom for package installation, compilation, caches, and transient verifier processes.
- Estimate aggregate capacity as per-sandbox resources multiplied by active sandboxes, then set task and provider concurrency below the endpoint and host/provider limits.
- Increase concurrency gradually; reduce it when startup failures, OOM kills, throttling, or queueing appear.
Diagnose Resource Failures
See agentcompass run for concurrency and retries, and
Troubleshooting Runs for phase-based diagnosis.
