Why do subagents use so much of my Claude plan?
Published 06/11/2026
Subagents feel free because they run off to the side, but each one is a full session with its own context, model and cache. Five hidden costs add up, and each has a fix.
1. Model and effort follow the main conversation#
With no model in the subagent file and no CLAUDE_CODE_SUBAGENT_MODEL set, a subagent runs on the main conversation's model. An Opus or Fable main agent therefore sends tiny jobs, like running a diff, to the same expensive model.
Fix: set model (sonnet, opus, haiku, fable, a full model id, or inherit) and effort (low to max) in the frontmatter of .claude/agents/*.md. For a default, set CLAUDE_CODE_SUBAGENT_MODEL in the env block of a settings file. On its own, CLAUDE_CODE_SUBAGENT_MODEL leaves the built-in Explore and Plan subagents alone; CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 applies it to every subagent, those included. Then have the main agent pick the right subagent for each task.
2. Inherited context is a call-up fee#
Every subagent starts by paying for a large context before it does any work. Many small calls mean that fee many times.
Fix: give a subagent one real job, not a quick question, and keep the main conversation lean so there is less to carry in.
3. The subagent cache lasts 5 minutes by default#
Subagent prompt cache defaults to 5 minutes, even on a plan. A subagent that pauses longer rewrites its whole context at full price.
Fix: set experimental: cacheTtl: 1h in the subagent file. It needs Claude Code v2.1.248 or later and is ignored while usage credits are in use. The subagentPromptCacheTtl setting on the linked TTL page sets the same thing for every subagent, while the per-file key sets it for one. On one Max 20x account, moving subagents to the 1-hour cache cut cold cache rewrites from about 8% of a week (16% at worst) to under 2%. See setting the prompt cache TTL.
4. Progress summaries go back to the main chat#
On one Max 20x account, subagent progress summaries took about 10% of a typical week, and about 13% once subagents were on the 1-hour cache. Each summary cost most of what the subagent turn it reported on did, because it re-reads that turn's context. They're written by the subagent's own model, so a cheaper subagent model makes them cheaper too, and there's no setting to turn them off.
Fix: use fewer, longer subagent jobs, so fewer summaries get written, and give subagents a cheaper model (section 1).
5. Background subagents can misbehave#
This is observed behaviour, not a documented bug. Background subagent turns and their timers can leak into the main chat, and messaging a running subagent is unreliable.
Fix: do not depend on mid-run messages. Give the subagent everything it needs up front and read its result when it finishes.
ADE runs each card as its own headless session for these reasons. See How ADE flies.