Preflight Checklist
Problem Statement
There is no way to configure which model each built-in subagent type uses in settings.json. The model field applies globally to the main Claude Code session, and all subagents (general-purpose, Explore, Plan, claude-code-guide) inherit the parent model with no way to override per agent type.
This means users who want to save costs by routing simpler subagent tasks to a cheaper model (e.g. Haiku) have no way to do so without affecting the main session model or manually specifying the model on every Agent tool call — which is unreliable and itself costs tokens in context.
Proposed Solution
Add an agentModels key to settings.json that maps built-in agent type names to model IDs:
{
"agentModels": {
"general-purpose": "claude-haiku-4-5-20251001",
"Explore": "claude-haiku-4-5-20251001",
"Plan": "claude-sonnet-4-6",
"claude-code-guide": "claude-sonnet-4-6"
}
}
This would allow users to configure cost/capability trade-offs per agent type without changing the main session model.
Alternative Solutions
- Setting
model globally — changes the main session model too, not just subagents.
- Creating
~/.claude/agents/general-purpose.md with model frontmatter — tested this; does NOT override built-in agents.
- Passing
model: "haiku" per Agent tool call — works per-call but requires the LLM to remember every time, which costs tokens and is unreliable across sessions.
Priority
Medium - Would be very helpful
Feature Category
Configuration and settings
Use Case Example
No response
Additional Context
No response
Preflight Checklist
Problem Statement
There is no way to configure which model each built-in subagent type uses in
settings.json. Themodelfield applies globally to the main Claude Code session, and all subagents (general-purpose, Explore, Plan, claude-code-guide) inherit the parent model with no way to override per agent type.This means users who want to save costs by routing simpler subagent tasks to a cheaper model (e.g. Haiku) have no way to do so without affecting the main session model or manually specifying the model on every Agent tool call — which is unreliable and itself costs tokens in context.
Proposed Solution
Add an
agentModelskey tosettings.jsonthat maps built-in agent type names to model IDs:{ "agentModels": { "general-purpose": "claude-haiku-4-5-20251001", "Explore": "claude-haiku-4-5-20251001", "Plan": "claude-sonnet-4-6", "claude-code-guide": "claude-sonnet-4-6" } }This would allow users to configure cost/capability trade-offs per agent type without changing the main session model.
Alternative Solutions
modelglobally — changes the main session model too, not just subagents.~/.claude/agents/general-purpose.mdwith model frontmatter — tested this; does NOT override built-in agents.model: "haiku"per Agent tool call — works per-call but requires the LLM to remember every time, which costs tokens and is unreliable across sessions.Priority
Medium - Would be very helpful
Feature Category
Configuration and settings
Use Case Example
No response
Additional Context
No response