技术vibe coding
Claude Code 通过 LiteLLM 接入 GitHub Copilot
Claude Code 通过 LiteLLM 接入 GitHub Copilot
24 分钟阅读
5 次阅读
Claude Code 通过 LiteLLM 接入 GitHub Copilot(订阅 + 操作步骤)
目标:让 Claude Code 不直连 Anthropic,而是通过 LiteLLM LLM Gateway 转发到 GitHub Copilot 的 Claude 模型(例如
claude-opus-4.6)。Claude Code 官方支持通过 “LLM gateway” 的方式接入第三方网关。(code.claude.com)
0. 前置条件
- 已安装并可运行:
- Claude Code(CLI)
- Python / pip(用于安装 LiteLLM)
- 你需要一个 可用的 GitHub Copilot 订阅(个人/组织/企业均可)。
- Copilot 订阅档位与权益说明见官方文档(个人 Pro、组织/企业等)。(docs.github.com)
- 了解一个现实限制:
- 通过 Copilot provider 使用 Claude(如
claude-opus-4.6)通常会遇到 128k 上下文上限。这不是 Claude Code 里能改大的,而是copilot上游通道限制。对模型推理效果会有影响。
- 通过 Copilot provider 使用 Claude(如
1. 订阅 GitHub Copilot(按你的账号类型选择)
个人订阅(Copilot Pro)
- 登录 GitHub
- 打开 GitHub Copilot Plans 页面,选择 Copilot Pro 并完成支付/开通。(docs.github.com)
如果是学生/教师/开源维护者,GitHub 可提供免费或优惠(以 GitHub 官方说明为准)。(docs.github.com)
2. 安装并启动 LiteLLM Proxy(作为 LLM Gateway)
2.1 安装 LiteLLM
pip install 'litellm[proxy]'
2.2 生成一个网关访问密钥(给 Claude Code 用)
LiteLLM Proxy 常用
LITELLM_MASTER_KEY做网关鉴权(你也可以自己固定写死一个 key)。
export LITELLM_MASTER_KEY="litellm-$(uuidgen 2>/dev/null || python -c 'import uuid;print(uuid.uuid4())')"
2.3 写 LiteLLM 配置(config.yaml)
下面示例:暴露一个 Copilot 的 Claude 模型给 Claude Code 选用。
# config.yaml
model_list:
- model_name: github_copilot/claude-opus-4.6
litellm_params:
model: github_copilot/claude-opus-4.6
LiteLLM 的 GitHub Copilot provider 使用 OAuth device flow:首次请求时会打印一个 URL + code,让你去 GitHub 授权;凭据会缓存到本地。(docs.litellm.ai)
2.4 启动 LiteLLM Proxy
litellm --config config.yaml --port 4000
3. 先在 LiteLLM 侧触发 Copilot 登录
开一个新终端,发起一次最小请求(目的是触发 device flow 登录):
curl http://127.0.0.1:4000/v1/chat/completions \
-H "x-api-key: $LITELLM_MASTER_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"github_copilot/claude-opus-4.6",
"messages":[{"role":"user","content":"hello"}]
}'
此时 LiteLLM 控制台通常会输出 device code 和验证 URL:去网页输入 code 完成授权。(docs.litellm.ai)
4. 配置 Claude Code 走 LLM Gateway(LiteLLM)
Claude Code 官方的 LLM Gateway 模式关键点:
- 指定一个 Anthropic 兼容的 base URL(指到你的网关)
- 给一个 Auth token(让网关做鉴权)
- 指定要用的模型名(必须与网关暴露的名字一致)(code.claude.com)
在你的 shell 里设置:
export ANTHROPIC_BASE_URL="http://127.0.0.1:4000"
export ANTHROPIC_AUTH_TOKEN="$LITELLM_MASTER_KEY"
export ANTHROPIC_MODEL="github_copilot/claude-opus-4.6"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
export DISABLE_TELEMETRY=1
export DISABLE_ERROR_REPORTING=1
export DISABLE_BUG_COMMAND=1
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=4096
export MAX_THINKING_TOKENS=1024
然后启动 Claude Code:
claude
5. 验证是否生效
5.1 在 Claude Code 里问一句
- 让它输出当前模型(或让它写个简单函数),看 LiteLLM 控制台是否有请求日志。
5.2 检查 LiteLLM 暴露的模型列表(可选)
curl -s http://127.0.0.1:4000/v1/models | jq .
6. 常见问题与排查
6.1 “prompt token count exceeds 128000”
- 原因:Copilot 通道对该模型有硬上限(claude 4-6见到的就是
limit=128000)。 - 处理方式:
- 在 Claude Code 里 /clear 开新会话
- 避免一次塞进太多文件/日志,改用“只贴相关片段”
- 必要时 /compact(但如果已经远超上限,往往需要先手动缩短再 compact)
6.2 Copilot 登录一直失败
- 确认能从运行 LiteLLM 的机器访问 GitHub 登录页面
- 重新触发 device flow(再跑一次最小 curl 请求)
- 确认你的 GitHub 账号确实开通了 Copilot(或组织/企业已给你分配 seat)(docs.github.com)
6.3 Claude Code 偶尔用到 web search/某些工具然后失败
- 这是因为 Copilot 通道未必支持 Claude Code 某些“特定 API 能力/headers/betas”功能,属于通道差异;建议把任务拆小、减少依赖该类能力。
7. 建议的稳定运行方式
- 把上述环境变量写入:
- macOS/Linux:
~/.zshrc或~/.bashrc - Windows(PowerShell):
$PROFILE
- macOS/Linux:
- 把 LiteLLM 作为 systemd / launchd 服务常驻(确保本机重启后仍在 127.0.0.1:4000 提供网关)
参考
- Claude Code:LLM gateway configuration (code.claude.com)
- LiteLLM:GitHub Copilot provider(OAuth device flow)(docs.litellm.ai)
- GitHub:Copilot plans & 订阅说明 (docs.github.com)
- GitHub:组织/企业订阅开通流程 (docs.github.com)
评论
加载评论中...