-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Custom agent frontmatter: accept array for model: field #3070
Copy link
Copy link
Open
Labels
area:agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agentsarea:configurationConfig files, instruction files, settings, and environment variablesConfig files, instruction files, settings, and environment variablesarea:modelsModel selection, availability, switching, rate limits, and model-specific behaviorModel selection, availability, switching, rate limits, and model-specific behavior
Metadata
Metadata
Assignees
Labels
area:agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agentsarea:configurationConfig files, instruction files, settings, and environment variablesConfig files, instruction files, settings, and environment variablesarea:modelsModel selection, availability, switching, rate limits, and model-specific behaviorModel selection, availability, switching, rate limits, and model-specific behavior
Type
Fields
Give feedbackNo fields configured for Feature.
Feature request
Allow custom agent markdown frontmatter to accept an array of strings for the
model:field, in addition to a single string.Motivation
VS Code chat modes already support
model:as a list — it's used to present a model picker for the chat mode. This means the same agent definition file can't currently be shared cleanly between VS Code and Copilot CLI: the CLI rejects the file with:custom agent markdown frontmatter is malformed: model: Expected string, received arrayThis forces plugin authors to either:
Proposed behavior
When
model:is an array, the CLI uses the first entry as the default model for that agent (and ideally treats the rest as acceptable alternates the user can switch to with/modelwhile invoking the agent). Whenmodel:is a string, behavior is unchanged.Alternatives considered
model:to a single string — works in both, but loses the picker UX in VS Code.plugin update.Accepting an array in the CLI parser is the only change that lets the same plugin work unmodified in both surfaces.