编码工具

Visual Studio Code

通过 Custom Endpoint 提供商在 VS Code 聊天中使用 TokenLab 模型

概览

VS Code 聊天可以通过 Custom Endpoint(自带 key,BYOK)接入你自己的模型提供商。本页通过 Chat Completions API 接入 TokenLab。

  • 聊天不需要 Copilot 订阅。 VS Code 的 BYOK 模型无需登录 GitHub 即可使用。
  • 部分功能仍需 GitHub: 行内建议(代码补全)、语义搜索以及其他基于 embedding 的功能不由 BYOK 模型提供,TokenLab key 不能替代它们。
  • Copilot Business 或 Enterprise 用户:需要管理员允许 Bring Your Own Language Model Key in VS Code 策略。

准备

  • 带 Chat 视图的最新稳定版 VS Code。
  • 一个 TokenLab API key(获取)。
  • 一个支持 openai_chat_completions 且支持工具调用的模型(Agent 模式只列出支持工具调用的模型)。模型详情页会同时写明这两点:API 格式里有 Chat Completions API,能力里有 Tool use,例如 GPT-5.6 Luna。

添加 TokenLab

  1. 在 Chat 视图中打开模型选择器,选择 Manage Language Models(齿轮图标);或在命令面板中运行 Chat: Manage Language Models。
  2. 选择 Add Models → Custom Endpoint。
  3. VS Code 会要求填写 Group Name。输入框里默认填的是 Custom Endpoint,把它改成 TokenLab,按回车。
  4. 随后直接弹出标题为 TokenLab: API Key 的输入框。粘贴你的 TokenLab API key,按回车。VS Code 会把 key 保存在它的密钥存储(secret storage)中。
  5. 如果 VS Code 询问 API 类型,选择 Chat Completions。这一步可能不会出现;下面文件里的 apiType 同样会设定它。
  6. VS Code 会打开 chatLanguageModels.json。保留向导生成的 apiKey 一行(它指向密钥存储中的 key),确认 apiType 为 chat-completions,并把 models 列表改成下面的样子,然后保存。

请在向导中填写 key。直接写进 chatLanguageModels.json 的 key 不会被发送,请求会因缺少 Authorization 请求头而失败。

[
  {
    "name": "TokenLab",
    "vendor": "customendpoint",
    "apiKey": "${input:tokenlabApiKey}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "gpt-5.6-luna",
        "name": "GPT-5.6 Luna (TokenLab)",
        "url": "https://api.tokenlab.sh/v1/chat/completions",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 200000,
        "maxOutputTokens": 32000
      },
      {
        "id": "claude-sonnet-5-5",
        "name": "Claude Sonnet 5.5 (TokenLab)",
        "url": "https://api.tokenlab.sh/v1/chat/completions",
        "toolCalling": true,
        "vision": true,
        "maxInputTokens": 200000,
        "maxOutputTokens": 32000
      },
      {
        "id": "gpt-6.1-sol",
        "name": "GPT-6.1 Sol (TokenLab)",
        "url": "https://api.tokenlab.sh/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 200000,
        "maxOutputTokens": 32000
      }
    ]
  }
]

说明:

  • URL 要写完整,包含 /chat/completions。带有明确 API 路径的 URL,VS Code 会原样使用。
  • 使用 Chat Completions 类型时,VS Code 发送 Authorization: Bearer <key>,这正是 TokenLab 所需要的。不要再添加自定义鉴权请求头。
  • id 是请求中发送的 TokenLab 模型 ID。任何 accepted_request_formats 包含 openai_chat_completions 的在售模型都可以使用。
  • Token 上限:VS Code 把 maxInputTokens + maxOutputTokens 视为上下文窗口。上面的数值比较保守,你可以按模型详情页上的上限调高。上下文越大,每次请求的费用越高。
  • 如果模型没有出现在选择器中,请重启 VS Code。

不登录 GitHub 时

标题生成、提交信息等后台“utility”任务默认使用 GitHub Copilot 模型。没有登录 Copilot 时,把 chat.utilityModel 和 chat.utilitySmallModel 设为 TokenLab 模型(small 选一个快速、便宜的模型),或者把 chat.byokUtilityModelDefault 设为 Main Agent Model。这些后台调用会从你的 TokenLab 余额扣费。

验证

  1. 在模型选择器中选择 GPT-5.6 Luna (TokenLab)(低成本模型,适合第一次测试)。
  2. 先问一个只读问题,例如:Summarize the top-level structure of this workspace. Do not modify files.
  3. 在运行 Agent 任务之前,核对回复以及对应的请求记录。

保存配置或列出模型并不能证明 key 可用。发送一次提示会消耗 TokenLab 余额。

故障排查

  • 缺少 Authorization 请求头: key 不在密钥存储中。重新执行 Add Models → Custom Endpoint,在向导中填写 key,而不是写在 JSON 文件里。
  • 401 / 认证失败: 在 Manage Language Models → TokenLab 分组旁的齿轮图标中重新填写 key。
  • 找不到模型: id 必须是准确的 TokenLab 模型 ID;请查看模型详情页。
  • Agent 模式中看不到模型: 设置 "toolCalling": true,并使用支持工具调用的模型。
  • Messages 或 Responses API 类型: 本页暂未涵盖,请使用 Chat Completions。

不要把 API key 提交到 chatLanguageModels.json 或任何被 Git 跟踪的文件;文件中保留 ${input:...}。

本页内容