VS Code 中的 AI 语言模型
Visual Studio Code 让您可以访问多个内置语言模型,每个模型都针对不同的任务进行了优化。您可以为聊天、行内建议和实用任务切换模型,还可以通过使用您自己的 API 密钥添加更多模型。
有关语言模型的工作原理、特性以及如何选择合适模型的背景信息,请参阅 语言模型概念。
更改聊天模型
使用聊天输入框中的语言模型选择器来更改聊天对话和代码编辑的模型。

不同的模型各有其优势。对于快速编辑和简单问题,请使用快速模型;对于复杂的重构、架构决策或多步骤任务,请使用推理模型。根据您所使用的 Agent 类型,可用模型列表可能会有所不同。
您可以通过 使用您自己的语言模型 API 密钥 来进一步扩展可用模型列表。
在 受限模式 的不受信任工作区中,聊天模型选择器仅显示 Auto。信任工作区以恢复完整的模型列表。
如果您是 Copilot Business 或 Enterprise 用户,您的管理员需要在 GitHub.com 的 Copilot 策略设置中选择加入 Editor Preview Features(编辑器预览功能),以便为您的组织启用某些模型。
配置思考强度
某些模型支持可配置的思考强度,这控制了模型对每个请求应用的推理量。有关思考和推理的背景信息,请参阅 思考和推理。
默认情况下,VS Code 会设置推荐的强度级别并启用自适应推理,此时模型会根据每个请求的复杂性动态决定思考的程度。对于大多数用例,默认设置效果很好。
更高的思考强度会产生更多的思考 token,从而增加 AI 额度的消耗。仅对真正复杂的任务增加思考强度。了解有关 优化 AI 额度使用 的更多信息。
配置思考强度
-
打开聊天输入框中的模型选择器并选择一个推理模型。
-
选择模型名称旁边显示的 > 箭头以打开 Thinking Effort(思考强度)子菜单。
注意非推理模型(例如 GPT-4.1 和 GPT-4o)不显示思考强度子菜单。
-
选择一个强度级别。

模型选择器标签会更新以显示所选的强度级别,例如“Claude Sonnet 4.6 · High”。系统会按会话记住强度级别,因此重新访问先前的会话会保留其使用的强度级别。新对话将从您为该模型最后设置的强度级别开始。
github.copilot.chat.anthropic.thinking.effort 和 github.copilot.chat.responsesApiReasoningEffort 设置已被弃用。请直接从语言模型选择器配置思考强度。
使用自动模型选择
通过自动模型选择,VS Code 会评估任务复杂性和实时模型可用性,以将每个请求路由到最佳模型。有关自动模型选择工作原理的背景信息,请参阅 自动模型选择。
要使用自动模型选择,请在聊天的模型选择器中选择 Auto。您可以通过将鼠标悬停在聊天响应上来查看用于生成响应的模型。

管理语言模型
您可以使用语言模型编辑器查看所有可用模型,选择在模型选择器中显示的模型,并通过添加内置提供商或扩展提供的模型提供商来添加更多模型。
要打开“语言模型”编辑器,请打开“聊天”视图中的模型选择器并选择 Manage Language Models(齿轮图标),或者从命令面板运行 Chat: Manage Language Models 命令。“语言模型”编辑器默认在编辑器区域上方的 模态覆盖层 中打开。

该编辑器列出了对您可用的所有模型,显示了关键信息,例如模型功能、上下文大小、计费详细信息和可见性状态。默认情况下,模型按提供商分组,但您也可以按可见性对其进行分组。
您可以使用以下选项搜索和过滤模型
- 使用搜索框进行文本搜索
- 提供商:
@provider:"OpenAI" - 功能:
@capability:tools、@capability:vision、@capability:agent - 可见性:
@visible:true/false
自定义模型选择器
您可以通过更改“语言模型”编辑器中模型的可见性状态来自定义模型选择器中显示哪些模型。您可以显示或隐藏来自任何提供商的模型。
将鼠标悬停在列表中的模型上,然后选择眼睛图标以在模型选择器中显示或隐藏该模型。

