Allow custom sub-agent model selection via Agent tool

Resolved 💬 6 comments Opened Mar 10, 2026 by attendorn Closed Apr 13, 2026

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:

  1. Specify a model parameter when invoking the Agent tool
  2. Define custom agent types (e.g., in ~/.claude/agents/) that are recognized by subagent_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

View original on GitHub ↗

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