程式工具
Visual Studio Code
透過 Custom Endpoint 提供者在 VS Code 聊天中使用 TokenLab 模型
概覽
VS Code 聊天可以透過 Custom Endpoint(自備金鑰,BYOK)接入你自己的模型提供者。本頁透過 Chat Completions API 接入 TokenLab。
- 聊天不需要 Copilot 方案。 VS Code 的 BYOK 模型不必登入 GitHub 即可使用。
- 部分功能仍需要 GitHub: 行內建議(程式碼補全)、語意搜尋以及其他以 embedding 為基礎的功能不由 BYOK 模型提供,TokenLab 金鑰無法取代它們。
- 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
- 在 Chat 檢視中開啟模型選擇器,選擇 Manage Language Models(齒輪圖示);或在命令選擇區中執行 Chat: Manage Language Models。
- 選擇 Add Models → Custom Endpoint。
- VS Code 會要求填寫 Group Name。輸入框預設填入
Custom Endpoint,請改成TokenLab並按 Enter。 - 接著會直接跳出標題為 TokenLab: API Key 的輸入框。貼上你的 TokenLab API key 並按 Enter。VS Code 會將金鑰保存在其祕密儲存區(secret storage)中。
- 如果 VS Code 詢問 API 類型,請選擇 Chat Completions。這一步可能不會出現;下方檔案中的
apiType同樣會設定它。 - VS Code 會開啟
chatLanguageModels.json。保留精靈產生的apiKey那一行(它指向祕密儲存區中的金鑰),確認apiType為chat-completions,並將models清單改成下方的內容,然後儲存。
請在精靈中輸入金鑰。直接寫進
chatLanguageModels.json的金鑰不會被送出,請求會因缺少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 餘額扣款。
驗證
- 在模型選擇器中選擇 GPT-5.6 Luna (TokenLab)(低成本模型,適合第一次測試)。
- 先問一個唯讀問題,例如:
Summarize the top-level structure of this workspace. Do not modify files. - 在執行 Agent 工作之前,核對回覆以及對應的請求紀錄。
儲存設定或列出模型並不能證明金鑰可用。送出一次提示會消耗 TokenLab 餘額。
疑難排解
- 缺少 Authorization 標頭: 金鑰不在祕密儲存區中。重新執行 Add Models → Custom Endpoint,在精靈中輸入金鑰,而不是寫在 JSON 檔案裡。
- 401 / 驗證失敗: 在 Manage Language Models → TokenLab 群組旁的齒輪圖示中重新輸入金鑰。
- 找不到模型:
id必須是正確的 TokenLab 模型 ID;請查看模型詳情頁。 - Agent 模式中看不到模型: 設定
"toolCalling": true,並使用支援工具呼叫的模型。 - Messages 或 Responses API 類型: 本頁尚未涵蓋,請使用 Chat Completions。
不要將 API key 提交到 chatLanguageModels.json 或任何受 Git 追蹤的檔案;檔案中保留 ${input:...}。