Task subagent composer-common-agent ignores fast=false and runs Composer 2.5 Fast

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Custom subagent composer-common-agent runs as Composer 2.5 Fast even though the account, the agent file, and the Task call all request Composer 2.5 with fast=false. Fast is marked increasesModelCost and its tooltip says it consumes more usage, so these runs are billed at the higher rate.

Steps to Reproduce

  1. Create a custom subagent at ~/.cursor/agents/example.md:

name: example
description: Repro agent for Composer 2.5 fast=false
model: composer-2.5[fast=false]

Reply with the single word ok.

  1. In the model picker, select Composer 2.5 and turn Fast off.
  2. In a new Agent chat, ask the parent model to launch a Task subagent with subagent_type “example” and model “composer-2.5”. Do not pass composer-2.5-fast, inherit, or an empty model.
  3. Open the subagent card.

Result: the card shows Composer 2.5 Fast. The stored modelConfig has modelId composer-2.5 and parameters [{ id: fast, value: true }], or an empty parameters array. fast=false from the agent file and from the model picker is not applied.

Any custom agent name reproduces this. The name composer-common-agent is local to my machine and is not required.

Expected Behavior

The subagent runs Composer 2.5 with fast=false. The stored config is parameters: [{ id: fast, value: false }].

Operating System

MacOS

Version Information

IDE:
Cursor 3.23.23 (stable)
commit 2dac2428994fe34f12658d9ecad1541b98db2c00
VS Code 1.128.0

For AI issues: which model did you use?

The parent chat was Grok 4.7 (and in another chat Claude Fable 5.1). The Task argument was the slug composer-2.5. The subagent actually ran as Composer 2.5 Fast.

Additional Information

Saved modelConfig on composer-common-agent is either:

{ modelName: composer-2.5, selectedModels: [{ modelId: composer-2.5, parameters: [{ id: fast, value: true }] }] }

or the same model with parameters: .

Of the last 80 composer-common-agent runs, 42 have fast=true, 38 have empty parameters, and 0 have fast=false.

In the local model catalog, the Fast variant is the default for both max and non-max. resolveModelParametersForSubmission applies modelParameterPreferences only when the parameter list is empty. The client writes fast=true first, so the saved fast=false preference is skipped. The Task Models override applies to Explore only, not to composer-common-agent.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey @TTYP, for now, running the parent chat itself on Composer 2.5 with Fast off is the reliable way to keep subagents on standard.

Your composer-2.5[fast=false] pin is correct. This is an issue we’re tracking, and we’ve let the team know.

Merging this into Composer subagents run on Fast when the parent chat isn’t Composer so updates land in one place. If you’d like a review of the usage impact, email [email protected].

Thanks for the quick reply and for confirming you’re tracking this.

I’ll try the workaround you suggested and follow the merged thread for updates. I appreciate how fast you looked into it.