固定常用模型
固定模型以将其保持在模型选择器顶部的固定位置。固定的模型会显示在专用的 Pinned(已固定)部分中,并且在您使用其他模型时不会发生位移。
固定或取消固定模型
-
打开聊天输入框中的模型选择器。
-
将鼠标悬停在模型上,然后选择图钉图标将其添加到 Pinned(已固定)部分。
-
要取消固定模型,请在 Pinned(已固定)部分中将鼠标悬停在其上方,然后选择取消固定图标。
使用您自己的语言模型密钥
使用您自己的密钥 (BYOK) 允许您连接到任何兼容的模型提供商,同时仍可使用 VS Code 的聊天体验和工具。您可以使用 BYOK 访问来自其他提供商的模型、在本地运行模型,或使用 VS Code 中尚不可作为内置选项的模型。
BYOK 模型无需登录 GitHub 账号,也无需 Copilot 订阅计划即可工作。这使您可以完全使用自己的模型来使用 AI 聊天功能,包括像 Ollama 这样的本地模型的完全离线场景。
如果您在 agent 主机上运行会话(已启用 chat.agentHost.enabled This setting can be managed by your organization. Contact your administrator to change it.),例如 Agents 窗口 中的 Copilot 会话,请启用 chat.agentHost.byokModels.enabled 以在这些会话中使用 BYOK 模型。此设置是实验性的,仅在重启 agent 主机进程后生效。
您还可以使用这些模型来 覆盖 VS Code 中用于实用任务的模型(例如标题生成和意图检测)。
某些功能仍需要 GitHub 账号:语义搜索、行内建议(代码补全)以及依赖嵌入的功能。BYOK 仅适用于聊天体验和实用任务。
VS Code 提供了不同的选项来添加更多语言模型
-
内置提供商:您想要的提供商已在列表中(Azure、Anthropic、Gemini、OpenAI 等)。
-
扩展:市场扩展提供模型,例如用于本地模型的 AI Toolkit。
-
自定义端点:您拥有支持 Chat Completions、Responses 或 Messages API 的自托管、企业或其他端点。
如果您是 Copilot Business 或 Enterprise 用户,您的管理员可以在 GitHub.com 的 Copilot 策略设置中禁用 Bring Your Own Language Model Key in VS Code 策略。有关更多详细信息,请参阅 GitHub Copilot 文档。
从内置提供商添加模型
从可在 VS Code 中随时使用的常用提供商集合中进行选择。根据提供商的不同,您需要 API 密钥以及诸如端点 URL 等其他配置详细信息。
内置的 Ollama 提供商已弃用。对于本地 Ollama 模型,请改从 Visual Studio 市场上的 Ollama 发布者 安装官方 Ollama 扩展。该扩展由 Ollama 团队维护,因此它比内置提供商能更快地支持新的 Ollama 模型和功能。如果您将内置的 Ollama 提供商用于 BYOK 本地模型,请安装该扩展并删除内置提供商配置,以便继续无缝使用 Ollama 模型。
配置来自内置提供商的语言模型
-
通过从语言模型选择器中选择 Manage Language Models(齿轮图标)或通过命令面板中的 Chat: Manage Language Models 命令来打开“语言模型”编辑器。
-
选择 Add Models,然后从列表中选择一个模型提供商。

