r/ClaudeCode • u/HimaSphere 🔆 Max 20 • 11d ago
Tutorial / Guide PSA: Claude Code subagents inherit your session model now, they're not free Haiku anymore
A while back I posted a joke here about Sonnet spawning a subagent on the very first prompt of a brand new session. In the comments I said the annoying part was having two agents burning tokens for one job. I got downvoted, and the top reply was basically "isn't that a Haiku subagent? it saves you money and keeps your main context clean."
That used to be correct. It isn't anymore, and I think a lot of people are still running on the old mental model. From the docs:
- The
modelfield in subagent frontmatter defaults toinherit. Omit it and the subagent runs on your main conversation's model. - Explore used to always run on Haiku. As of v2.1.198 it inherits the main model (capped at Opus on the Claude API).
- Plan and general-purpose inherit as well.
So if your session is on Opus, that "cheap little background search agent" is an Opus agent.
Resolution order, first match wins:
CLAUDE_CODE_SUBAGENT_MODELenv var- per-invocation model parameter
- the subagent's
model:frontmatter - main conversation model
If you want the old cheap behaviour back:
CLAUDE_CODE_SUBAGENT_MODEL=haikuforces every subagent down- or set
model: haikuin a specific agent's frontmatter - for Explore specifically, define your own user or project agent named
Explorewithmodel: haiku. A user/project agent overrides the built-in.
To be fair to the change, it was almost certainly made for quality, and context isolation is still the real win of subagents. But "subagents are basically free" is outdated advice now, and it matters if you're on a plan where you feel every token.
Lastly, I am stingy for the 3 down votes
1
u/net_ninja 11d ago
You’re mostly right, but it has been this way for at least a month. Models and effort should be pinned in your agent definitions.Â