Skip to content

Sub-agent model: override silently ignored under the Copilot engine #41039

Description

@tsm-harmoney

Hello, I'm posting here to make you aware of an issue I opened on the GitHub Copilot CLI repo (github/copilot-cli#3891), since gh-aw's default setup is what surfaced it.
It also relates to issue #39544 that I opened earlier.

While auditing token usage in our workflows, I noticed that a sub-agent declaring a model: different from the primary agent isn't actually running on that model under the Copilot engine.
gh-aw compiles the override correctly and the CLI reads it, but at runtime the sub-agent quietly falls back to the session model.

It turns out the root cause is upstream in the CLI (github/copilot-cli#3891): gh-aw runs the Copilot CLI in BYOK mode through the firewall (COPILOT_PROVIDER_BASE_URL), and in that mode the CLI never fetches the provider's /models, so availableModels ends up empty and the override can't be resolved.
A side effect of this is that the firewall's model-steering/alias layer never even gets reached, because the chosen model never makes it onto the wire.

The giveaway from the CLI log:

Agent "<sub-agent>": definitionModel="small", sessionModel="claude-sonnet-4.6", availableModels=[]
Using model: claude-sonnet-4.6

Environment: gh-aw v0.80.9, firewall awf v0.27.7, Copilot CLI v1.0.63 (verified on the default firewall/BYOK path)

Every token-optimization investigation of our workflows surfaces this as the single biggest cost-saving opportunity.
I'm reporting this so it's on your radar and linked to the upstream fix for tracking, since the real fix lives in the CLI.

Thanks for all your work on gh-aw!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions