Skip to content

Conversation

lramos15
Copy link
Member

Allows experimentation of default model via extension

@Copilot Copilot AI review requested due to automatic review settings October 13, 2025 14:47
@lramos15 lramos15 enabled auto-merge October 13, 2025 14:47
@lramos15 lramos15 self-assigned this Oct 13, 2025
@lramos15 lramos15 disabled auto-merge October 13, 2025 14:47
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds experimentation support for the default language model selection in the GitHub Copilot Chat extension. The change allows A/B testing of different default models through the experimentation service.

  • Introduces dependency injection for the experimentation service
  • Implements hierarchical default model selection logic with experimentation override
  • Restructures the default endpoint selection to prioritize experimental models over system defaults

@vs-code-engineering vs-code-engineering bot added this to the October 2025 milestone Oct 13, 2025
@lramos15 lramos15 added this pull request to the merge queue Oct 13, 2025
@lramos15 lramos15 removed this pull request from the merge queue due to a manual request Oct 13, 2025
@jul-stevenson
Copy link

@lramos15 do you know how these changes interact with these variables that also change the default model in agent mode? To my understanding, they've only been used for OSWE internal flights. It seems like the intention is the same, so we can switch OSWE to use the chat.defaultLanguageModel variable when they do a next iteration:

vscode.custommodel1
vscode.custommodel1.id
vscode.custommodel1.name

@lramos15
Copy link
Member Author

@lramos15 do you know how these changes interact with these variables that also change the default model in agent mode? To my understanding, they've only been used for OSWE internal flights. It seems like the intention is the same, so we can switch OSWE to use the chat.defaultLanguageModel variable when they do a next iteration:

vscode.custommodel1
vscode.custommodel1.id
vscode.custommodel1.name

@karthiknadig Would know more about these, but I don't think so

@karthiknadig
Copy link
Member

@jul-stevenson chat.defaultLanguageModel overrides the one set by vscode.custommodel1.

@jul-stevenson
Copy link

Thanks, @karthiknadig! @isidorn and I discussed moving all default model experiments to a single experiment which covers all users. Since chat.defaultLanguageModel overrides vscode.custommodel1 it sounds like that variable won't even work going forward/it can be cleaned up. Does that sound right? Or is vscode.custommodel1 doing something unique that we still need it for?

@karthiknadig
Copy link
Member

Only the default model part becomes useless. The other things it does is still useful, like acting as a proxy and allowing you to change visible name of the model in the picker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants