接入教程

VS Code 的 OAI Compatible Provider 去哪了:Custom Endpoint 自定义端点怎么配(2026)

Kenji Watanabe

如果你在 VS Code 里找不到 OAI Compatible Provider(OpenAI 兼容 Provider) 这个选项,那不是你的问题:按 VS Code 官方文档,这个 provider 已经废弃,取而代之的是 Custom Endpoint(自定义端点),并且支持三种 API 类型。你的端点没坏,变的是注册入口。

OAI Compatible Provider 原来指什么

这个叫法来自 VS Code 的 Copilot Chat,不是某家模型厂商的术语。它曾经是模型选择器里的一个条目,让你把一个说 OpenAI Chat Completions 方言的第三方端点注册进来,从而让 Copilot Chat 调用你自己接的模型,而不是只能用内置的那几个。

这里要先把两个都带「兼容」二字的东西分开:

  • 协议层:端点实现的请求与响应形状。这是你所调用服务的属性,VS Code 做什么都改变不了它。协议本身可以看什么是 OpenAI 兼容 API
  • 客户端注册层:某一个编辑器用什么方式让你把端点填进去。变的是这一层。

所以:以前能用的端点现在照样能用,只是注册方式换了。

取代它的是 Custom Endpoint

VS Code 文档写得很直接:Custom Endpoint provider「replaces the deprecated OpenAI Compatible provider and supports additional API types」,并且 github.copilot.chat.customOAIModels 这个设置项已废弃。

真正的升级点在 API 类型。Custom Endpoint 提供三种:Chat CompletionsResponses、以及 Anthropic Messages API。旧 provider 默认你走 Chat Completions。第三种对接 Anthropic 协议端点的人尤其有意义——过去需要自己加一层协议转换,现在不用了。

怎么注册一个自定义端点

按官方文档,流程是:

  1. 在 Copilot Chat 的模型选择器里点 Manage Language Models(齿轮图标)。
  2. Add Models,再选 Custom Endpoint
  3. 填组名(group name)、显示名(display name)和 API Key。
  4. 选 API 类型:Chat Completions、Responses 或 Messages。
  5. VS Code 会打开 chatLanguageModels.json,剩下的模型条目在这里补完。

配置是一个 JSON 数组,每个元素是一个 provider 分组,组里挂一个或多个模型:

[
  {
    "name": "My Provider",
    "vendor": "customendpoint",
    "apiKey": "${input:myApiKey}",
    "apiType": "messages",
    "models": [
      {
        "id": "your-model-id",
        "name": "Display Name",
        "url": "https://your-endpoint.example.com/v1/messages",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 200000,
        "maxOutputTokens": 64000
      }
    ]
  }
]

这个结构里有两处最容易翻车。

url 要写完整端点路径,不是 base URL。 这跟大多数 SDK 的习惯正好相反——SDK 里你填一个 base,客户端自己拼路径;这里 VS Code 就按你写的地址调。填错这一处占了失败案例的很大一块,同类坑在OpenAI 兼容 Base URL 该填什么里已经列过。

API Key 用输入变量,别写死。 文档给的写法是 "apiKey": "${input:myApiKey}",运行时提示你输入,key 不会落进一个你可能顺手提交上去的文件里。照这个写。

API 类型怎么选

按你的端点实际提供什么协议来选,不是按模型是谁家的来选:

你的端点提供

选哪个 API 类型

OpenAI Chat Completions 方言

Chat Completions

OpenAI Responses 方言

Responses

Anthropic Messages 方言

Messages

同一个服务商可能在不同路径上同时提供好几种,有时候连 key 的分组都不一样。选错配对会报认证错误或 schema 错误,看起来像「key 不对」,于是排查方向整个跑偏。

另外,toolCallingvision 这些能力标记是你向 VS Code 声明的,不是它探测出来的。如果你对一个工具调用只实现了一半的端点写了 toolCalling: true,问题不会在注册时暴露,而会在任务跑到一半时炸。兼容性标称普遍比实际实现乐观,「兼容」到底覆盖到哪里为止把会断的那几层拆开讲过。

自定义端点管不到的部分

接了自己的模型,不等于整个编辑器脱离 GitHub。文档说得很具体:语义搜索(semantic search)、行内补全(inline suggestions / code completions),以及依赖 embeddings 的功能,仍然需要 GitHub 账号。

也就是说,自定义端点改变的是聊天面板里由谁来回答。它不会把 Copilot 变成一个自给自足的客户端,按后者去做规划,后面会有意外。

常见问题

VS Code 里的 OpenAI Compatible provider 去哪了?

已废弃。VS Code 文档说 Custom Endpoint provider 取代了它,并支持更多 API 类型;github.copilot.chat.customOAIModels 设置项同时废弃。

迁移时要改端点吗?

不用。废弃发生在客户端一侧。端点、key、模型 id 都能原样沿用,只是重新走一遍 Add Models → Custom Endpoint,然后在 chatLanguageModels.json 里补完。

url 填 base URL 还是完整路径?

完整路径。和多数 SDK 的习惯相反,VS Code 直接调你写的这个地址。填一个光秃秃的 base、指望它自动拼后面的路径,是这里最常见的配置错误。

可以把 VS Code 指向 Anthropic 协议的端点吗?

可以。Messages 是三种受支持的 API 类型之一,所以提供 Anthropic 方言的端点能直接注册,不需要再加一层转换。

自定义端点能替代 GitHub 账号吗?

不能。按文档,语义搜索、行内补全和依赖 embeddings 的功能仍需 GitHub 账号。换掉的只是聊天里的模型选择。