當需要將 Claude Code 透過本機 LiteLLM 代理路由至 GitHub Copilot、減少直接 Anthropic 花費、設定 ANTHROPIC_BASE_URL 或 ANTHROPIC_MODEL 覆寫,或排解 Copilot 代理設定失敗(如 model-not-found、無 localhost 流量、GitHub 401/403 驗證錯誤)時使用。
概述
此技能適用於特定變通方案:Claude Code 維持其 Anthropic 風格的客戶端行為,但實際後端流量會發送到本機 LiteLLM 代理,再轉發至 GitHub Copilot。
請將此視為進階變通方案,而非官方保證的 GitHub 工作流程。協助使用者技術上成功,但不要承諾 GitHub 支援、政策核准或長期相容性。
此技能以引導為主,但具備執行意識:
- 如果使用者只需要說明,提供最小且正確的檔案、指令與檢查項目。
- 如果使用者想在當前機器上實際設定,先檢查環境,再根據當前 shell 與作業系統調整指令。
- 在進行持久性編輯(如
~/.claude/settings.json或 shell 設定檔)前先暫停確認。
如果需要說明哪些部分來自文章、哪些部分是根據最新 LiteLLM 文件調整,請先閱讀 references/doc-verified-notes.md 再回答。
使用時機
當使用者需要以下任一項目時使用此技能:
- 讓 Claude Code 透過 LiteLLM 使用 GitHub Copilot
- 降低直接 Anthropic API 花費,同時保留 Claude Code 工作流程
- 為 LiteLLM 的 GitHub Copilot 提供者建立本機
config.yaml - 設定
ANTHROPIC_BASE_URL、ANTHROPIC_MODEL或CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC - 了解 LiteLLM 啟動時的 GitHub 裝置授權流程
- 處理模型不符、404 類錯誤、請求未送達 LiteLLM,或 GitHub 401/403 失敗
請勿在以下情況使用此技能:
- 判斷此變通方案是否違反 GitHub 條款
- 與 Claude Code 加 Copilot 無關的一般 LiteLLM 架構
- 不含 Copilot 或 LiteLLM 的直接 Anthropic API 設定
核心規則
- 開頭先加上簡短的合規提醒。
說明這是基於本機代理路徑的變通方案,非 GitHub 推廣的工作流程,使用者應自行評估最新的 Copilot 條款與限制。 - 優先採用最小可行路徑。
除非使用者明確要求持久性設定,否則先從暫時環境變數與本機config.yaml開始。 - 保持
ANTHROPIC_MODEL與 LiteLLMmodel_name完全一致。
精確字串比對比巧妙解釋更重要。 - 將
ANTHROPIC_AUTH_TOKEN視為本機佔位符。
Claude Code 在本機需要非空值,但這不是 GitHub Copilot 憑證,不應視為可重複使用的密鑰。 - 切勿直接覆寫整個
~/.claude/settings.json。
僅合併所需的env鍵,保留其他無關設定。
工作流程
1. 前置檢查
當使用者要實際設定時,先檢查以下項目:
claude --help執行成功uv --version或pip --version執行成功- 使用者具備 GitHub Copilot 存取權
- 預定的 LiteLLM 連接埠可用,通常為
4000
如果使用者只需要操作說明,則列出必要條件即可,不需實際執行。
2. 選擇暫時或持久性設定
使用以下規則:
- 暫時設定:首次設定、除錯與低風險測試的預設首選
- 持久性設定:僅在使用者明確希望每次啟動 Claude Code 都套用代理路徑時使用
對於持久性設定,先確認目標檔案,再將鍵合併至 ~/.claude/settings.json,不要取代檔案內容。
3. 建立 LiteLLM config.yaml
從文章流程出發,但保持提供者命名與 LiteLLM 文件一致:
model_list:
- model_name: claude-opus-4.5
litellm_params:
model: github_copilot/claude-opus-4.5
drop_params: true
說明各欄位:
model_name:Claude Code 將請求的邏輯名稱model:LiteLLM 提供者路由,使用github_copilot/<model>drop_params: true:在轉發至 Copilot 前移除不支援的 Anthropic 特定欄位
如果使用者想使用其他 Copilot 支援的模型,保持相同模式:
model_list:
- model_name: <邏輯名稱>
litellm_params:
model: github_copilot/<copilot-model>
drop_params: true
除非使用者已遇到需要標頭覆寫的拒絕情況,否則不要在預設路徑中硬編碼額外標頭。
4. 安裝與啟動 LiteLLM
建議安裝方式:
uv tool install "litellm[proxy]"
備用安裝方式:
pip install "litellm[proxy]"
從包含 config.yaml 的目錄啟動代理:
litellm --config config.yaml --port 4000
告知使用者保持該終端機開啟,因為日誌是驗證時最快速的真相來源。
5. 說明 GitHub 裝置授權
在首次成功請求 GitHub Copilot 提供者時,LiteLLM 可能會開啟裝置授權流程:
- LiteLLM 顯示驗證 URL 與裝置碼
- 使用者開啟 URL 並核准請求
- LiteLLM 將取得的憑證儲存在本機供後續使用
可選的權杖位置覆寫:
GITHUB_COPILOT_TOKEN_DIRGITHUB_COPILOT_ACCESS_TOKEN_FILE
僅在使用者需要自訂權杖儲存、共用環境或排解過期/錯置憑證時才提及這些變數。
6. 設定 Claude Code
暫時性 PowerShell 工作階段:
$env:ANTHROPIC_AUTH_TOKEN = "sk-any-string"
$env:ANTHROPIC_BASE_URL = "http://localhost:4000"
$env:ANTHROPIC_MODEL = "claude-opus-4.5"
$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"
claude
暫時性 Bash 或 Zsh 工作階段:
export ANTHROPIC_AUTH_TOKEN="sk-any-string"
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_MODEL="claude-opus-4.5"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
claude
持久性設定:將以下鍵合併至 ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "sk-any-string",
"ANTHROPIC_BASE_URL": "http://localhost:4000",
"ANTHROPIC_MODEL": "claude-opus-4.5",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
合併安全行為:
- 如果檔案不存在,則建立它
- 如果檔案存在,保留所有無關的頂層鍵
- 保留與此工作流程無關的現有
env條目 - 僅更新上述四個鍵
- 如果 JSON 格式錯誤,停止並回報解析問題,而非覆寫檔案
7. 驗證請求鏈
盡可能使用兩個終端機:
- 終端機 A 執行 LiteLLM
- 終端機 B 執行
claude
要求一個小型提示,例如簡短腳本或程式碼審查請求,然後驗證:
- Claude Code 正常啟動
- LiteLLM 日誌顯示有入站請求
- LiteLLM 日誌顯示 GitHub Copilot 模型路由,通常為
github_copilot/<model>
正常路徑為:
Claude Code -> LiteLLM -> GitHub Copilot -> LiteLLM -> Claude Code
8. 排錯
如果 Claude Code 回報 model-not-found、404 類錯誤,或 LiteLLM 表示模型不存在:
- 比對
ANTHROPIC_MODEL與model_name是否完全一致 - 檢查大小寫、標點符號與連字號
如果 LiteLLM 從未收到請求:
- 確認
ANTHROPIC_BASE_URL指向 http://localhost:4000 - 確認 LiteLLM 仍在該連接埠上執行
- 確認環境變數是在啟動
claude的同一個 shell 工作階段中設定 - 如果 URL 正確但仍無回應,檢查本機防火牆或連接埠衝突
如果 LiteLLM 成功連線至 GitHub Copilot 但收到 401 或 403 回應:
- 重新啟動 LiteLLM 並重試,重複裝置授權流程
- 確認 GitHub 帳戶仍具備 Copilot 存取權
- 如果設定了自訂權杖目錄變數,請確認它們指向正確的檔案
進階備用方案:標頭覆寫
文章使用了明確的 Copilot 風格標頭。目前 LiteLLM 文件將 GitHub Copilot 列為提供者,同時也記錄了標頭覆寫支援。
僅在以下情況才使用明確的 extra_headers:
- 基本提供者流程已連線至 Copilot,但仍需要客戶端形狀的覆寫
- 使用者已有證據顯示特定環境使用編輯器風格標頭效果更好
備用範例:
model_list:
- model_name: claude-opus-4.5
litellm_params:
model: github_copilot/claude-opus-4.5
drop_params: true
extra_headers:
editor-version: "vscode/1.85.1"
editor-plugin-version: "copilot/1.155.0"
Copilot-Integration-Id: "vscode-chat"
user-agent: "GithubCopilot/1.155.0"
將此呈現為進階備用方案,而非通用預設值。
輸出檢查清單
使用此技能回答實際使用者請求時,應包含:
- 簡短的合規提醒
- 確切的
config.yaml或需套用的差異 - 適合 shell 的指令
- 設定為暫時或持久性
- 驗證路徑
- 如果發生失敗,提供最小相關排錯章節
安全提醒
- 不要聲稱 GitHub 官方支援此變通方案。
- 不要暗示假的
ANTHROPIC_AUTH_TOKEN是真實的 Copilot 憑證。 - 不要建議直接取代整個
~/.claude/settings.json。 - 不要將過時的模型名稱當作保證可用的模型;如果使用者詢問特定模型,保持
github_copilot/<model>模式,並提醒 Copilot 開放的模型可能隨時變更。






