🧩 Copilot BYOK 配置助手(VS Code 扩展)
每次换 API Key、换模型都要手抄配置?这个扩展帮你:输入 API Key 和网址 → 一键拉取该 Key 可用
的全部模型 → 按需勾选并调整参数 → 生成 / 直接写入 VS Code 官方 BYOK 的
chatLanguageModels.json,复制粘贴即可使用。
界面为左侧活动栏常驻视图(点击 ⚡ 图标即开,类似 Cline/Roo),三步图形化向导,并自动跟随 VS Code
亮色 / 暗色 / 高对比主题;现代 UI 含步骤条、能力徽章、参数分组、JSON 高亮预览。
兼容 OpenAI Chat Completions 与 Anthropic Messages 两种协议(另支持 OpenAI Responses),
产出的是 VS Code 官方文档定义的 vendor: "customendpoint" 格式,由 Copilot Chat 原生读取,
不需要任何第三方中转扩展。
一、它能做什么
| 步骤 |
能力 |
| ① 连接 |
填 Base URL + API Key(提供 DeepSeek / OpenAI / Anthropic / 智谱 / Kimi / 百炼 / SiliconFlow / OpenRouter 预设);自动带正确鉴权头 |
| ② 拉模型 |
一键请求 GET {url}/models(OpenAI Bearer;Anthropic x-api-key + anthropic-version,中转站自动回退 Bearer);失败可手动添加 |
| ③ 配置 |
勾选模型,逐模型/批量设置:toolCalling、vision、thinking、maxInputTokens、maxOutputTokens、temperature、top_p、展示名、URL 覆盖;聊天模型默认开启视觉(生成必带 vision:true),其余能力按 ID 自动猜测,均可改;每个模型可单独「▶ 测试」连通性 |
| ④ 生成 |
生成完整 chatLanguageModels.json 内容:一键复制、下载,或(扩展模式)自动合并写入 VS Code 的配置文件并备份原文件 |
| 密钥 |
两种写入方式:明文直填(方便);${input:变量} 引用(密钥不进文件,首次使用由 VS Code 询问并存入密钥库) |
两种使用形态
- VS Code 扩展(推荐):网络请求由扩展在 Node 侧转发,没有浏览器 CORS 限制,且能直接写配置文件;
- 浏览器独立页:直接双击/打开
media/main.html 也能用(多数服务商允许跨域;若提示 CORS 失败请改用扩展模式)。
二、安装
方式 A:Visual Studio Marketplace(正式市场,推荐)
在 VS Code 扩展面板搜索 Copilot BYOK(发布者 miaoye913)直接安装;
或访问 https://marketplace.visualstudio.com/items?itemName=miaoye913.copilot-byok-config-gen;
或命令行 code --install-extension miaoye913.copilot-byok-config-gen。
方式 B:VSIX 一键安装(离线 / 内网)
- 拿到
copilot-byok-config-gen-0.2.8.vsix;
- 双击该文件即可在 VS Code 中弹出安装(若无文件关联),或任选其一:
- 把
.vsix 直接拖进 VS Code 窗口,点 Install;
- 扩展视图 →
… 菜单 → Install from VSIX... 选择文件;
- 命令行:
code --install-extension copilot-byok-config-gen-0.2.8.vsix --force;
- 按
Ctrl+Shift+P → Copilot 配置: 打开 Copilot BYOK 配置生成器(或直接点击左侧活动栏新出现的 ⚡ 图标,界面常驻侧边栏)。
改完代码后重新打包(两种任选):
- 有 Node:
npx --yes @vscode/vsce package(官方打包,推荐,用于发布市场);
- 无 Node:
powershell -ExecutionPolicy Bypass -File build-vsix.ps1(本地安装用)。
方式 B:从文件夹安装(适合开发调试)
- VS Code 中按
Ctrl+Shift+P → Developer: Install Extension from Location;
- 选择整个
copilot-model-config-generator 文件夹,等待片刻即安装完成;
- 按
Ctrl+Shift+P → Copilot 配置: 打开 Copilot BYOK 配置生成器 打开面板。
也可用 F5 启动扩展开发宿主调试(需要 Node 工具链)。
三、快速开始(以 DeepSeek 官方为例)
- 打开面板 →「常用服务预设」选 DeepSeek 官方(自动填好网址并切到 OpenAI 兼容);
- 填提供方名称(如
我的DeepSeek)与你的 API Key(DeepSeek 开放平台 https://platform.deepseek.com 创建);
- 点 ① 一键获取该 Key 可用的全部模型 → 勾选要用模型;
- 需要的话在「批量参数」里改默认值 → 应用到全部勾选模型,或点每行 ⚙ 单独改;
- 点 ② 生成配置 →(推荐)💾 写入 VS Code 的 chatLanguageModels.json,或 📋 复制全部;
- 在 VS Code 里:
Ctrl+Shift+P → Chat: Manage Language Models → Add Models → Custom Endpoint
→ 填组名 / API Key / 选择与生成时一致的 API 类型(chat-completions / messages / responses);
- VS Code 打开
chatLanguageModels.json 后,把生成内容整段粘贴覆盖并保存;
- 若模型没立刻出现:
Ctrl+Shift+P → Developer: Reload Window。然后在聊天框的模型下拉中选你的模型即可。
配置文件位置:Windows 为 %APPDATA%\Code\User\chatLanguageModels.json
(Insiders 为 Code - Insiders;Linux/macOS 在 ~/.config/Code/User、~/Library/Application Support/Code/User)。
四、生成内容示例(官方格式)
[
{
"name": "我的DeepSeek",
"vendor": "customendpoint",
"apiKey": "sk-xxxxxxxx",
"apiType": "chat-completions",
"models": [
{
"id": "deepseek-chat",
"name": "deepseek-chat",
"url": "https://api.deepseek.com/v1/chat/completions",
"toolCalling": true,
"vision": true,
"maxInputTokens": 128000,
"maxOutputTokens": 8192,
"modelOptions": { "temperature": 0.6 }
}
]
}
]
Anthropic(Claude 官方)则生成 apiType: "messages"、url: https://api.anthropic.com/v1/messages、
鉴权自动使用 x-api-key + anthropic-version;OpenAI 官方新接口可选 apiType: "responses"。
字段依据官方文档(AI language models · Model configuration reference):
apiKey:明文,或 "${input:变量名}"(安全引用,首次使用询问一次并存系统密钥库);
toolCalling:必须为 true 才能在 Agent 模式中使用(不支持工具的模型不会出现在选择器);
vision:支持图片输入;thinking:支持思考/推理,会出现在 Thinking Effort 菜单;
maxInputTokens / maxOutputTokens:上下文与输出上限(自动猜测近似值,请按官方文档核对修改);
modelOptions:随每次请求发送的参数(temperature、top_p…,留空则不输出该键);
url:显式写全模型端点地址时原样使用;只写 Base URL 时按规则自动补 /v1 与 API 路径。
五、技术要点与常见问题
为什么不需要第三方插件? 从 2025-10 起 VS Code 内置 BYOK(Bring Your Own Key),把自定义端点模型
加进 Copilot Chat 模型下拉;2026-04 起 GA(Free/Pro 均可,可完全不登录 GitHub 账号)。
本扩展只是把官方 chatLanguageModels.json 的编写过程自动化。官方说明:
BYOK in VS Code 博客、
Expanding Model Choice(2025-10)。
模型列表怎么拉的? OpenAI 兼容:GET {base}/models(自动尝试 /v1 变体),Authorization: Bearer;
Anthropic:GET {base}/v1/models,先 x-api-key + anthropic-version: 2023-06-01,401 时自动用
Bearer 再试(兼容中转站)。拉不到时任何一步的报错都会显示,可改用手动添加。
模型没出现在下拉里? ① 先 Developer: Reload Window;② 确认「Chat: Manage Language Models →
Add Models → Custom Endpoint」向导里选的 API 类型与生成时一致;③ 确认模型支持工具调用(Agent 模式必需)。
BYOK 不覆盖哪些功能? 行内补全(灰字/代码建议)、语义搜索等仍走 GitHub Copilot;BYOK 只作用于
Chat/Agent。未登录 GitHub 时若提示配置 utility 模型,可把 chat.utilityModel /
chat.utilitySmallModel 设为你的某个 BYOK 模型(Settings UI 中直接选)。
旧格式怎么办? 旧设置 github.copilot.chat.customOAIModels(settings.json 内嵌)已被官方弃用,
统一改到 chatLanguageModels.json 的 customendpoint(本工具生成的就是新格式)。
浏览器模式 CORS 报错? 浏览器直连受跨域限制(错误提示会明确给出)。请用 VS Code 扩展模式
(请求走 Node,无此限制),或确认服务商允许跨域。
密钥安全:明文密钥会写入 chatLanguageModels.json(本机文件,别提交进 git)。
想更安全就用「${input:变量}」模式——文件里不含密钥。本工具不会把密钥发给除你填写的 Base URL 之外的任何地址。
多组模型 / 多个 Key? 生成内容本身是 JSON 数组,多次生成后可直接拼接;扩展的「💾 写入」按钮会
按组名合并(同名组替换、其他组保留)并先备份原文件,可反复添加不同服务商。
为什么默认用 ${input} 变量而不是明文? 实测较新版本的 VS Code(≥1.135)会忽略
chatLanguageModels.json 中的明文 apiKey(请求发出空令牌,服务端报 Invalid token/401)。
因此工具默认生成 ${input:变量名} 引用:密钥不进文件,首次使用时到
Chat: Manage Language Models → 对应组 ⚙ → 重新录入一次 API Key(会存入 VS Code 密钥库)。
若仍习惯明文,可切「直接写入密钥」模式,但聊天报 Invalid token 时请优先改回变量模式并完全重启 VS Code。
模型参数猜得准吗? 聊天类模型默认开启视觉(vision:true,保证图片输入可用;个别不支持图片的
模型请在行内「参数」或批量栏取消勾选)。toolCalling / thinking / 上下文上限 按模型 ID 启发式猜测,
界面上可逐模型或批量修改(也有「按 ID 重新猜测」按钮,重置后视觉仍保持开启)。请以各家模型官方文档为准。
六、目录结构
copilot-model-config-generator/
├── package.json VS Code 扩展清单(命令:Copilot 配置: 打开 Copilot BYOK 配置生成器)
├── extension.js 扩展宿主:Webview、Node 侧 HTTP(无 CORS)、剪贴板、
│ 配置文件探测/合并/备份/写入/打开
├── media/
│ ├── main.html 界面(也可用浏览器单独打开——独立模式)
│ ├── core.js 纯逻辑引擎:URL 解析、模型列表探测、能力猜测、配置生成
│ ├── app.js 界面逻辑(自动识别 扩展模式 / 浏览器模式)
│ └── icon.svg 左侧活动栏图标
├── build-vsix.ps1 免 Node 的 VSIX 打包脚本(产物:copilot-byok-config-gen-*.vsix)
├── test/ 自动化测试(无需 Node,仅需 Python 3 + 本机 Edge)
│ ├── run_tests.py 入口:mock 服务器 + headless Edge 跑 68 项核心 + 27 项 UI 冒烟
│ ├── mock_server.py 双协议 mock(鉴权/降级/CORS/请求头记录)
│ ├── runner_core.html 核心单测 + 端到端用例
│ ├── check_vsix.py 校验 VSIX 包结构/清单一致性
│ ├── screenshot.py 生成演示截图(test/_showcase.png)
│ └── check_syntax.py 纯语法检查脚本
└── README.md
七、运行测试
cd copilot-model-config-generator
python test\run_tests.py # 需要本机安装 Edge(默认路径已内置,可传参指定)
python test\check_syntax.py extension.js media\core.js media\app.js
python test\screenshot.py # 生成界面演示截图 test\_showcase.png
测试覆盖:URL 推导规则、探测候选顺序、鉴权头(Bearer / x-api-key+version)、401→Bearer 自动回退、
响应解析、能力/上下文猜测、配置 JSON 结构与报错校验、同名合并、序列化回读、真实 HTTP 端到端
(OpenAI 与 Anthropic 两协议)、以及完整 UI 流程冒烟(预设→添加模型→过滤→勾选→参数→生成→
${input:} 切换)。
参考链接:官方文档
AI language models in VS Code
| 官方博客 Use your own language model key in VS Code
| Bring your own key (2025-10)