-e to request E2B, Daytona, or Modal; the default is Daytona.
Task requirements come first
Evolve checks the requested provider against the task’s image, resources, network policy, Compose services, and GPUs. A fallback is recorded assandbox_provider_degrade on the trial. The requested provider on the job and the actual provider on a trial can differ.
If no provider can satisfy the task, Evolve rejects the configuration.
Supported configurations
Network allowlist kinds and resource ceilings also differ. The live
meta() document publishes these constraints. Daytona disk and GPU limits depend on the platform’s live provider quota.
A temporary capacity shortage can put a trial back in the queue even with
--max-retries 0. Capacity waits are bounded and separate from ordinary retry attempts.Your own provider account
Add--own-infra to run trial sandboxes in your E2B, Daytona, or Modal account. The CLI reads the provider’s credentials from your shell, or uses stored secrets when a variable is absent.
This option requires server support. If the server returns
feature_unsupported, omit --own-infra to use Evolve’s account.
Daytona also accepts
DAYTONA_API_URL on a daytona.io host and DAYTONA_TARGET of us (default) or eu. Custom regions are not supported.
The job records
sandbox_account: own. Its regrades retain that attribution, but analysis, checks, and regrade sandboxes run on Evolve’s account. The SDK equivalent is sandbox_credentials on jobs().start().
You can access your provider’s sandboxes, including hidden tests and reward files. This access affects the trust others can place in the scores.
Replace or remove credentials
Replace or remove credentials
Deleting a credential makes the remaining trials of jobs using it fail. Those jobs do not switch to Evolve’s account.If your shell holds a different value from the stored secret, the request is refused. Unset the variable to use the stored key. To rotate it, wait for your own-account jobs to finish, delete the stored key with
evolve secrets delete, then run with the new value.Sandbox cleanup and reusable images
Sandbox cleanup and reusable images
Evolve ends each sandbox when its trial ends or is stopped. If normal cleanup fails, the provider lifetime applies: the trial time budget plus a margin on E2B and Modal, or Daytona’s auto-stop followed by deletion.Reusable images remain in your account:
You can delete these in your provider console. A later job rebuilds what it needs.
Images and startup
Dataset publication prepares task images. A provider may also need to prepare its own cached image or snapshot before the first trial. That first start can take longer than later trials using the cache. Resources come from the task’stask.toml. See task configuration for defaults and how to request CPUs, memory, disk, and GPUs.
GPU costs
GPU compute is shown as an estimate, separate from model spend:
An unavailable estimate includes
unpriced_reason. Do not add this estimate to the metered model cost and present it as the same charge.
Analysis and checks
These operations also use sandboxes. Choose their provider with-e on evolve analyze or evolve check, or --analyze-provider for analysis attached to a run. Their default is Daytona, but server defaults can differ. Read the resolved provider through the SDK defaults.
