[Bug]: Claude Code subagents silently run on the default model instead of the runtime-configured model
Deployment type: Official App Area: Agents and runtimes
What happened? When an agent runs on a Claude Code runtime whose model is configured to anything other than the default, the main agent honors the configured model, but every subagent the main agent spawns (via the Agent tool) runs on Claude's default model — the "Default (recommended)" entry — instead.
Concretely: in a run where the runtime's model is set to a faster/cheaper non-default model, all assistant messages in the main agent session report the configured model, while every message in the subagent sessions reports the default model. Subagent work is therefore executed — and billed — against a different model than the one the user configured, with no warning anywhere.
Steps to reproduce
- In Multica, create or edit an agent that uses a Claude Code runtime, and set its model to a non-default model — e.g. a cheaper or faster model, or a model served through a third-party provider.
- Start a task that causes the main agent to delegate to subagents (for example an Explore agent spawned via the Agent tool).
- While the run is in progress, inspect the sessions: the main agent's messages carry the configured model; the subagent sessions carry the default model.
- Observe that subagent tokens are metered/charged on the default model, not on the model you configured.
Expected: subagents inherit the model configured on the runtime/agent, so all work within a run uses the same model. If that is not achievable, the divergence should at least be surfaced (visible in the UI or in the run's configuration) rather than silent.
Additional context
The daemon launches the main Claude Code process with an explicit --model flag, which pins the main agent to the configured model. Subagent processes are spawned by Claude Code itself and do not receive that flag; they resolve the model from their environment/settings and fall back to the "Default (recommended)" entry. Exactly which model that entry resolves to depends on the deployment and the user's configuration, so the concrete default is incidental — the defect is that the runtime-level model configuration is not applied consistently across a run: it only governs the main agent.
Impact:
- Unexpected cost: users who pick a cheaper model for cost control may still pay the default model's rate for every subagent call.
- Model misuse: when the runtime is configured to a non-default model — in particular a third-party or non-Anthropic one — subagents silently run on Anthropic's default Claude model, a different model, possibly a different provider, and a different price than the one the user explicitly chose.
Possible directions:
- Pin the model for the whole process tree the daemon spawns (e.g. export the configured model into the child environment so Claude Code subagents inherit it), or
- Propagate the configured model through the CLI configuration used by subagent processes, or
- At minimum, detect and surface when a run's subagents are executing on a different model than the one configured.
Source: multica-ai/multica