Skip to content

[FEATURE]: Support for Model Variants in (sub)agents #6645

Closed

Description

@Blankf

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

When having multiple variants of an model configured.
it would be good to have the agent config point to a specific model variant.

// Global Model Configuration
"anthropic/claude-sonnet-4-5": {
  "name": "anthropic/claude-sonnet-4-5",
  "variants": {
    "thinking": {
      "thinking": {
        "type": "enabled",
        "budget_tokens": 1600
      },
      "max_tokens": 2000
    },
    "fast": {
      "thinking": {
        "type": "disabled"
      }
    }
  }
}

would result in something like

---
description: Performs security audits and identifies vulnerabilities
mode: subagent
model: anthropic/claude-sonnet-4-5:fast
tools:
  write: false
  edit: false
---

You are a security expert. Focus on identifying potential security issues. 
Analyze the provided code and identify vulnerabilities such as SQL injection, 
XSS, or insecure dependency versions.

when i use a config with variants an did not specify any it takes the default model but that seems to prefer thinking.

it errors with

{"message":"The model returned the following errors: messages.1.content.0.type: Expected `thinking` or `redacted_thinking`, but found `text`. When `thinking` is enabled, a final `assistant` message must start with a thinking block (preceeding the lastmost set of `tool_use` and `tool_result` blocks). We recommend you include thinking blocks from previous turns. To avoid this requirement, disable `thinking`. Please consult our documentation at https://docs.claude.com/en/docs/build-with-claude/extended-thinking"}. Received Model Group=anthropic/claude-4-5-sonnet
Available Model Group Fallbacks=Non

when i use a simpel model config

    "anthropic/claude-4-5-sonnet": {
    	"name": "anthropic/claude-4-5-sonnet",
    	"options": {
    		"thinking": {
    			"type": "disabled"
    		}
    	}
    },
---
description: Performs security audits and identifies vulnerabilities
mode: subagent
tools:
  write: false
  edit: false
---

it does work! it takes that model and performs the actions as the security auditor.

Activity

  1. added
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    on Jan 2, 2026
  2. github-actions commented on Jan 2, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    Feel free to ignore if none of these address your specific case.

  3. Blankf commented on Jan 2, 2026

    @Blankf
    Author

    it seems the id field is it, i missed that i guess.

  4. mjakl commented on Jan 5, 2026

    @mjakl

    @Blankf can you elaborate how the id field works to setup the variant? I'd also like to configure a model and a variant in my agent definition but couldn't figure out how to do that (without falling back to full model aliases).

  5. CasualDeveloper commented on Jan 7, 2026

    @CasualDeveloper
    Contributor

    For anyone following this issue - there's now an active effort to properly implement agent-level variant configuration:

    Both PRs add a variant field to agent config:

    {
      "agent": {
        "security-auditor": {
          "model": "anthropic/claude-sonnet-4-5",
          "variant": "fast"
        }
      }
    }

    This addresses the original request - you can now configure which variant each agent uses by default, without needing model aliases or the :variant suffix syntax.

    The variant priority order is:

    1. Explicit user selection (--variant or ctrl+t)
    2. Agent's configured default variant
    3. None (model's base behavior)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

discussionUsed for feature requests, proposals, ideas, etc. Open discussion

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions