# Subagent Model Choice Not Respected

**URL:** <https://forum.cursor.com/t/subagent-model-choice-not-respected/163645>\
**Category:** Bug Reports\
**Tags:** subagents, composer\
**Created:** [June 19, 2026, 2:50pm UTC](https://forum.cursor.com/t/subagent-model-choice-not-respected/163645 "2026-06-19T14:50:08Z")\
**Posts on this page:** 1\
**Showing post:** 10

<div class="post-metadata">

**Author:** ![deanrie](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/deanrie/32/1263_2.png) [@deanrie](https://forum.cursor.com/u/deanrie)\
**Post date:** [July 15, 2026, 5:18pm UTC](https://forum.cursor.com/t/subagent-model-choice-not-respected/163645/10 "2026-07-15T17:18:35Z")

</div>

Hey, no update on the fix yet. This is still a known bug where a subagent doesn’t respect the selected model variant and switches to fast or picks the wrong model. I can’t share an ETA. Once I have one, I’ll reply in the thread.

About `.cursor/agents`. This folder isn’t created by default, you need to create it manually. Both project-level `.cursor/agents/` in the repo root and user-level `~/.cursor/agents/` work. Inside, put one `.md` file per subagent with YAML frontmatter. Example:

```md
---
name: explore
description: Explore subagent for codebase discovery
model: composer-2.5[fast=false]
---

Subagent instructions prompt goes here.

```

Key point. Control the variant using bracket syntax in the `model` field:

- `model: composer-2.5[fast=false]` uses the normal non-fast variant.
- `model: composer-2.5[]` or `model: [composer-2.5]` also forces the base variant.
- `model: composer-2.5` without brackets can silently fall back to fast on the backend.

This syntax also works for other model params, for example `claude-opus-4-8[effort=high]`. It’s not documented yet, but it works. Note: this works in IDE frontmatter, but the CLI `--model` flag doesn’t parse bracket params yet. In CLI you need to pass the exact slug, like `claude-opus-4-8-thinking-high`.

Frontmatter fields: `name`, `description`, `model`, plus optional `readonly`, `is_background`.

A few notes:

1. This workaround only works for custom subagents defined via frontmatter.
2. For the built-in Explore subagent, in Settings 3.3+ there’s a separate dropdown Explore subagent model where you can pick a model or Inherit. But composer fast vs non-fast is currently bugged. Even if you select composer-2.5 with fast disabled, the backend may still switch to fast. For other built-in types like generalPurpose, there’s no separate picker.
3. If you’re on the legacy request-based plan, built-in subagents are forced to Composer Fast no matter what you pick. That’s plan policy, not a bug. Turning on Max Mode on the parent agent removes this limitation.
4. If you want to block built-in subagents entirely so they don’t burn tokens, use the `subagentStart` hook with `permission: "deny"`: [Hooks | Cursor Docs](https://cursor.com/docs/hooks). Note: for this hook, `"ask"` isn’t supported and is treated as `"deny"`.

Docs for subagents: [Subagents | Cursor Docs](https://cursor.com/docs/subagents)

One more thing. The `model` in frontmatter can sometimes be ignored and the subagent inherits the parent model. That’s a separate known bug. If you see that even with an explicit bracketed model, send the Request ID right top corner of the chat \> `Copy Request ID` and your Cursor version, and we can dig in.

---

_[View the full topic](https://forum.cursor.com/t/subagent-model-choice-not-respected/163645)._