-
为模型输入一个组名。这是在模型选择器和“语言模型”编辑器中显示的分组标签。
如果需要,您以后可以从“语言模型”编辑器中更改组名。
-
输入特定于提供商的详细信息,例如 API 密钥或端点 URL。
-
如果提供商需要其他配置,VS Code 会打开一个
chatLanguageModels.json文件,您可以在其中配置提供商和模型的详细信息。有关配置属性的详细信息,请参阅 模型配置参考。以下示例展示了使用 Entra ID 身份验证的 Azure OpenAI 配置
[ { "name": "Azure", "vendor": "azure", "models": [ { "id": "<my-deployment-name>", "name": "GPT-5.5", "url": "https://<my-endpoint>.openai.azure.com", "toolCalling": true, "vision": true, "maxInputTokens": 200000, "maxOutputTokens": 64000 } ] } ] -
配置模型后,您现在可以从聊天中的模型选择器中选择它。
要使模型在聊天中使用 agent 时可用,它必须支持工具调用。如果模型不支持工具调用,它将不会显示在模型选择器中。
添加模型提供商扩展
您可以从 Visual Studio 市场安装将语言模型提供商添加到 VS Code 的扩展。这些扩展可以提供对其他云托管或本地运行的模型的访问权限。例如,适用于 VS Code 的 Foundry Toolkit 扩展提供了对 Foundry 的本地和云托管模型的访问权限。
添加模型提供商扩展
-
通过从语言模型选择器中选择 Manage Language Models(齿轮图标)或通过命令面板中的 Chat: Manage Language Models 命令来打开“语言模型”编辑器。
-
选择 Install Model Providers。
VS Code 会打开“扩展”视图,并过滤出语言模型提供商扩展。或者,打开“扩展”视图并搜索
@tag:language-models。 -
选择 Install 以安装扩展,例如 Foundry Toolkit for VS Code。
-
按照扩展的设置说明配置模型访问权限。
-
扩展的模型会显示在聊天的模型选择器和“语言模型”编辑器中。如果模型未显示,请重新加载 VS Code。
添加自定义端点模型
它替换了已弃用的 OpenAI Compatible 提供商,并支持其他 API 类型。 github.copilot.chat.customOAIModels 设置已弃用。
自定义端点(Custom Endpoint)提供商允许您将任何兼容的 API 端点连接到 VS Code 中的聊天。它支持三种 API 类型,您可以按提供商或按模型进行选择:Chat Completions、Responses 和 Anthropic Messages API。这使其非常适合自托管模型、企业网关以及未作为内置提供商提供的提供商。
使用自定义端点提供商添加模型
-
通过从语言模型选择器中选择 Manage Language Models(齿轮图标)或通过命令面板中的 Chat: Manage Language Models 命令来打开“语言模型”编辑器。
-
选择 Add Models,然后从列表中选择 Custom Endpoint。
-
为模型输入一个组名。这是在模型选择器和“语言模型”编辑器中显示的分组标签。
如果需要,您以后可以从“语言模型”编辑器中更改组名。
-
为端点输入显示名称和 API 密钥。
-
选择 API 类型:Chat Completions、Responses 或 Messages。确保模型支持此 API 类型。
-
VS Code 会打开一个
chatLanguageModels.json文件,您可以在其中配置模型详细信息。更新模型属性并保存文件。有关配置属性的详细信息,请参阅 自定义端点配置参考。以下示例展示了 Anthropic 端点的 Messages API 配置
[ { "name": "Anthropic", "vendor": "customendpoint", "apiKey": "${input:anthropicApiKey}", "apiType": "messages", "models": [ { "id": "claude-sonnet-4-6", "name": "Claude Sonnet 4.6", "url": "https://api.anthropic.com/v1/messages", "toolCalling": true, "vision": true, "maxInputTokens": 200000, "maxOutputTokens": 64000 } ] } ] -
配置模型后,从聊天的模型选择器中选择它。
提示如果您添加的模型没有立即显示在模型选择器中,请重启 VS Code。
自定义端点配置参考
自定义端点提供商支持所有 通用模型配置属性,以及本节中描述的其他提供商级和模型级属性。提供商级属性在 provider 对象上设置,模型级属性在 models 数组的每个条目上设置。当某个属性在两个级别上都进行设置时,模型级的值优先。
提供商级属性(除了 通用提供商属性 之外)
| 属性 | 描述 |
|---|---|
vendor |
必须为 customendpoint 才能使用自定义端点提供商。 |
apiKey |
用于对请求进行身份验证的 API 密钥。通过使用输入变量(例如 "apiKey": "${input:myApiKey}")安全地存储密钥,而不是提交原始密钥。 |
apiType |
(可选) 该提供商中所有模型的默认 API 类型:chat-completions(默认)、responses 或 messages。可以通过模型级的 apiType 针对每个模型进行覆盖。 |
url |
(可选) 用于自动发现的基础 URL。设置后,VS Code 会向端点查询可用模型列表,而不是使用 models 数组。省略它以使用 models 数组显式配置模型。 |
除了 通用模型属性 之外,自定义端点提供商还支持以下模型级属性
| 属性 | 描述 |
|---|---|
apiType |
(可选) 覆盖此模型的 API 类型(chat-completions、responses 或 messages)。默认为提供商级的 apiType,或者在两者均未设置时从 url 推断。 |
contextWindow |
(可选) 模型以 token 为单位的完整上下文窗口(输入 + 输出),例如 1M token 模型为 1000000。设置后,您可以省略 maxInputTokens,VS Code 会将其推导为 contextWindow - maxOutputTokens。 |
modelOptions |
(可选) 随每个请求发送给模型的请求参数对象,例如 temperature 和 top_p。例如,"modelOptions": { "temperature": 0.2 }。 |
requestHeaders |
(可选) 包含在此模型请求中的其他 HTTP 标头对象,例如用于通过网关或自定义域名进行身份验证。请参阅 自定义身份验证标头。 |
端点 URL 解析
您为模型提供的 url 会根据其 API 类型进行解析
- 如果 URL 已经包含显式的 API 路径(
/chat/completions、/responses或/messages),则按原样使用。 - 否则,VS Code 会附加模型 API 类型的路径。如果 URL 尚未以版本段(例如
/v1)结尾,VS Code 会先插入/v1。例如,对于 Responses API 类型,https://my-host.example.com会解析为https://my-host.example.com/v1/responses。
为避免产生歧义,请提供包含 API 路径的完整端点 URL,如示例所示。
自定义身份验证标头
默认情况下,自定义端点提供商会从 API 类型和 URL 推断身份验证标头。对于 Messages API,它发送 x-api-key。对于 Azure OpenAI URL,它发送 api-key。否则,它发送 Authorization: Bearer <apiKey>。
您可以使用 requestHeaders 覆盖身份验证标头。当您提供众所周知的身份验证标头(例如 Authorization、api-key、x-api-key、x-goog-api-key 或 apikey)时,VS Code 不会同时发送默认推断的身份验证标头,因此端点不会收到冲突的凭据。
要将您的 API 密钥保留在密钥存储中,同时在自定义标头中使用它,请在标头值中使用 ${apiKey} token。VS Code 会在请求时将其替换为配置的 apiKey
[
{
"name": "Gateway",
"vendor": "customendpoint",
"apiKey": "${input:myApiKey}",
"models": [
{
"id": "my-model",
"name": "My Model",
"url": "https://gateway.example.com/v1/chat/completions",
"toolCalling": true,
"vision": false,
"maxInputTokens": 128000,
"maxOutputTokens": 16000,
"thinking": true,
"supportsReasoningEffort": ["low", "medium", "high"],
"reasoningEffortFormat": "chat-completions",
"modelOptions": {
"temperature": 0.2,
"top_p": 0.9
},
"requestHeaders": {
"Authorization": "Bearer ${apiKey}",
"Ocp-Apim-Subscription-Key": "my-subscription-key"
}
}
]
}
]
更新模型提供商详细信息
要更新您先前配置的模型提供商的详细信息
-
从“聊天”视图中的语言模型选择器中选择 Manage Language Models(齿轮图标),或者从命令面板运行 Chat: Manage Language Models 命令。
-
在“语言模型”编辑器中,选择要更新的模型提供商旁边的齿轮图标。

