一、为什么需要将 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 顺畅跑在国内模型上,核心链路有两种方案:

  1. 直连兼容 Anthropic 协议的服务商:部分国内 API 聚合平台或转发网关原生提供了 Anthropic 格式的 /v1/messages 端点;
  2. 本地部署轻量中继转换网关(推荐):使用开源的 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 拦截排错排查指南