Subagents should default to Sonnet, not inherit Opus

Resolved 💬 2 comments Opened Feb 16, 2026 by flavio-bongiovanni Closed Mar 21, 2026

Summary

When running Claude Code with Opus as the main model, all subagents (Task tool) inherit Opus by default. This means a simple file search agent, a test runner, or a code reviewer all consume Opus-level resources — even though Sonnet performs equally well (or better) for these focused, well-prompted tasks.

Anthropic's own research and model cards recommend using the right model for the right task. Opus excels at complex reasoning, architectural decisions, and nuanced judgment. Sonnet excels at focused execution, code generation, and well-scoped tasks — which is exactly what subagents do.

Current behavior

  • Main session: Opus (correct — user chose it for complex orchestration)
  • All subagents via Task tool: Opus (wasteful — they do focused work)
  • The model parameter exists but defaults to inheriting from parent

Proposed behavior

  • Main session: whatever the user chose
  • Subagents: default to Sonnet unless explicitly overridden with model: "opus"
  • Agent definition files (.md frontmatter) should have model: sonnet as the default, with model: opus or model: inherit as opt-in for agents that genuinely need it

Real-world impact

I audited all 62 agent definitions across 6 plugins (superpowers, pr-review-toolkit, code-simplifier, plugin-dev, GSD, voyager). Zero agents actually need Opus. I had to create a post-update patch script (reapply-model-patches.sh) that rewrites model: opus and model: inherit to model: sonnet across all agent files after every plugin update.

# What users currently need to do after every plugin update:
find ~/.claude/plugins -path "*/agents/*.md" -exec \
  sed -i 's/^model: opus/model: sonnet/' {} \;
find ~/.claude/plugins -path "*/agents/*.md" -exec \
  sed -i 's/^model: inherit/model: sonnet/' {} \;

Context

On Max plans, Opus and Sonnet have separate rate pools. Defaulting subagents to Sonnet would:

  1. Reduce Opus pool consumption — more headroom for the main session
  2. Reduce latency — Sonnet is faster for focused tasks
  3. Improve cost efficiency on pay-as-you-go plans
  4. Align with Anthropic's own guidance on model selection

The only exception I found was deep research agents (Voyager) where Opus quality genuinely matters for expert-level synthesis. Everything else — code review, plan checking, test running, parallel dispatching — is Sonnet territory.

Suggestion

  1. Change the default in Task tool from "inherit from parent" to "sonnet"
  2. Official plugins should ship with model: sonnet in agent frontmatter
  3. Document the model parameter more prominently so users know they can override

🤖 Generated with Claude Code

View original on GitHub ↗

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