Get the code
Add your secrets
Create.env at the repository root with your provider settings and the secrets your
agents declare:
.env
API_KEY: your Daytona API keyTOKEN_IDandTOKEN_SECRET: your Modal token’s ID and secretOPENAI_KEY: an example agent secret, here an OpenAI API key
DAYTONA_* or MODAL_TOKEN_* variables.
Start the Tracker
From the repository root:http://127.0.0.1:8000. Runs use the code in your checkout, including retries and resumes
after you change it. If you restart the Tracker while tasks are waiting to start, retry the
run afterwards.
The default settings are in local-server.yaml at the repository root:
local-server.yaml
make local-tracker CONFIG=CONFIG_FILE,
where CONFIG_FILE is its path. Relative paths in it resolve from its folder.
Choose a benchmark service
Use one of these:-
A service Vals AI hosts. Start the Tracker with the hosted services’ domain, and set
VALKYRIE_API_KEYin the CLI’s environment to a Valkyrie access key that can use the benchmark: -
Your own service, on your machine or at any URL. Run it
without authentication and save its
URL:
Start a run
--provider or a default provider,
runs use daytona. Every other valkyrie run command works against the local Tracker,
which serves artifacts over HTTP, so the CLI doesn’t need access to data_root. Retries,
resumes, and forced stops use the provider and secrets file saved on the run.
Docker sandboxes
Docker runs each task in a container on the daemon that the Tracker and your benchmark service share. Select the daemon withDOCKER_HOST, and pass --provider docker or set it as
your default with valkyrie provider default docker.
-
Services Vals AI hosts can’t use Docker sandboxes. Start your own service with
CBS_DOCKER_ENABLED=true, built with the create-benchmark-service version thatservices/tracker/pyproject.tomlpins. -
Docker can’t change network access between stages, so the benchmark and the agent must
allow unrestricted (
"*") access in every stage. Allowlists are refused before a container starts. - Containers can’t run Docker themselves.
-
If the Tracker stops mid-run, the run’s containers keep running. To remove them, run the
following, replacing
RUN_IDwith the run’s ID:
Reset local state
Run records live in the PostgreSQL Docker volume and run files underdata_root. Delete
both together, or the remaining records point at missing files:
Settings
With
secrets_manager_region, map each provider to its secret with valkyrie provider set.
Only this source can send a benchmark service’s
saved credential.
Limits
- Post-run Lambdas,
valkyrie run results --s3, result previews, and Docent analysis need S3 storage, so a local Tracker can’t run them. - Some hosted benchmarks start sandboxes from snapshots or images that only Vals AI’s Daytona organization can read, so they fail with your own Daytona account.

