2026 年国内开发者会放进候选名单的三个 VS Code 扩展都支持自带模型:GitHub Copilot 走它的 Custom Endpoint(BYOK)provider,Continue 在 config.yaml 里加一条配置,Cline 用它的 OpenAI Compatible provider——三者都把 OpenAI Chat Completions 请求发到你填的地址,所以一把 Router One Key 配上 https://api.router.one/v1/chat/completions,三个扩展都能用;端点国内直连、无需 VPN,充值用支付宝或银行卡。
一句话结论:已经在用 GitHub Copilot、想让聊天和 agent 会话跑在自己的 Key 上、内联补全继续留在 GitHub 服务上,就留在 Copilot;想要开源、用一份声明式 YAML 配置、还能在 JetBrains 里用的助手,选 Continue;想要开源、逐步审批、填的字段最少的 agent,选 Cline。下面按可核对的属性对比三者——开源协议与收费模式、哪些功能跑在你的 Key 上、配置方式、实际协议、模型 id 的形式、自定义端点上的工具调用、国内可用性——然后给出每个扩展的配置块,以及「一个工具一把 Key」在 Dashboard → Logs 里把三笔账分开看的做法。
如果你的问题是「编辑器还是终端」,Cline vs Cursor vs Claude Code 和 OpenCode vs Claude Code vs Codex CLI 已经讲过。本文只待在 VS Code 里,比较把自己的端点接进去的三种方式。
对照表
| GitHub Copilot(BYOK) | Continue | Cline | |
|---|---|---|---|
| 扩展的开源协议与收费 | 闭源。个人有 Free、Pro、Pro+、Max 套餐,组织有 Business 与 Enterprise 席位;BYOK 不需要套餐 | 开源(Apache-2.0)。扩展免费,模型费用付给你配置的供应商 | 开源(Apache-2.0)。扩展免费,自带供应商 Key,或购买 Cline 自家按用量计费的额度 |
| 哪些功能跑在你的 Key 上 | Chat 视图里的聊天与 agent 会话,可选开启的辅助任务。内联补全、语义搜索和向量相关功能留在 GitHub 服务上 | 你分配给该模型的所有角色:chat、edit、apply、summarize。autocomplete 是单独的角色,测过之后再分配 | Cline 做的一切——除非选 Cline 自家 provider,否则没有厂商侧模型 |
| 配置方式 | Language Models editor → Add Models → Custom Endpoint,写入 chatLanguageModels.json | ~/.continue/config.yaml 的 models 下一条 | 设置面板三个字段:Base URL、API Key、Model ID |
| 实际发送的协议 | apiType: "chat-completions" → OpenAI Chat Completions(Responses、Messages 可按模型单独选) | provider: openai 加 useResponsesApi: false → Chat Completions | OpenAI Compatible provider → Chat Completions |
| 模型 id | models[].id,原样发送 | model:,原样发送 | Model ID 字段,原样发送 |
| 自定义端点上的工具调用与 agent | 使用 agent 时只列出 toolCalling: true 的模型——这个标志由你声明 | Agent 模式需要 capabilities: [tool_use],它会覆盖自动检测——自定义端点要自己声明 | 文档字段里没有工具调用开关;Cline 自己跑 agent 循环,模型跟不跟得上要靠一个测试任务 |
| 国内使用 | 扩展从 Marketplace 安装;模型流量只走你填的地址 | 同上 | 同上 |
有两行最关键。协议这一行解释了为什么一把 Key 能覆盖三者:/v1/chat/completions 是目录里每个对话模型都提供的端点,所以同一个 anthropic/claude-sonnet-5 或 openai/gpt-5.6-sol id 在下面每份配置里都能用。工具调用这一行是自定义端点与内置端点的差别所在:在 Copilot 和 Continue 里,工具标志是你写进去的,不是扩展检测出来的,模型页上标注支持工具调用的模型,也要先把标志设上,agent 才会用它。
GitHub Copilot:经 Custom Endpoint provider 自带 Key
Copilot 的 Bring Your Own Key 入口在 Language Models editor。在命令面板运行 Chat: Manage Language Models(或点聊天模型选择器里的齿轮图标),选 Add Models → Custom Endpoint,输入分组名、显示名称、你的 Router One Key 和 API 类型,VS Code 会打开 chatLanguageModels.json。把其中的 models 数组改成这样:
[
{
"name": "Router One",
"vendor": "customendpoint",
"apiKey": "${input:routerOneApiKey}",
"apiType": "chat-completions",
"models": [
{
"id": "anthropic/claude-sonnet-5",
"name": "Claude Sonnet 5 (Router One)",
"url": "https://api.router.one/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 120000,
"maxOutputTokens": 8192
}
]
}
]
官方文档写明了这个文件的三条规则。url 里已经带 /chat/completions、/responses 或 /messages 路径时原样使用;否则 VS Code 会按 API 类型补路径,缺 /v1 时先插入 /v1——文档建议填完整地址,示例就是这么写的。apiKey 保持 ${input:…} 输入变量的形式,明文 Key 不会落进文件,之后可以在 Language Models editor 里更换。maxInputTokens 与 maxOutputTokens 之和不能超过模型的上下文窗口,因为 VS Code 把两者之和当作总窗口;上面的数字是一个保守起点,远小于模型页显示的窗口,测试一轮通过后再往上调。
版本与套餐门槛。 Custom Endpoint provider 在 VS Code Insiders 1.121(2026 年 5 月 20 日)预览,1.122(2026 年 5 月 28 日)进入 Stable;它取代了已弃用的 OpenAI Compatible provider 和 github.copilot.chat.customOAIModels 设置,所以 Add Models 里只有旧 provider 时,先升级 VS Code 再改 JSON。BYOK 模型无需登录 GitHub 账号、无需 Copilot 套餐即可使用。Copilot Business 或 Enterprise 用户受组织策略 Bring Your Own Language Model Key in VS Code 约束——GitHub 2026 年 4 月的更新日志写明它默认开启、管理员可以关闭——所以工作电脑上找不到 Custom Endpoint 选项,该先问管理员,而不是排查配置。BYOK 的用量由你配置的供应商计费,这里就是你的 Router One 钱包,不计入 Copilot 的请求额度。
坑在这里。 新加的模型可能要重启 VS Code 才出现。在聊天里使用 agent 时只列出 toolCalling: true 的模型;这个标志是你的声明,所以要选模型页标注支持工具调用的模型,再跑一轮 agent 对话到 Trace 里确认。辅助任务——标题、commit 信息、PR 描述——默认仍用 Copilot 内置模型,除非你把 chat.utilityModel 和 chat.utilitySmallModel 指向 Router One 的模型,或把 chat.byokUtilityModelDefault 设为 Main Agent Model;设了之后,这些后台调用也会落在同一把 Key 上。完整步骤,包括 Responses 与 Messages 两种 API 类型,见 GitHub Copilot 接入页。
Continue:config.yaml 里的一条
Continue 是 VS Code 与 JetBrains 上的开源(Apache-2.0)助手,模型配置全部在一个 YAML 文件里。它的 openai provider 接受 apiBase,这是文档给 OpenAI 兼容端点的正规写法:
# ~/.continue/config.yaml — 文件已存在时合并进 models
name: Router One
version: 1.0.0
schema: v1
models:
- name: Claude Sonnet 5 (Router One)
provider: openai
model: anthropic/claude-sonnet-5
apiBase: https://api.router.one/v1
apiKey: sk-your-api-key
useResponsesApi: false
roles: [chat, edit, apply]
capabilities: [tool_use, image_input]
新建文件时顶层的 name、version、schema 是必填项;已有文件保留自己的顶层字段,把这条加进 models。useResponsesApi: false 把这条固定在 /v1/chat/completions 上——Continue 对 o-series 和 GPT-5 模型名默认走 Responses 端点,而 Chat Completions 是目录里每个模型都提供的端点。Continue 接入页有带占位符的同一份配置和合并规则。
坑在这里。 capabilities 会覆盖 Continue 的自动检测,参考文档说检测依据是 provider 和 model;openai provider 下填一个 Router One 的 id,正是文档所说的「自定义部署」情形,所以 tool_use 要自己声明——参考文档标注它「Agent 模式必需」——image_input 只在模型页列出图片输入时才加。roles 默认是 [chat, edit, apply, summarize];autocomplete 是单独的角色、单独的请求模式,在该角色下实测通过后再加,不要默认聊天通了补全就通。旧的 config.json 格式已弃用。
Cline:三个字段加一个 agent 循环
Cline 是 VS Code 上的开源(Apache-2.0)编程 agent,账单自理:要么买 Cline 自家按用量计费的额度,要么接入供应商 Key,而它的「OpenAI Compatible」provider 接受任意 base URL:
# Cline → 设置(齿轮图标)→ API Provider: OpenAI Compatible
Base URL: https://api.router.one/v1
API Key: sk-your-api-key
Model ID: anthropic/claude-sonnet-5
文档把 Base URL 称为「关键一步」,并提醒它不会是 https://api.openai.com/v1;Model ID 就是供应商提供的 id,从 /models 原样复制。Model Configuration 下文档列出的字段是 Max Output Tokens、Context Window size、Image Support、Computer Use 和输入输出单价——上下文窗口按模型页填,单价按目录填,Cline 自己的费用显示才能和网关 Trace 对得上。Cline 接入页有逐字段的版本。
坑在这里。 没有工具调用标志可设:Cline 用自己的一套工具在扩展内跑 agent 循环,它的 OpenAI Compatible 模型配置里没有 toolCalling 或 capabilities 这类字段,所以实际的检验方式是开着审批跑一个小的真实任务。除非开启 auto-approve,Cline 在写文件和执行 shell 命令前都会先问你——在模型证明自己之前,这个开关值得先关着。Cline 报「Model Not Found」通常是 id 不在端点提供的范围内——回目录重新复制;网关 4xx 的响应体含义见错误码页。
一把 Key 跑三个——更好的做法是一个工具一把
「一把 Key 跑三个」的字面答案是能:同一把 sk- Key 在 chatLanguageModels.json、config.yaml 和 Cline 的设置里都被接受,每次调用都落进同一个钱包。真正划算的做法是一个扩展一把 Key,在 Dashboard → API Keys 里建好、按工具命名:
- 每个工具一个硬上限。 给每把 Key 设
maxSpend——给最不熟的那个扩展试用一周,设一个小额上限——agent 会话失控时到顶即停、返回 402,钱包和另外两把 Key 不受影响。rateLimit和tokenLimitTpm能在半路按住失控的重试循环。 - 把三个工具分开看。 每次请求都在 Dashboard → Logs 里记录模型、输入输出 token、花费、延迟和状态;按 Key 筛一下,「那个烧钱的下午是 Copilot 的 agent 还是 Cline」就是事实而不是猜测。Copilot 的辅助任务指向你的 Key 之后,会在 Copilot 那把 Key 下表现为许多小额调用;Cline 的逐步审批则是每一步一次调用。账本具体记什么见成本追踪,更多工具下的同一套做法见按 Key 归因成本。
- 换模型不动工具。 改 Copilot JSON 里的
id、Continue YAML 里的model:,或 Cline 的 Model ID 字段——不需要新账号或新的计费关系。选型可以参考 Claude Sonnet 5 vs GPT-5.4 和 GPT-5.3 Codex Spark vs Claude Sonnet 5。实时单价见 /models;部分模型最低可到官方公示价的 1 折(最高省 90%),想要固定月费,钱包之外还有 Pro/Max/Ultra 订阅,见定价。 - 无需你配置的故障转移。 上游线路返回可重试的 5xx 或超时时,Router One 可以把同一个模型的请求改由另一条健康线路重试。它不会换成别的模型,长 agent 会话仍应容忍偶发的失败调用。
注意边界:agent 循环、审批和工具执行都发生在扩展里;Router One 负责计量、记 Trace 和给模型调用设上限。网关在各端点接受什么,写在 API 兼容性事实页上。
国内使用
三个扩展都从 VS Code Marketplace 安装;需要一个够得着的端点的是模型流量,而它只走你填的地址。Router One 的端点国内直连、无需 VPN;钱包在同一个托管收银台用支付宝或银行卡充值,也支持 6 条链上的 USDT/USDC(Tron、BSC、以太坊、Polygon、Base、Arbitrum),全程不需要美国信用卡,步骤见用支付宝购买 LLM API。Copilot 的内联补全和语义搜索由 GitHub 托管,不在网关范围内,它们的表现和你现在看到的一样。换好地址之后如果扩展仍然报 403 或「unsupported country, region, or territory」,说明请求其实没走到新地址——地区限制修复列出了要查的项。IDE fork 的同一套配置见 Cursor 国内接入,把整套编程工具放在一个钱包上的做法见 AI 编程工具场景。
常见问题
GitHub Copilot 的 BYOK 需要 Copilot 订阅吗? 不需要。VS Code 官方文档写明 BYOK 模型无需登录 GitHub 账号、无需 Copilot 套餐即可使用,一把 Router One Key 就能解锁聊天和 agent 会话。套餐买到的是 GitHub 托管的功能:内联补全、语义搜索、向量相关功能和内置辅助模型。
每个工具该填哪个地址? Copilot 在 models[].url 里填完整端点 https://api.router.one/v1/chat/completions;Continue 和 Cline 填 base URL https://api.router.one/v1,它们自己会补上 /chat/completions。三者发送的都是 OpenAI Chat Completions,目录里每个对话模型都提供这个端点。
能通过 Router One 在 GitHub Copilot 里用 Claude 模型吗? 能。apiType 为 chat-completions 时,目录里任何 Claude id(例如 anthropic/claude-sonnet-5)在 /v1/chat/completions 地址上都可用。Claude 系列也可以改用 Messages API 类型配 https://api.router.one/v1/messages,此时 VS Code 发送 x-api-key 而不是 Bearer 头,两种认证头 Router One 都接受。
为什么一切换到 agent 我的模型就不见了? Copilot 使用 agent 时只列出 toolCalling: true 的模型;Continue 的 Agent 模式需要 capabilities: [tool_use]。两者都是你写在配置里的声明,不是扩展检测出来的能力。给模型页标注支持工具调用的模型设上标志,选择器里没有就重启 VS Code,再到 Trace 里核对一轮 agent 对话。
需要三把 API Key 吗? 一把 Key 三个工具都能用。推荐一个工具一把 Key,由同一个钱包供血:每把 Key 各带自己的 maxSpend 上限,Dashboard → Logs 按 Key 筛选,每个工具花了多少是事实而不是估算。
下一步
- Copilot 分步配置:GitHub Copilot 接入 Router One
- Continue 与 Cline:Continue 接入、Cline 接入;同一把 Key 也适用于 Roo Code 和 Kilo Code
- 端点的行为:OpenAI 兼容 API、工具调用指南
- 编辑器还是终端:Cline vs Cursor vs Claude Code、OpenCode vs Claude Code vs Codex CLI
- 实时价格与套餐:模型页、定价
到 router.one 建三把 Key,各设上限,让每个扩展各跑一周真实工作,再做决定。