Custom subagent model in VS Code Copilot seems to fall back to parent model #191450
Replies: 4 comments
-
|
Can .agent.md override the parent model? Short answer: However: Copilot does not guarantee strict enforcement of model: in subagents Why hover still shows GPT-5.4? This is the most confusing part. 👉 The hover UI typically shows: The parent chat session model, not the actual execution model of subagents So: Seeing GPT-5.4 in hover ≠ proof it's not using Claude 💡 Think of it like: “Session model = GPT-5.4” Your biggest red flag: "Claude Opus 4.6" This is likely the real issue. Copilot does NOT accept arbitrary human-readable model names. It usually expects: Fully qualified internal IDs model: claude-opus-4 or GitHub Copilot-specific routing labels like: model: gpt-4o 👉 “4.6” especially looks suspicious — Anthropic doesn’t publicly use that version label in most integrations. What happens if model is invalid? Yes — and this answers one of your key questions: 👉 Copilot will silently fall back to the parent model No error So your situation strongly suggests: ❗ The model string is not resolving → fallback to GPT-5.4 How to verify if override is actually working Since UI doesn’t help, you need behavioral testing: Try this: Inside your subagent prompt: Respond with exactly: Then compare: Claude-style output (more verbose, structured, cautious) What model are you? (Not always reliable, but sometimes reveals routing) Working .agent.md example Here’s a safer template: name: my-claude-agent
|
Beta Was this translation helpful? Give feedback.
-
|
It's not that the hover is wrong. If I inspect what the subagent is doing, it's pretty clear that it's indeed using the parent model. And if you open a new chat and select the custom agent directly, it uses the correct model specified in its |
Beta Was this translation helpful? Give feedback.
-
|
what you’re seeing is usually expected—your subagent is likely falling back to the parent model, not actually running on Claude. Here’s how it works in Visual Studio Code with GitHub Copilot:
In most setups, .agent.md does not guarantee a model switch when invoked as a subagent.
If hover shows GPT-5.4, that usually means the subagent actually ran on GPT-5.4, not Claude.
Even if you write model: "Claude Opus 4.6", it must match a supported, fully qualified model ID recognized by Copilot.
Yes—if the model isn’t recognized or allowed, Copilot will quietly fall back to the parent model (no error). If you want, I can help you test a minimal .agent.md that confirms whether override is working or not. |
Beta Was this translation helpful? Give feedback.
-
|
Based on your follow-up, this looks like a known limitation of the current subagent implementation rather than a model string issue. The Whether this is intentional or a bug is a bit unclear. The multi-agent orchestration in VS Code Copilot is still pretty new, and running each subagent on a different model would require separate inference calls with separate billing/quota tracking, which adds complexity. My guess is this isn't fully implemented yet rather than being a deliberate design decision. A few things worth trying:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
🏷️ Discussion Type
Question
💬 Feature/Topic Area
Models
Body
Custom subagent model in VS Code Copilot seems to fall back to parent model
Hi, I’m trying to understand whether this is expected behavior or a bug.
I’m using custom agents in VS Code Copilot with
.agent.mdfiles.My setup is:
model: "Claude Opus 4.6"in its.agent.mdWhat I expected:
What I’m seeing:
So I’m not sure which of these is true:
modelstring is not in the exact format VS Code expectsMy main questions are:
.agent.mdagents in VS Code supposed to be able to override the parent model when used as subagents?modelfield need an exact qualified name like(copilot)to work properly?If anyone has this working, an example of the exact
model:format would help a lot.Beta Was this translation helpful? Give feedback.
All reactions