Allow custom sub-agent model selection via Agent tool
Feature Request
Problem
The Agent tool's built-in agent types (e.g., Explore on Haiku) demonstrate that per-agent model selection is technically possible. However, there's no way for users to:
- Specify a
modelparameter when invoking the Agent tool - Define custom agent types (e.g., in
~/.claude/agents/) that are recognized bysubagent_type
This means all general-purpose sub-agents inherit the main session's model, even for simple tasks (calendar lookups, database queries, counting records) where a faster model like Sonnet or Haiku would be more appropriate.
Use Case
I run my main session on Opus for complex reasoning and architecture discussions. Throughout the day, I spawn 5-10 sub-agents for routine tasks:
- Calendar queries (via MCP tools)
- Notion database lookups
- Reminder checks
- Simple data aggregation
These tasks don't need Opus-level reasoning – they need speed. Sonnet or Haiku would return results significantly faster.
Proposed Solutions (either would work)
Option A: model parameter on Agent tool
Agent(description="Calendar check", prompt="...", model="sonnet")
Option B: Custom agent types via ~/.claude/agents/
# ~/.claude/agents/fast.md
---
name: fast
description: Fast routine lookups
model: sonnet
tools: Read, Grep, Glob, Bash, mcp__*
---
Then invocable via subagent_type: "fast".
Current Workaround
Setting "model": "sonnet" in settings.json as default and manually switching to Opus via /model opus when needed. This works but is manual and means the entire session switches, not individual agents.
Environment
- Claude Code v2.1.71
- macOS
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