Subagent control via rules and settings

I know that invoking parallel subagents is the operating mode du jour, but I’m curious if it’s possible to regulate this behavior through .cursorrules or other means like settings?

Specifically:

  • There are times that I’d like to go back to the ‘old way’ (pre Cursor 2.6ish / 3.x) of doing things and opt for linear thinking and execution by a single agent, especially in Plan mode. Can this be controlled?

  • When subagents are used, is there a way to specify which model(s) the subagents use? It appears to default to Composer 2. I’d prefer to use the same model that my main agent is using in some instances.

  • Are subagents MCP-aware? Create State’s Cursor plugin has marvelous long-context search functions that the main agent uses reliably, however subagents appear to default to their own behavior (traversing directory trees, grepping source files and so on)

(@kevinn , please move this to Help if it’s better suited for that forum).

Subagents are invoked via Task()

there are a couple of different parameters this can receive

Parameters

Name Required Type Description
subagent_type yes enum Which specialized agent to launch (see below)
description yes string Short (3–5 word) title shown in the UI
prompt yes string Full self-contained task instructions
model no enum Override model for this subagent (see enum list)
run_in_background no boolean If true, returns immediately and notifies on completion; if false, blocks until done
readonly no boolean Run in “Ask mode” — restricts writes and MCP access
resume no string Agent ID to resume, or "self" to fork current parent context
interrupt no boolean Only with resume on a running async agent — cancel and send new prompt
file_attachments no string[] Paths to images/videos to attach (mainly for multimodal-looker)

Regarding your questions

  1. Yes (partially) you can add a rule for avoiding the execution of Task() (internal tool for invoking subagents) with different subagent_type than explore & shell mostly what we perceive as subagents is subagent_type=‘generalPurpose’

  2. Task() invocation supports passing model param which is an enum that changes between versions it seems they haven’t found the sweet spot but currently on 3.2.16 the models enum can receive either:

  • claude-4.6-sonnet-medium-thinking
  • claude-opus-4-7-thinking-xhigh
  • composer-2-fast
  • gemini-3.1-pro
  • gpt-5.3-codex-high-fast
  • gpt-5.3-codex-spark-preview
  • gpt-5.4-medium
  • gpt-5.5-extra-high
  1. Yeah they know about your mcp, tools but they will always try to use cursors internal tools

given this you can play with your prompt and rules to control the behavior of your subagents

note: subagent_type can be used to run your own subagents see: Subagents | Cursor Docs

Thank you for this terrific and helpful answer!