name).
Example config
configs/runs/pilot10-gemma4-31b.yaml
Field reference
Canonical hash
RunConfig.canonical_hash() produces a 16-character SHA-256 digest of the config’s serialized fields. It excludes the following fields, which can change freely without forking the run:
name— the identifier itselfmax_concurrency,request_timeout_s,max_retries— runtime knobs that don’t affect what the model seessamples_per_image— so progressive sampling is allowed without forking the run
model, dimensions, image_set, temperature, cache_buster, capture_reasoning, system_prompt_override, or anything else the model observes, you must give the run a new name. Attempting to reuse a name with a different config raises:
Provider notes
OpenRouter
OpenRouter
Set the
OPENROUTER_API_KEY environment variable. Native cost reporting is
enabled automatically — the runner sets extra_body.usage.include=true on
every call so that cost_usd is populated from OpenRouter’s billed cost
even when LiteLLM doesn’t have a price entry for the model.The openrouter/ prefix on model IDs is added at dispatch and should be
omitted from the model field in your YAML. If you accidentally include it,
the config normalizer strips it so the canonical hash stays consistent.Ollama
Ollama
Set
api_base: http://localhost:11434 (or the address of your Ollama
instance). Cost will be NULL for all trials — latency and token counts are
still captured. Because temperature defaults vary by model in Ollama, set
it explicitly in your config if reproducibility matters.Anthropic / Google / OpenAI
Anthropic / Google / OpenAI
Standard environment variable auth applies:
ANTHROPIC_API_KEY,
GOOGLE_API_KEY, or OPENAI_API_KEY. Cost is reported directly by LiteLLM
from its built-in price table.