microsoft / microsoft/vscode

Auto Mode Router overrides an explicitly selected BYOK model with a Copilot model

Open
#326,554 5 comments 4 reactions 1 assignee Claimed by @lramos15 View on GitHub
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

## Summary

When a third-party/BYOK language model is explicitly selected in VS Code Chat, Auto Mode Router can override the selected main model and route the actual chat request to a GitHub Copilot model instead.

This is not limited to a hidden title-generation or utility request: the visible primary response is produced by the routed Copilot model.

Originally reported in GaussianGuaicai/Codex-For-Copilot#25:

Related utility-routing discussion: #324890

## Environment

* VS Code: 1.129.1
* GitHub Copilot Chat: 0.57.0
* Third-party provider: Codex For Copilot 1.2.0
* Remote workspace: Dev Container / Docker
* The third-party provider extension is running in the local UI extension host, not in the container extension host.

## Steps to reproduce

1. Install and configure a third-party `LanguageModelChatProvider`.
2. Open VS Code Chat in Agent mode.
3. Explicitly select a model from that provider, in this case `GPT-5.6-Luna (Codex)`.
4. Send a normal chat request.
5. Inspect the Chat Debug View and Copilot Chat trace logs.

## Actual behavior

Before the main request is sent, the UI displays:

```text
Routed to GPT-5.3-Codex
```

The Chat Debug View reports:

```text
requestType : ChatResponses
model : gpt-5.3-codex
resolved model : gpt-5.3-codex
```

Relevant Copilot Chat trace output includes:

```text
[RouterDecisionFetcher] Prediction: no_reasoning ...
candidate models: gpt-5.3-codex, claude-haiku-4.5, claude-sonnet-4.6, gpt-5.4, gpt-5.4-mini
...
chat model gpt-5.3-codex
```

The explicitly selected `GPT-5.6-Luna (Codex)` provider model is therefore not used for the visible primary answer.

Changing:

```json
"chat.byokUtilityModelDefault": "mainAgent"
```

and restarting both the local VS Code client and the Dev Container does not change the behavior. The problem also occurs when the setting is `None`.

## Expected behavior

When a user explicitly selects a third-party/BYOK model, the main chat request should be sent to that selected model.

Auto Mode Router may perform clearly scoped internal utility work according to the relevant settings, but it should not replace the explicitly selected main model with a Copilot-hosted model.

## Additional context

The originating provider registers a distinct language-model vendor and does not contain logic that maps the selected model to `gpt-5.3-codex`. The observed replacement occurs in the Copilot Chat model-resolution/routing path.

The full redacted logs and reporter follow-up are available here:

GaussianGuaicai/Codex-For-Copilot#25

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.