Two ways a model reference reaches Model Runner
Left column, files.yaml: agents.root with model local resolves to models.local with provider dmr, model ai/qwen3:4b and temperature 0; with no base_url the endpoint is found by running docker model status --json. Right column, capture/fixtures/agents/dmr.yaml: agents.root with model qwen resolves to models.qwen with provider runner, which resolves to providers.runner with provider dmr and base_url http://localhost:12434/engines/llama.cpp/v1. Bottom row: the auto decision as doctor printed it. No cloud provider has a credential, so auto looks for a pulled Model Runner model: with the runner up it picks dmr/docker.io/ai/qwen3:4b, and with no runner it names dmr/ai/qwen3:latest and reports no usable model.
files.yaml
dmr.yaml
agents.root
description, instruction
max_iterations: 8
toolsets: filesystem, shell
models.local
provider: dmr
model: ai/qwen3:4b
temperature: 0
endpoint discovery
docker model status --json
run by docker-agent itself
model: local
no base_url
agents.root
description, instruction
no toolsets
models.qwen
provider: runner
model: ai/qwen3:4b
temperature: 0
providers.runner
provider: dmr
base_url: http://localhost:12434
/engines/llama.cpp/v1
model: qwen
provider: runner
MODEL: AUTO, AS DOCTOR PRINTED IT
cloud credential?
20 providers: not set
pulled DMR model?
docker model status
dmr/docker.io/ai/qwen3:4b
25-doctor.txt, exit 0
dmr/ai/qwen3:latest
16-doctor.txt, exit 1
no