-
更新提供商详细信息,例如 API 密钥或端点 URL。
为其他功能配置模型
除了主聊天模型外,您还可以配置用于行内聊天、行内建议和后台实用任务的模型。
更改行内聊天模型
您可以为编辑器行内聊天配置默认语言模型。这使您可以为行内聊天使用与聊天对话不同的模型。
要为行内聊天配置默认模型,请使用 inlineChat.defaultModel 设置。该设置列出了模型选择器中的所有可用模型。
如果您在行内聊天会话期间更改了模型,则该选择在会话的剩余时间内保持不变。重新加载 VS Code 后,模型会重置为 inlineChat.defaultModel 设置中指定的值。
更改行内建议模型
更改用于在编辑器中生成行内建议的语言模型
-
从 VS Code 标题栏中的“聊天”菜单中选择 Configure Inline Suggestions...(配置行内建议...)。
-
选择 Change Completions Model...(更改补全模型...),然后从列表中选择一个模型。
可用模型列表可能会有所不同并随时间而变化。当没有替代模型可用时,更改模型的选项将不可用。
如果您是 Copilot Business 或 Enterprise 用户,您的管理员需要在 GitHub.com 的 Copilot 策略设置中选择加入 Editor Preview Features,以便为您的组织启用某些模型。
更改实用任务模型
除了主聊天模型外,VS Code 还会在后台使用轻量级模型来执行诸如生成标题、创建提交信息和检测意图等实用任务。默认情况下,这些任务使用 GitHub Copilot 提供的内置实用模型。您可以使用任何可用模型(包括 BYOK 和扩展提供的模型)来覆盖用于这些任务的模型。
根据任务类型的不同,实用模型有两个设置
- chat.utilityModel :覆盖用于通用实用流程(例如生成标题和摘要、设置搜索和 Git 审查)的模型。
- chat.utilitySmallModel :覆盖用于快速、轻量级实用流程(例如提交信息、重命名建议、分支名称生成、提示词分类和意图检测)的模型。建议为此设置使用快速且廉价的模型。
这两个设置均默认为 Default,它使用来自 GitHub Copilot 的内置实用模型。
如果您在未登录 GitHub 账号的情况下使用 BYOK 模型,则内置实用模型不可用。VS Code 会在“聊天”视图中显示一条通知,提示您配置实用模型。将 chat.utilityModel 和 chat.utilitySmallModel 设置为 BYOK 模型,以启用诸如标题生成和提交信息创建等实用功能。
为 BYOK 模型配置默认实用模型
当您选择一个 BYOK 模型作为主 agent 模型时,请使用 chat.byokUtilityModelDefault 设置来控制内置实用流程默认使用的模型。此设置接受以下值
- None:不使用默认实用模型。
- Main Agent Model:将所选的 BYOK 主 agent 模型用于实用流程。
- GitHub Copilot:使用默认的 GitHub Copilot 实用模型。
默认情况下,当 BYOK 模型为主 agent 时,不会使用任何实用模型。在您设置此选项或配置特定的实用模型之前,诸如聊天标题生成和提交信息生成等后台任务不会运行。
当主 agent 模型由 GitHub Copilot 提供时,此设置无效。在 chat.utilityModel 或 chat.utilitySmallModel 中配置的特定模型优先于此默认值。
模型配置参考
当您添加 BYOK 模型时,您可以在 chatLanguageModels.json 文件中配置模型属性。该配置具有两个级别:提供商级和模型级。
根据提供商的不同,某些提供商和模型属性可能是必需的,而其他属性则是可选的。例如,某些提供商仅需要 API 密钥和端点 URL 即可自动发现可用模型,而其他提供商则要求您为每个模型指定详细信息。
提供商级属性包括
| 属性 | 描述 |
|---|---|
vendor |
模型提供商,例如 azure、openai、customendpoint |
name |
UI 中显示的提供商的显示名称(组名)。 |
models |
(可选) 此提供商提供的模型配置数组。 |
models 数组中的每个模型都支持以下属性
| 属性 | 描述 |
|---|---|
id |
发送给 API 的模型标识符。例如,对于 Foundry 来说,这是部署名称。 |
name |
模型选择器中显示的显示名称。 |
url |
模型的完整端点 URL。 |
apiType |
(可选) 按模型覆盖 API 类型(chat-completions、responses 或 messages)。默认为提供商级的 apiType。 |
toolCalling |
如果模型支持工具调用,则设为 true。 |
vision |
如果模型支持图像输入,则设为 true。 |
maxInputTokens |
模型接受的最大输入 token 数。与 maxOutputTokens 一起,这定义了模型的上下文窗口。 |
maxOutputTokens |
模型生成的最大输出 token 数。与 maxInputTokens 一起,这定义了模型的上下文窗口。 |
editTools |
(可选) 模型支持的编辑工具数组。如果未配置,编辑器将尝试多种编辑工具并选择最佳的一个。可能的值:find-replace、multi-find-replace、apply-patch、code-rewrite。 |
thinking |
(可选) 如果模型支持思考功能,则设为 true。默认为 false。 |
streaming |
(可选) 如果模型支持流式响应,则设为 true。默认为 true。 |
zeroDataRetentionEnabled |
(可选) 如果为此端点启用了零数据保留 (ZDR),则设为 true。启用后,通过 Responses API 的请求将不会发送 previous_response_id。默认为 false。 |
supportsReasoningEffort |
(可选) 模型接受的推理强度级别数组(例如 ["low", "medium", "high"])。设置后,模型选择器中会显示一个 Thinking Effort(思考强度)选择器。常见级别包括 minimal、low、medium、high。 |
reasoningEffortFormat |
(可选) 用于将推理强度转发给模型的主体形状。chat-completions 发送顶级 reasoning_effort 字符串,responses 发送嵌套的 reasoning.effort 对象,而 messages 发送 output_config.effort。未设置时,格式遵循 URL。 |
requestHeaders |
(可选) 包含在此模型请求中的其他 HTTP 标头对象。某些保留标头(禁止标头、转发标头和内部标头)是不允许的,如果存在将被忽略。 |
maxInputTokens 和 maxOutputTokens 的总和不得超过模型的上下文窗口。VS Code 使用这两个值的总和作为模型的总上下文窗口,例如在“聊天”视图中显示上下文使用情况。通常,您将 maxInputTokens 设置为模型的上下文窗口大小减去 maxOutputTokens。请查看您的提供商的模型文档以了解上下文窗口大小。
常见问题
如何为 Copilot Business 或 Copilot Enterprise 启用“使用您自己的模型密钥”?
如果您是 Copilot Business 或 Enterprise 用户,您的组织管理员必须在 GitHub.com 上的 Copilot 策略设置中启用 Bring Your Own Language Model Key in VS Code(在 VS Code 中使用您自己的语言模型密钥)策略。启用该策略后,您可以像个人订阅用户一样使用自己的 API 密钥添加模型。有关更多详细信息,请参阅 GitHub Copilot 文档。
我可以在 VS Code 中将本地托管的模型与 Copilot 一起使用吗?
您可以通过使用 带上您自己的模型密钥 (BYOK) 并使用支持连接到本地模型的模型提供商,在聊天中使用本地托管的模型。您有不同的选项来连接到本地模型
- 使用支持本地模型的内置模型提供商
- 从 Visual Studio 市场安装扩展,例如 AI Toolkit for VS Code with Foundry Local
本地托管的模型无需 GitHub 账号、无需 Copilot 计划且无需互联网连接即可工作。要获得完整的实用功能集(标题生成、提交信息等),请将 chat.utilityModel 和 chat.utilitySmallModel 配置为指向本地模型。
目前,您无法将行内建议连接到本地模型。VS Code 提供了扩展 API InlineCompletionItemProvider,允许扩展贡献自定义补全提供商。您可以从我们的 Inline Completions 示例 开始。
某些功能需要 GitHub 账号和互联网连接:语义搜索、行内建议(代码补全)以及依赖嵌入的功能。这些功能通过 BYOK 模型不可用。
我可以在没有互联网连接的情况下使用本地模型吗?
可以,您完全可以离线使用本地模型。通过使用 Chat: Manage Language Models 命令添加诸如 Ollama 之类的本地模型提供商,在聊天中选择该模型并开始使用它。要同时启用诸如标题生成和提交信息等实用功能,请将 chat.utilityModel 和 chat.utilitySmallModel 设置为本地模型。依赖于 GitHub Copilot 服务的功(如语义搜索、行内建议和嵌入)在离线时不可用。
我可以在没有 Copilot 计划的情况下使用本地模型吗?
可以,您可以在没有 Copilot 计划且无需登录 GitHub 账号的情况下使用 BYOK 模型(包括本地模型)。通过 Chat: Manage Language Models 命令添加模型并在聊天中选择它。依赖于 GitHub Copilot 服务的功(如语义搜索、行内建议和嵌入)需要 Copilot 计划。