tests/.
Choose an image source
- Dockerfile
- Prebuilt image
- Multiple containers
environment/Dockerfile
environment/, so COPY paths are relative to that directory.Working directory and user
The first available working directory wins:
When a prebuilt-image task declares
environment.skills_dir and supplies those skill files under environment/, set workdir explicitly or use /app. Evolve does not substitute the image’s working directory in this case. The directory is recorded at publication; republish the same version label to update it.
Harbor and separate-verifier differences
Harbor and separate-verifier differences
Harbor’s Docker environment also uses inherited and prebuilt-image working directories. When the image declares no directory or uses
/, Harbor runs at /; Evolve uses /app.A separate verifier resolves its directory in this order:-
[verifier.environment].workdirwhen that table exists, otherwise[environment].workdir. -
WORKDIRintests/Dockerfileor the image it starts. - The image’s own working directory.
-
/app.
[agent].user to select an existing username. Otherwise, the parsed Dockerfile’s USER applies, with root as the fallback. Use root or 0 for root; other numeric UIDs and user:group declarations are rejected. The named user must already exist in the image, and the image must include su. Evolve prepares the user’s home before running the agent. Non-root users require a built-in harness; registered custom agents do not support them.
task.toml
Start a service
An image’sENTRYPOINT runs before the agent starts. CMD is not used as the task command; keep-alive entrypoints such as sleep infinity do not start a service.
Add a healthcheck when the agent must wait for a service:
task.toml
0. Exhausted retries fail the trial before the agent runs. The values above are the defaults; only command is required.
A separate verifier cannot reuse an agent image that starts a service. Give it its own verifier image, or use shared verification.
Add MCP tools
Declare servers intask.toml for a built-in harness with MCP support. Registered custom agents and mini-swe-agent do not support task MCP servers.
npx or uvx needs network access. stdio processes inherit the task environment variables and do not accept a separate env field.
Supported scope
Evolve runs headless Linux tasks. It does not provide a desktop, display server, Windows environment, or Apptainer runtime.Configure the task
Set resources, timeouts, and network access.

