> https://router.one/zh/blog/github-copilot-byok-vs-continue-vs-cline 的 Markdown 镜像，供 AI 助手与爬虫使用。Router One 是 OpenAI 兼容的统一 LLM API 网关。
> 发布：2026-09-07 · 作者：Router One Team

# GitHub Copilot BYOK vs Continue vs Cline：VS Code 一把 Key 全接入

_VS Code 三个可自带 Key 的扩展对比：GitHub Copilot BYOK、Continue、Cline 的开源许可、配置方式、实际协议、工具调用与国内直连，并用一把 Router One Key 同时接入三者。_

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](https://router.one/zh/blog/cline-vs-cursor-vs-claude-code) 和 [OpenCode vs Claude Code vs Codex CLI](https://router.one/zh/blog/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` 是[目录](https://router.one/zh/models)里每个对话模型都提供的端点，所以同一个 `anthropic/claude-sonnet-5` 或 `openai/gpt-5.6-sol` id 在下面每份配置里都能用。工具调用这一行是自定义端点与内置端点的差别所在：在 Copilot 和 Continue 里，工具标志是你写进去的，不是扩展检测出来的，[模型页](https://router.one/zh/models)上标注支持工具调用的模型，也要先把标志设上，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` 数组改成这样：

```json
[
  {
    "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 接入页](https://router.one/zh/integrations/github-copilot)。

## Continue：config.yaml 里的一条

Continue 是 VS Code 与 JetBrains 上的开源（Apache-2.0）助手，模型配置全部在一个 YAML 文件里。它的 `openai` provider 接受 `apiBase`，这是文档给 OpenAI 兼容端点的正规写法：

```yaml
# ~/.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 接入页](https://router.one/zh/integrations/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：

```text
# 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](https://router.one/zh/models) 原样复制。Model Configuration 下文档列出的字段是 Max Output Tokens、Context Window size、Image Support、Computer Use 和输入输出单价——上下文窗口按模型页填，单价按目录填，Cline 自己的费用显示才能和网关 Trace 对得上。[Cline 接入页](https://router.one/zh/integrations/cline)有逐字段的版本。

**坑在这里。** 没有工具调用标志可设：Cline 用自己的一套工具在扩展内跑 agent 循环，它的 OpenAI Compatible 模型配置里没有 `toolCalling` 或 `capabilities` 这类字段，所以实际的检验方式是开着审批跑一个小的真实任务。除非开启 auto-approve，Cline 在写文件和执行 shell 命令前都会先问你——在模型证明自己之前，这个开关值得先关着。Cline 报「Model Not Found」通常是 id 不在端点提供的范围内——回目录重新复制；网关 4xx 的响应体含义见[错误码页](https://router.one/zh/llm-api-error-codes)。

## 一把 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 的逐步审批则是每一步一次调用。账本具体记什么见[成本追踪](https://router.one/zh/llm-cost-tracking)，更多工具下的同一套做法见[按 Key 归因成本](https://router.one/zh/blog/track-llm-api-costs-per-key)。
- **换模型不动工具。** 改 Copilot JSON 里的 `id`、Continue YAML 里的 `model:`，或 Cline 的 Model ID 字段——不需要新账号或新的计费关系。选型可以参考 [Claude Sonnet 5 vs GPT-5.4](https://router.one/zh/models/compare/claude-sonnet-5-vs-gpt-5-4) 和 [GPT-5.3 Codex Spark vs Claude Sonnet 5](https://router.one/zh/models/compare/gpt-5-3-codex-spark-vs-claude-sonnet-5)。实时单价见 [/models](https://router.one/zh/models)；部分模型最低可到官方公示价的 1 折（最高省 90%），想要固定月费，钱包之外还有 Pro/Max/Ultra 订阅，见[定价](https://router.one/zh/pricing)。
- **无需你配置的故障转移。** 上游线路返回可重试的 5xx 或超时时，Router One 可以把同一个模型的请求改由另一条健康线路重试。它不会换成别的模型，长 agent 会话仍应容忍偶发的失败调用。

注意边界：agent 循环、审批和工具执行都发生在扩展里；Router One 负责计量、记 Trace 和给模型调用设上限。网关在各端点接受什么，写在 [API 兼容性事实页](https://router.one/zh/facts/api-compatibility.md)上。

## 国内使用

三个扩展都从 VS Code Marketplace 安装；需要一个够得着的端点的是模型流量，而它只走你填的地址。Router One 的端点国内直连、无需 VPN；钱包在同一个托管收银台用支付宝或银行卡充值，也支持 6 条链上的 USDT/USDC（Tron、BSC、以太坊、Polygon、Base、Arbitrum），全程不需要美国信用卡，步骤见[用支付宝购买 LLM API](https://router.one/zh/alipay-llm-api)。Copilot 的内联补全和语义搜索由 GitHub 托管，不在网关范围内，它们的表现和你现在看到的一样。换好地址之后如果扩展仍然报 403 或「unsupported country, region, or territory」，说明请求其实没走到新地址——[地区限制修复](https://router.one/zh/unsupported-country-region-territory)列出了要查的项。IDE fork 的同一套配置见 [Cursor 国内接入](https://router.one/zh/cursor-china)，把整套编程工具放在一个钱包上的做法见 [AI 编程工具场景](https://router.one/zh/use-cases/ai-coding-tools)。

## 常见问题

**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](https://router.one/zh/integrations/github-copilot)
- Continue 与 Cline：[Continue 接入](https://router.one/zh/integrations/continue)、[Cline 接入](https://router.one/zh/integrations/cline)；同一把 Key 也适用于 [Roo Code](https://router.one/zh/integrations/roo-code) 和 [Kilo Code](https://router.one/zh/integrations/kilo-code)
- 端点的行为：[OpenAI 兼容 API](https://router.one/zh/openai-compatible-api)、[工具调用指南](https://router.one/zh/llm-tool-calling)
- 编辑器还是终端：[Cline vs Cursor vs Claude Code](https://router.one/zh/blog/cline-vs-cursor-vs-claude-code)、[OpenCode vs Claude Code vs Codex CLI](https://router.one/zh/blog/opencode-vs-claude-code-vs-codex-cli)
- 实时价格与套餐：[模型页](https://router.one/zh/models)、[定价](https://router.one/zh/pricing)

到 [router.one](https://router.one/zh) 建三把 Key，各设上限，让每个扩展各跑一周真实工作，再做决定。

## 相关页面

- 本页规范地址：https://router.one/zh/blog/github-copilot-byok-vs-continue-vs-cline
- Claude Code 中国：https://router.one/zh/claude-code-china
- 全部博客文章：https://router.one/zh/blog
- 模型与每模型 token 价格：https://router.one/zh/models （markdown：https://router.one/zh/models.md ）
- 定价：https://router.one/zh/pricing
- API 文档（markdown）：https://router.one/zh/docs.md
- 公司事实（markdown）：https://router.one/zh/facts/company.md
