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!
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, soavailableModelsends 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:
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!