Skip to content

Experiment: sort model picker by vendor (OpenAI, Anthropic, Gemini)#4965

Draft
pierceboggan wants to merge 3 commits intomainfrom
pierceboggan/model-picker-vendor-ordering
Draft

Experiment: sort model picker by vendor (OpenAI, Anthropic, Gemini)#4965
pierceboggan wants to merge 3 commits intomainfrom
pierceboggan/model-picker-vendor-ordering

Conversation

@pierceboggan
Copy link
Copy Markdown
Contributor

Motivation

We want to A/B test whether reordering models in the chat model picker by vendor improves the user experience. Currently, models appear in whatever order the server returns them (roughly alphabetical), which surfaces Claude models before GPT models. This change lets us experiment with a vendor-prioritized ordering: OpenAI → Anthropic → Gemini → others.

Approach

  • Sort logic in languageModelAccess.ts: After assembling chatEndpoints from the server response, sort them by vendor using endpoint.modelProvider. The Auto endpoint is excluded from sorting (it's always first via its category order). Within each vendor group, the original server ordering is preserved (stable sort).
  • ExperimentBased setting: Added github.copilot.chat.modelPickerVendorOrdering as an ExperimentBased boolean config (default false). This means:
    • It can be controlled via TAS for A/B testing
    • Users can manually toggle it in VS Code settings for local testing
    • Tagged experimental + onExp in package.json
  • No behavior change when disabled: When the setting is false or unset, the model list is unchanged from the current server-driven order.

Key files

  • src/extension/conversation/vscode-node/languageModelAccess.ts — sort logic + config read
  • src/platform/configuration/common/configurationService.tsConfigKey.Shared.ModelPickerVendorOrdering definition
  • package.json / package.nls.json — setting registration and description

pierceboggan and others added 3 commits April 2, 2026 10:01
Sort chat model picker endpoints by vendor priority so OpenAI models
appear first, followed by Anthropic, then Gemini, then others.
Auto endpoint is unaffected (always first via its category order).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Wrap the vendor-priority sort in a check for the
'chat.modelPickerVendorOrdering' boolean treatment variable so the
ordering change can be A/B tested via the experimentation framework.
When the flag is unset or false, server ordering is preserved.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace raw experiment service call with an ExperimentBased config
setting 'chat.modelPickerVendorOrdering' that can be toggled via
VS Code settings or controlled via experiments.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

1 participant