Subagent model routing is broken — all mechanisms resolve to parent model (Opus)

Open 💬 12 comments Opened Apr 5, 2026 by zadr007

Bug description

Subagent model routing does not work. All documented mechanisms for routing subagents to a different model (e.g. Sonnet) are silently ignored — subagents always run on the parent session's model (Opus).

Tested mechanisms (all failed)

| # | Mechanism | Doc reference |
|---|---|---|
| 1 | Agent(model: "sonnet") per-invocation param | Subagent docs |
| 2 | Custom agent .claude/agents/*.md with model: sonnet frontmatter | Subagent docs |
| 3 | CLAUDE_CODE_SUBAGENT_MODEL=claude-sonnet-4-6 env var | Model config docs |
| 4 | CLAUDE_CODE_SUBAGENT_MODEL=sonnet env var (alias) | Same |
| 5 | settings.json top-level "env": { "CLAUDE_CODE_SUBAGENT_MODEL": "sonnet" } | Model config docs |

Reproduction

  1. Start Claude Code on a Max plan with Opus as the main model
  2. Note the "Sonnet only" usage % on the dashboard
  3. Spawn subagents with any of the above mechanisms
  4. Check dashboard — Sonnet stays flat, Opus session usage increases

We ran 5 separate tests (15 subagents total, 3 per test). Sonnet stayed at 2% across all tests while Opus increased each time.

Expected behavior

The subagent docs document a resolution order:

  1. CLAUDE_CODE_SUBAGENT_MODEL env var (highest priority)
  2. Per-invocation model parameter
  3. Subagent definition's model frontmatter
  4. Main conversation's model (fallback)

At least one of these should actually route the subagent to the specified model.

Impact

Max plan users have a separate "Sonnet only" quota that is currently unusable from Claude Code. All subagent work (search, exploration, scaffolding) consumes the shared Opus weekly limit instead, leading to faster throttling.

Related issues

  • #8932 — general-purpose agent sets model as 'sonnet' rather than 'inherit'
  • #5456 — Sub-agents Don't Inherit Model Configuration in Task Tool
  • #37823 — Allow per-agent-type model overrides in settings
  • #26179 — Subagents should default to Sonnet, not inherit Opus
  • #19174 — Ambiguity regarding default model behavior for Subagents

Environment

  • Claude Code desktop app (Windows 11)
  • Opus 4.6 (1M context) as main model
  • Max plan (5x)
  • Tested 2026-04-05

View original on GitHub ↗

This issue has 12 comments on GitHub. Read the full discussion on GitHub ↗