Skip to content

Known limitation: Selecting DeepSeek does not guarantee all Copilot internal requests avoid Copilot models/credits #142

Description

@Vizards

Summary

Selecting DeepSeek V4 Pro or DeepSeek V4 Flash in the Copilot Chat model picker only controls the main chat/agent model request.

VS Code and GitHub Copilot still have several internal routes, such as utility models, inline chat, Plan/Explore agents, title/summary generation, risk assessment, semantic/search helpers, embeddings, and other helper calls. Some of these routes may still use GitHub Copilot built-in models or require Copilot subscription capabilities.

This is a VS Code / Copilot Chat routing limitation. The extension can only handle requests that VS Code sends to the deepseek language model provider.

Important

There are two different costs to think about here.

If you leave chat.utilityModel / chat.utilitySmallModel unset, some Copilot internal helper requests may continue to use Copilot built-in utility models or Copilot credits.

If you set chat.utilityModel / chat.utilitySmallModel to DeepSeek, those helper requests may use your DeepSeek API key instead. These requests can include title generation, progress messages, prompt categorization, todo tracking, commit messages, summaries, search/ranking helpers, and similar small tasks.

Many of these helper requests are independent from each other and usually cannot reuse the same prefix cache as the main agent conversation. This means Flash traffic can still produce a high cache-miss rate and visible API cost during intensive coding sessions, even though deepseek-v4-flash is cheaper than deepseek-v4-pro.

This workaround is therefore a tradeoff, not a free switch. Please monitor both Copilot usage and DeepSeek API usage after changing these settings.

Workaround: reduce common Copilot model routes

If you want the common chat / inline / Plan / Explore / utility routes to use DeepSeek as much as possible, try adding this to your VS Code settings:

{
  "chat.utilityModel": "deepseek/deepseek-v4-flash",
  "chat.utilitySmallModel": "deepseek/deepseek-v4-flash",
  "inlineChat.defaultModel": "DeepSeek V4 Pro (deepseek)",
  "chat.planAgent.defaultModel": "DeepSeek V4 Pro (deepseek)",
  "chat.exploreAgent.defaultModel": "DeepSeek V4 Pro (deepseek)",
  "github.copilot.chat.askAgent.model": "DeepSeek V4 Pro (deepseek)",
  "github.copilot.chat.implementAgent.model": "DeepSeek V4 Pro (deepseek)",
  "github.copilot.chat.exploreAgent.model": "DeepSeek V4 Pro (deepseek)"
}

Notes:

  • chat.utilityModel and chat.utilitySmallModel use the vendor/id format, for example deepseek/deepseek-v4-flash.
  • Agent/default model settings use the qualified display name format, for example DeepSeek V4 Pro (deepseek).
  • This workaround reduces common Copilot-model routes, but it does not guarantee zero Copilot credit usage.
  • It may increase DeepSeek API usage because Copilot utility/helper traffic is now routed to DeepSeek.

Alternative: avoid DeepSeek utility/helper cost

If you do not want Copilot internal utility/helper requests to use your DeepSeek API key, remove these settings or set them back to the default value:

{
  "chat.utilityModel": "",
  "chat.utilitySmallModel": ""
}

The tradeoff is that VS Code / Copilot may then use Copilot built-in utility models or Copilot credits for some internal tasks.

Ongoing mitigation

The extension is trying to reduce unnecessary DeepSeek token usage where it can. For example, low-risk helper requests are being routed with reasoning_effort: none where possible. See #147 for the current discussion.

I am also investigating whether these helper requests can be classified in a way that makes prefix-cache reuse more stable, but this is still early and may require changes or cooperation from the VS Code / Copilot side.

If you need to avoid all Copilot model credits

The most conservative option is to sign out of GitHub Copilot in VS Code and continue using the DeepSeek models provided by this extension.

However, some Copilot/VS Code features may degrade or become unavailable when Copilot is signed out, especially features that still depend on Copilot tokens, embeddings, or Copilot-only internal services.

Image input

If image recognition is involved, use:

DeepSeek: Configure Vision Proxy

Then choose API Endpoint and configure your own vision endpoint. In that mode, image recognition uses your configured endpoint instead of Copilot built-in vision models.

Please comment here if you still see Copilot built-in model usage after applying the workaround, or if DeepSeek Flash utility traffic is producing unexpectedly high cost. Logs and screenshots are helpful, especially the exact VS Code version, extension version, selected model, DeepSeek usage breakdown, and relevant settings.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions