Agent tool schema missing `model` parameter — blocks dynamic model routing at invocation time
Description
The Agent (Task) tool's JSON schema does not include a model parameter (was removed last night as far as I can tell). This means there is no way to specify a model when invoking a subagent at runtime.
The current schema accepts: description, prompt, subagent_type, isolation, mode, name, resume, run_in_background, team_name — but not model.
How this differs from previous issues
Previous issues (#9243, #11682, #18873) reported that a model parameter existed but was silently ignored or returned 404. This issue is different: the parameter has been removed from the tool schema entirely, so it cannot even be passed.
Impact
Our organization uses Claude Code agents extensively and routes to different models based on the type of problem being solved, not based on a static agent definition. For example:
- A complex architectural question → Opus
- A straightforward file search → Haiku
- A standard implementation task → Sonnet
This routing decision is made dynamically at invocation time by the parent agent based on the problem context. Without a model parameter on the Agent tool, we cannot do this. The only current workaround is to define a separate agent .md file for every model variant (e.g., researcher-haiku.md, researcher-sonnet.md, researcher-opus.md), which is brittle, duplicative, and defeats the purpose of dynamic routing (not to mention incompatible with 3rd party plugins).
Expected behavior
The Agent tool schema should accept an optional model parameter (e.g., "model": "opus", "model": "haiku", "model": "sonnet") that overrides the default model for that subagent invocation. This would allow the parent agent to make cost/capability-appropriate model selections at runtime.
I support the idea of being ABLE to declare a DEFAULT model for an agent, but that is not mutually exclusive with overriding a model in response to dynamic issues, and this is a big miss for us.
Current workarounds
| Workaround | Limitation |
|---|---|
| Define separate agent files per model (foo-haiku.md, foo-opus.md) | Duplicative, doesn't scale, can't respond to problem complexity dynamically, incompatible with plugin architecture |
| Set model in agent frontmatter | Static — locks an agent type to one model regardless of task complexity |
| Change session model before spawning | Affects the entire session, not just the subagent |
Environment
- Claude Code version: 2.1.49
- Model: Opus 4.6 [1m] [Bedrock]
- Platform: macOS (Darwin 25.3.0)
Related issues
- #9243 — Original report of model parameter being ignored (closed)
- #11682 — Task Tool Model Parameter Causes API 404 Error (closed as duplicate)
- #18873 — Task tool
modelparameter returns 404 (open, stale) - #26740 — Feature: Per-tool model routing to optimize cost and latency (open)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