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