You didn’t do anything wrong here, this is a bug on our side. Your file is valid YAML, where a quoted value and an unquoted one mean exactly the same thing, but the loader that reads agent files is treating the quote characters as part of the model name. That name matches nothing in our model catalog, and when a subagent’s model can’t be resolved, it currently falls back to the parent conversation’s model without telling you.
I tested both versions side by side: with the quotes the subagent ran on Auto, and with them removed, it ran on Opus 5 at high effort.
In the meantime, removing the quotes will unblock you:
This applies to any quoted value, so it’s worth leaving the quotes off even when you’re not using the bracket syntax.
One related thing that can look like part of the same problem but isn’t: running /my-test-agent from the composer doesn’t switch your main chat over to that agent’s model. The slash command hands the work to a subagent, and the model picker keeps showing your own selection (Auto Balance, in your screenshot) for the main conversation. The model to check is the one shown on the subagent’s task card.
I’ve reported this to the team so we can improve the handling of the subagents specified with quotes, but in the meantime hopefully the workaround of dropping the quotes works alright for you!
Thank you for the quick reply, Kevin!
I’ll unquote the frontmatter config for now as a workaround until there’s proper YAML support in place for Cursor agent and skill files.
Hi @menotcomputer thanks for the post! I don’t have an update on this yet, but we are aware of the issue and the right eyes are on it. I’ll circle back here with any relevant updates!