一、为什么需要将 Claude Code 接入国内大模型?
Anthropic 官方近期推出的命令行 AI 编程智能体 Claude Code,凭借其出色的终端代码感知能力、自主执行测试循环与跨文件重构交互,在开发者社区掀起了巨大热潮。与传统的 IDE 对话补全插件不同,Claude Code 是一个具备自主终端操作权限的完整 Coding Agent,能直接分析整个代码仓库、定位并修复报错。
然而,在实际日常高频开发中,直接使用官方 Claude 3.5 Sonnet 或 3.7 Sonnet API 往往面临两大现实门槛:
- API 计费成本极高:Claude Code 在进行上下文扫描和递归代码检索时会吞吐海量 Token,一上午的重构很容易产生数美元甚至数十美元的账单;
- 网络与充值限制:官方 Anthropic 平台对国内网络 IP 与海外信用卡账单校验极为严苛,极易因风控导致封号或断联。
幸运的是,Claude Code 底层遵循标准的 Anthropic API 交互规范。通过轻量级协议代理网关,我们能够无缝将其请求重定向到国内高性价比的大模型——包括 DeepSeek-V3 / R1、月之暗面 Kimi(Moonshot) 以及 智谱 GLM-4,在保留强大终端智能体体验的同时,将成本降低 90% 以上!
二、架构与核心中继原理
Claude Code 客户端默认向 https://api.anthropic.com/v1/messages 发起请求,并在请求头中携带 x-api-key 与 anthropic-version。国内模型(如 DeepSeek、Kimi、GLM-4)大多原生提供的是兼容 OpenAI 的 /v1/chat/completions 接口。
因此,要让 Claude Code 顺畅跑在国内模型上,核心链路有两种方案:
- 直连兼容 Anthropic 协议的服务商:部分国内 API 聚合平台或转发网关原生提供了 Anthropic 格式的
/v1/messages端点; - 本地部署轻量中继转换网关(推荐):使用开源的
LiteLLM Proxy或One-API / New-API,在本地或轻量 VPS 上运行一个微型转发容器,将 Anthropic 协议请求转译为 OpenAI 格式,并映射为目标模型。
三、实战方案:使用 LiteLLM 搭建本地极简中继
LiteLLM 是目前社区公认转换 Anthropic 与 OpenAI 协议最稳定、工具调用(Function Calling)兼容性最好的开源网关,资源占用仅约几十兆内存。
1. 编写 Docker Compose 一键启动文件
在任意本地目录(或内网 VPS)下新建 docker-compose.yml:
services:
litellm:
image: ghcr.io/berriai/litellm:main-latest
container_name: litellm-proxy
ports:
- "4000:4000"
volumes:
- ./config.yaml:/app/config.yaml
command:
- "--config"
- "/app/config.yaml"
- "--port"
- "4000"
restart: unless-stopped
2. 配置多模型映射表(config.yaml)
在同级目录下新建 config.yaml,将 Claude Code 默认寻找的 claude-3-5-sonnet-20241022 虚拟重定向为我们指定的国内大模型:
model_list:
# 方案 A:映射至 DeepSeek-V3(高性价比编程主力)
- model_name: claude-3-5-sonnet-20241022
litellm_params:
model: openai/deepseek-chat
api_base: https://api.deepseek.com/v1
api_key: "sk-你的DeepSeek_API_KEY"
# 方案 B:映射至智谱 GLM-4-Plus(长文本分析与大工程重构)
- model_name: glm-4-plus
litellm_params:
model: openai/glm-4-plus
api_base: https://open.bigmodel.cn/api/paas/v4
api_key: "sk-你的智谱_API_KEY"
# 方案 C:映射至 Moonshot Kimi
- model_name: moonshot-v1-128k
litellm_params:
model: openai/moonshot-v1-128k
api_base: https://api.moonshot.cn/v1
api_key: "sk-你的Kimi_API_KEY"
general_settings:
master_key: "sk-seedloc-local-litellm-proxy"
执行 docker compose up -d 启动网关后,本地 http://localhost:4000/v1 即成为一个全功能的 Claude 兼容接入点。
四、客户端环境变量注入与启动
配置好中继后,无需修改 Claude Code 的源码或 Node.js 安装包,只需通过标准系统环境变量覆盖 API 请求基地址:
1. Windows PowerShell 环境配置
在终端中执行以下命令(临时生效,适合调试):
$env:ANTHROPIC_BASE_URL = "http://localhost:4000"
$env:ANTHROPIC_API_KEY = "sk-seedloc-local-litellm-proxy"
claude
若希望长期持久化,可在 PowerShell 配置文件中添加:
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "http://localhost:4000", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-seedloc-local-litellm-proxy", "User")
2. macOS / Linux 环境配置
在 ~/.zshrc 或 ~/.bashrc 中追加:
export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_API_KEY="sk-seedloc-local-litellm-proxy"
保存后执行 source ~/.zshrc 即可永久生效。
五、关键避坑要点与体验调优
- 模型工具调用能力(Tool Call):Claude Code 严重依赖大模型的结构化输出与函数调用功能。实测推荐优先选用 DeepSeek-V3 或 GLM-4-Plus,二者的 Function Call 遵循度最高,极少出现参数解析中断;
- 慎用满血推理模型(R1)作为主执行器:DeepSeek-R1 虽然逻辑推理顶尖,但其输出的
<think>思考块目前在某些代理转换层中可能被错误识别为文本流,导致文件替换指令截断。建议架构为“V3 作为执行智能体,遇复杂算法时单次提问 R1”; - 模型名称欺骗(Model Aliasing):Claude Code 内部对模型版本做了严格检查,若直接传自定义名称可能会触发警告,因此在 LiteLLM 中将目标模型 alias 设置为
claude-3-5-sonnet-20241022是最丝滑的无感替换方案。
六、总结与相关阅读
通过本地轻量代理转发,我们成功将当前最具生产力潜力的命令行智能体 Claude Code 与国内顶级大模型生态融为一体,既消除了封号顾虑,又实现了无负担全天候代码调试。
相关 AI 助手与运维环境搭建阅读:
• Win小白教程:Claude Code 搭配 DeepSeek API,低成本体验 AI 终端编程
• WorkBuddy 自定义模型教程:Claude、OpenAI、DeepSeek 与 Sub2API
• Docker、Nginx Proxy Manager 与哪吒监控一站式部署实战
• 1Panel 运维与网站图片 403 拦截排错排查指南
评论