Skip to main content
Use Task configuration for examples. This page lists the task.toml fields accepted by Evolve. Fields are optional unless marked required; unknown fields are rejected, except for custom [metadata] keys and the untyped descriptive values identified below.
This validates configuration without building images. File layout, image contents, provider compatibility, and runtime checks also apply.

Document fields

The host-agent dependency implied by allow-agent-host is unsupported. Task keys are 1–128 characters, contain only letters, digits, ., _, and -, and must begin with a letter or digit.

Agent

A named account must already exist, with a usable home directory and su. Only the agent runs as this user; the verifier runs as root. agent.load_trajectory and agent.resume_trajectory are rejected: use the supported task-level trajectory.json file described in Task configuration.

Environment

These fields belong under [environment]. They are also accepted under [verifier.environment], with the different inheritance rules described in Verifier. Resource ceilings describe import validation, not availability on every provider. Use Sandboxes and the provider catalog to choose supported CPU, memory, storage, GPU, and network settings.
environment.env values are literals or whole-value references such as "${TOKEN}" and "${TOKEN:-fallback}". References resolve against the secrets explicitly attached to the job under that environment name. They do not read the publisher’s shell or unrequested vault secrets. Missing required attachments reject job creation; a declared fallback supplies the literal default.Embedded references such as "Bearer ${TOKEN}" and reserved credential/routing variable names are rejected. The image’s startup command receives literals; secret references are delivered to the agent and its child processes. Healthchecks do not receive secret references, and single-container healthchecks do not receive the literal table either. See Secrets.A skills_dir that exists only inside an opaque prebuilt image cannot be captured. TPU fields (tpu, tpu_type, tpu_topology) and non-Linux operating systems are rejected.
Each [[environment.mcp_servers]] entry accepts:Remote servers must be reachable under the task’s agent network policy and service topology. Per-server env and headers fields are not accepted. See Task environment for setup examples.
Both [environment.healthcheck] and [steps.healthcheck] accept:The environment check runs before the agent. A step check runs after that step’s workdir files and setup.sh are applied, before its agent call. These fields use seconds.

Verifier

[verifier.environment] accepts the shared Environment fields above, plus os = "linux", an empty env table, and an empty mcp_servers array. Nonempty environment variables or MCP servers are rejected here; put verifier variables under [verifier.env]. skills_dir and healthcheck are not accepted in the verifier environment.With no verifier environment table, separate mode inherits the task environment configuration. With a declared table, omitted CPU, memory, and storage values inherit task sizing, but omitted GPUs mean 0, the network baseline defaults to public, and workdir resolves from the verifier’s own Dockerfile or /app. An explicit shared mode uses the existing agent box; it does not create or resize a verifier box.Image selection and test delivery depend on the presence of tests/Dockerfile and whether the verifier uses its own image. Follow the verifier environment rules; a dedicated prebuilt verifier image must already contain /tests/test.sh.verifier.env accepts literals and whole-value judge credential references. A judge reference such as "${ANTHROPIC_API_KEY}" requests the managed judge credential; its fallback, if supplied, is ignored. Other references require a fallback, such as "${JUDGE_MODEL:-my-model}", and resolve to that literal fallback. Embedded references and non-judge references without a fallback are rejected. Job-attached agent secrets do not satisfy verifier references. The same rules apply to steps.verifier.env.Supported judge reference names are ANTHROPIC_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_BASE, ANTHROPIC_BASE_URL, OPENAI_API_BASE, and OPENAI_BASE_URL.verifier.allow_internet is rejected; use network_mode or the legacy field inside an environment table.

Artifacts and collection

artifacts and steps.artifacts accept absolute POSIX path strings or tables with the following fields. See saving outputs and Compose for complete recipes. Root artifact declarations transfer files to a separate verifier and export retained files in the job archive. Shared verification reads the existing sandbox and does not export this artifact list; use the sandbox files to inspect live or captured files. Step artifact declarations do not create per-step snapshots. Without destination, downloaded paths mirror the source path with its leading / removed. Excludes match at any path-component boundary; * and ? stay within a component, while ** crosses /. Matching a directory excludes its descendants. Separate verification restores transferred files to their original absolute paths, independent of download destinations.
Each [[verifier.collect]] entry accepts:Main-service hooks run before main artifacts are downloaded. Sidecar hooks then run before sidecar artifacts are downloaded. Separate verification stops the main service before sidecar hooks; shared verification keeps it running. Per-step collection hooks are not supported.

Multi-step fields

Every [[steps]] entry uses the same shared environment. See Multi-step tasks for the directory layout, setup order, and reward calculation. Steps cannot override the agent user or either phase’s network policy. Per-step verifier environment, environment_mode, and collect are rejected. Multi-step tasks cannot use Compose or separate verification. Every declared step needs a matching steps/<name>/instruction.md and an effective tests/test.sh from the root/step test files; undeclared step directories are rejected.