前言

前面三篇我们聊了 Vibe Coding 范式、Claude Code 背后的 Agent 机制、以及 Spec-Driven Development 的实践方法。Claude Code 本身是一个闭源的终端编程 Agent,原生只连接 Anthropic 官方的 Claude 模型。但很多开发者在实际使用时会发现:Claude Code 不仅能跑 Claude,还能跑 OpenAI、DeepSeek、Qwen、GLM、Kimi 等一系列第三方模型——而要做到这一点,并不需要改 Claude Code 的源码。

这一篇是系列里我们要回答五个问题:Claude Code 是怎么"选择"调用哪个模型的?自定义端点的核心机制是什么?目前有哪些大模型支持 Anthropic Messages 兼容协议?三种主流接入方式怎么选?配置时最容易踩的坑是什么?

1. Claude Code 的"模型调用"机制

要把 Claude Code 接到别的模型上,首先要理解它是怎么选模型的。这一节我们讲透三个核心机制。

1.1 三个环境变量决定一切

Claude Code 启动时,会从环境变量里读取三个关键配置:

  • ANTHROPIC_BASE_URL:API 请求的目标地址。默认是 https://api.anthropic.com,改成别的就等于"换了一个目的地"。
  • ANTHROPIC_AUTH_TOKEN:API 密钥。Claude Code 把所有出站请求的认证信息都从这一项读。
  • ANTHROPIC_MODEL:默认模型名。决定 Claude Code 默认调用哪个模型。

只要这三个变量被改写,Claude Code 就"以为"自己还是连着 Anthropic,但实际请求已经被路由到了第三方服务的 API。

1.2 模型槽位映射:Opus / Sonnet / Haiku

Claude Code 内部把模型分成了三个"槽位"——Opus(旗舰)、Sonnet(主力)、Haiku(轻量)。对应到 Anthropic 模型家族就是 Claude Opus、Sonnet、Haiku 系列。

当 Claude Code 内部某个功能(比如子代理、Sub-agent)需要调用轻量模型时,它读的是 ANTHROPIC_DEFAULT_HAIKU_MODEL;需要主力模型时读 ANTHROPIC_DEFAULT_SONNET_MODEL;需要旗舰时读 ANTHROPIC_DEFAULT_OPUS_MODEL。这给了用户一个能力:可以让 Claude Code 在不同任务下调用不同的第三方模型——比如主力用 DeepSeek V4 Pro,Sub-agent 用 DeepSeek V4 Flash(更便宜)。

1.3 协议兼容性是关键

注意,不是所有第三方服务都能直接接入。Claude Code 用的是 Anthropic 官方的 Messages API 协议(/v1/messages 端点)。一个第三方服务要"无缝兼容" Claude Code,它必须实现两件事:

  1. 提供 Anthropic Messages API 兼容端点——接受 /v1/messages 路径的请求,并按 Anthropic 的 JSON 格式返回响应。
  2. 提供模型名映射策略——让 Claude Code 发出的"claude-opus-4-8"等模型名能正确路由到第三方自己的模型。

目前提供这种兼容端点的服务主要是两类:国产大模型厂商(DeepSeek、智谱 GLM、阿里通义千问、月之暗面 Kimi)和OpenAI 兼容协议的厂商(如通义千问、Stepfun 等)。

2. 官方支持 Anthropic 兼容协议的国产大模型

截至 2026 年 7 月,已经有至少四家国产大模型厂商为 Claude Code 提供了官方的 Anthropic Messages API 兼容端点。本节客观介绍每家厂商提供的模型、协议端点和官方文档来源,不做商业推荐。

在这里插入图片描述

2.1 DeepSeek

  • 官方接入文档:https://api-docs.deepseek.com/zh-cn/quick_start/agent_integrations/claude_code
  • 兼容端点https://api.deepseek.com/anthropic
  • 提供模型deepseek-v4-pro[1m](主力,1M 上下文)、deepseek-v4-flash(轻量,更快更便宜)
  • 协议支持:原生 Anthropic Messages API 兼容,无需额外转换
  • 价格(按 Token 计费,1M tokens):输入 ¥0.5,输出 ¥2(具体见官方定价页)
  • 官方接入示例(来源:DeepSeek 官方文档):
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=<你的 DeepSeek API Key>
export ANTHROPIC_MODEL=deepseek-v4-pro[1m]
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m]
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash

2.2 智谱 GLM

  • 官方接入文档:https://docs.bigmodel.cn/cn/guide/coding/claude_code
  • 兼容端点https://open.bigmodel.cn/api/anthropic
  • 提供模型glm-4-7(日常编码主力)、glm-4-5-air(轻量)
  • 协议支持:原生 Anthropic Messages API 兼容;提供三个模型槽位的自动映射
  • 价格:按 Token 计费为主,也有编程套餐类订阅模式(具体见官方定价页)
  • 官方接入示例
export ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic
export ANTHROPIC_AUTH_TOKEN=<你的 GLM API Key>
export ANTHROPIC_MODEL=glm-4-7
export ANTHROPIC_DEFAULT_SONNET_MODEL=glm-4-7
export ANTHROPIC_DEFAULT_OPUS_MODEL=glm-4-7

2.3 阿里通义千问

  • 官方接入文档:https://help.aliyun.com/zh/model-studio/developer-reference/claude-code
  • 端点形式OpenAI 兼容端点https://dashscope.aliyuncs.com/compatible-mode/v1)——不是 Anthropic 兼容,需要额外配置
  • 提供模型qwen3-coder-plusqwen3-7-plusqwen-coder
  • 价格:按 Token 计费,1M tokens 输入 ¥2.4 / 输出 ¥9.6(具体见阿里云百炼定价页)
  • 官方接入示例
export ANTHROPIC_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
export ANTHROPIC_AUTH_TOKEN=<你的 DashScope API Key>
export ANTHROPIC_MODEL=qwen3-coder-plus

注意:通义千问只提供 OpenAI 兼容协议,因此接入 Claude Code 时需要额外配置一层协议转换(通常通过 claude-code-router 等路由工具,见 §3.2)。其他三家提供的是 Anthropic 原生兼容,无需转换。

2.4 月之暗面 Kimi

  • 官方接入文档:https://platform.moonshot.cn/docs/guide/agent-support
  • 兼容端点https://api.moonshot.cn/anthropic
  • 提供模型kimi-k2-thinking-turbo(256K 上下文)、kimi-k2-thinking
  • 协议支持:原生 Anthropic Messages API 兼容
  • 价格:按 Token 计费(具体见月之暗面定价页)
  • 特点:长上下文场景表现突出

2.5 模型能力对比(参考 SWE-Bench Verified 2026/07 数据)

模型 厂商 SWE-Bench Verified 上下文 协议 价格档位
Claude Opus 4.8 Anthropic 88.6 200K Anthropic 原生 高(闭源旗舰)
Claude Sonnet 5 Anthropic 85.2 200K Anthropic 原生 中高
DeepSeek V4 Pro DeepSeek 80.6 1M Anthropic 兼容
DeepSeek V4 Flash DeepSeek 79.0 1M Anthropic 兼容 极低
Qwen3-Coder-480B 阿里 开源 SOTA 1M OpenAI 兼容
GLM-5.2 智谱 ~75 128K Anthropic 兼容
Kimi K2.6 月之暗面 ~70 2M Anthropic 兼容

:SWE-Bench Verified 是衡量"模型解决真实 GitHub Issue 能力"的开源基准。闭源旗舰虽然分数高,但价格通常是开源/国产模型的 5-10 倍。表格数据为 2026 年 7 月公开发布的实测结果,会随版本更新变动。

3. 三种主流接入方式

理解了原理和协议后,我们来看三种具体的接入方式,按"上手难度"从低到高排列。

3.1 方式一:环境变量直连(最轻量)

原理:直接修改 shell 环境变量,重启终端,运行 claude

适用场景:只用一种模型,没有频繁切换需求。

步骤(以 macOS/Linux 为例):

# 1. 编辑 shell 配置文件
vim ~/.zshrc  # 或 ~/.bashrc

# 2. 末尾追加环境变量(以 DeepSeek 为例)
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=sk-xxxxxxxxxxxxxx
export ANTHROPIC_MODEL=deepseek-v4-pro[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash

# 3. 让配置生效
source ~/.zshrc

# 4. 验证
env | grep ANTHROPIC

优点:零依赖、纯 shell、随时生效。
缺点:每次换模型要改环境变量、重新 source、可能忘记当前用的是哪个。

3.2 方式二:Shell 函数/别名(轻量级切换)

原理:把"切换模型"封装成 shell 函数,需要哪个敲哪个。

官方推荐做法(来源:腾讯云开发者社区 2026/02 实践):

# 在 ~/.zshrc 中定义多个切换函数
kimi() {
    export ANTHROPIC_BASE_URL="https://api.moonshot.cn/anthropic"
    export ANTHROPIC_AUTH_TOKEN="sk-你的Kimi Key"
    export ANTHROPIC_MODEL="kimi-k2-thinking-turbo"
    export ANTHROPIC_DEFAULT_SONNET_MODEL="kimi-k2-thinking"
    export ANTHROPIC_DEFAULT_OPUS_MODEL="kimi-k2-thinking"
    echo "✓ 已切换到 Kimi K2 Thinking"
}

glm() {
    export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic"
    export ANTHROPIC_AUTH_TOKEN="sk-你的GLM Key"
    export ANTHROPIC_MODEL="glm-4-7"
    export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-4-7"
    export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-4-7"
    echo "✓ 已切换到 GLM-4.7"
}

ds() {
    export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
    export ANTHROPIC_AUTH_TOKEN="sk-你的DeepSeek Key"
    export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
    export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
    echo "✓ 已切换到 DeepSeek V4 Pro"
}

使用方法:每次开新终端,先敲 dsglmkimi,再运行 claude

关键细节:函数名本身不会启动 Claude Code,它只是修改了当前 shell 的环境变量。要让它生效,你必须在同一个终端窗口里继续运行 claude。切换后重启终端重开标签页是不必要的,但新建窗口就要重新选一次。

3.3 方式三:路由工具(重量级 + 多协议支持)

当接入OpenAI 兼容协议的服务(如通义千问 DashScope)时,环境变量法就不够用了——因为 Claude Code 默认走 Anthropic 协议,而 DashScope 提供的是 OpenAI 协议。这种情况需要一层协议转换器

社区提供了两个成熟的开源项目:

  • claude-code-router(GitHub: musistudio/claude-code-router)—— 配置文件驱动,可以同时挂载多个不同协议的端点
  • claude-code-switch(GitHub: foreveryh/claude-code-switch)—— 命令行工具,可以一键切换已配置好的"路由"

claude-code-router 为例,配置文件 ~/.claude-code-router/config.json 看起来像这样:

{
  "providers": {
    "kimi": {
      "baseURL": "https://api.moonshot.cn/anthropic",
      "model": "kimi-k2-thinking-turbo"
    },
    "glm": {
      "baseURL": "https://open.bigmodel.cn/api/anthropic",
      "model": "glm-4-7"
    },
    "qwen": {
      "baseURL": "https://dashscope.aliyuncs.com/compatible-mode/v1",
      "model": "qwen3-coder-plus",
      "transformer": "openai-to-anthropic"
    }
  }
}

使用时通过命令行参数指定 provider:

ccr kimi   # 启动 Claude Code,路由到 Kimi
ccr glm    # 启动 Claude Code,路由到 GLM
ccr qwen   # 启动 Claude Code,路由到 Qwen(自动做 OpenAI→Anthropic 协议转换)

优点:支持 OpenAI 兼容协议的厂商、配置集中管理、切换方便。
缺点:多一层依赖、配置出错排查更难、协议转换可能有功能缺失。

在这里插入图片描述

4. 配置时的常见问题与排查

接入过程中最容易踩的坑,按出现频率排序。

4.1 配置改了但没生效

症状:改了 ~/.zshrc,运行 claude 还是连着旧模型。

原因

  1. 终端没 source:编辑完 ~/.zshrc 后必须执行 source ~/.zshrc,或者重开终端。
  2. 环境变量被覆盖:某些 shell 主题(如 oh-my-zsh 的 git 插件)会重写 PATH,但不会影响 ANTHROPIC_*。如果你用 IDE(如 VSCode)的集成终端来跑 claude,IDE 可能在启动时复用了不同的环境变量。
  3. Claude Code 配置目录:Claude Code 还会在 ~/.claude/settings.json 里存配置。环境变量优先级高于这个文件,但如果文件里有显式的 apiKey 字段,行为可能异常。

排查命令

# 1. 检查环境变量是否设置成功
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_MODEL

# 2. 完整列出所有 ANTHROPIC_ 开头的变量
env | grep ^ANTHROPIC_

# 3. 查看 Claude Code 自身认为的配置
cat ~/.claude/settings.json

4.2 连接被拒绝 / 401 错误

症状:运行 claude401 UnauthorizedConnection refused

原因与解决

  • API Key 错误:检查 ANTHROPIC_AUTH_TOKEN 是否和厂商控制台显示的一致,注意不要把 sk- 前缀漏掉或多打。
  • 端点错误:确认 ANTHROPIC_BASE_URL 是厂商提供的官方文档里的端点,不是从第三方网站抄的旧版本。
  • 协议不匹配:如果你试图用环境变量直连一个只支持 OpenAI 兼容的厂商,Claude Code 发出的 Anthropic 协议请求会被对方拒绝。需要用 §3.3 的路由工具做协议转换。

4.3 Sub-agent 用了错误的模型

症状:主对话用的是 DeepSeek V4 Pro,但子代理莫名其妙用了别的模型。

原因:Claude Code 的 Sub-agent 会单独读 ANTHROPIC_DEFAULT_HAIKU_MODEL(或 CLAUDE_CODE_SUBAGENT_MODEL)。你只设置了 ANTHROPIC_MODEL,没设置子代理模型,子代理就可能 fallback 到默认(仍然是 Claude 原版)。

解决:把 HAIKU 模型也显式设成你希望它用的,比如 deepseek-v4-flash

export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash

4.4 切完模型后 Claude Code “失忆”

症状:切到新模型后,Claude Code 似乎不记得之前的对话了。

原因:这不是 bug,是设计。Anthropic 原版 Claude 与第三方模型之间不共享对话历史——因为对话状态存在客户端(Claude Code 本地),但每次新请求都会带上"完整对话历史"给模型。如果切换了模型,新模型自然不知道之前发生了什么。

解决:如果需要跨模型保持上下文,可以在切换前用 /export 命令把当前对话导出为 Markdown,切换后用 /import 导入(如果目标模型支持)。

5. 选型维度:用什么判断该接哪个模型

接入技术解决了,但"用哪个模型"是另一个问题。这里给出四个客观维度,不推荐具体厂商,帮你建立自己的判断框架。

5.1 维度一:任务类型

任务类型 关键能力 适合的模型特征
日常 CRUD 编码 代码补全、单元测试 轻量、快、便宜
复杂架构设计 长推理、多步规划 旗舰模型、长上下文
中文文档生成 中文润色 中文优化深
大型代码库重构 100K+ 上下文 1M 上下文窗口
离线/隐私 完全本地 开源可自部署

5.2 维度二:成本结构

各厂商定价模式不同,大致分三类:

  • 按 Token 计费:用多少付多少,学生党轻负载每月 ¥5-30。
  • 包月套餐:固定月费、无限调用(但通常有速率限制)。
  • 免费额度:新用户通常有首次赠送额度,适合试用。

建议:学生党初次接触,优先用按 Token 计费的厂商,先小金额试水、确认体验符合预期,再考虑包月套餐。

5.3 维度三:协议兼容性

如果你的目标是"用 Claude Code 跑国产模型",先查厂商是否提供官方 Anthropic 兼容端点——只有兼容了,§3.1 和 §3.2 的方法才能直接用。

如果厂商只提供 OpenAI 兼容协议(如 DashScope),则需要 §3.3 的路由工具,配置稍复杂。

5.4 维度四:上下文窗口

场景 建议上下文
单文件改 Bug、补全 32K-128K 够用
整个项目级重构 200K+
喂整个代码库 + 文档 1M+

当前主流国产模型的上下文窗口都已经超过 128K,1M 也已成为头部标配。上下文不是越大越好——窗口越大,单次请求费用越高,对短任务反而是浪费。

结语

这一篇是整个系列最"技术向"的一篇。我们讲了三件事:

  1. 机制层:Claude Code 通过 ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN / ANTHROPIC_MODEL 三个环境变量决定"调谁",通过模型槽位机制决定"哪种任务用哪种模型"。
  2. 协议层:要无缝接入,第三方厂商必须实现 Anthropic Messages API 兼容端点。目前 DeepSeek、GLM、Kimi 都已经原生支持;通义千问只支持 OpenAI 兼容,需要路由工具做协议转换。
  3. 实践层:从轻量的环境变量法、到 Shell 函数切换、到路由工具,三种方式覆盖从"单模型用户"到"多协议多模型重度用户"的不同需求。

贯穿整个系列,我们其实只讲了一件事:AI 编程不是"用工具",而是"建工作流"。从 Vibe Coding 到 Agentic Engineering 到 SDD,是范式的升级;从直连 Anthropic 到接入国产模型到多模型组合,是基础设施的选择。这两件事叠加起来,才是你真正的"AI 编程能力"。

参考资料

  1. Claude Code 官方文档:https://docs.anthropic.com/en/docs/claude-code
  2. DeepSeek 接入 Claude Code 官方文档:https://api-docs.deepseek.com/zh-cn/quick_start/agent_integrations/claude_code
  3. 智谱 GLM 接入 Claude Code 官方文档:https://docs.bigmodel.cn/cn/guide/coding/claude_code
  4. 月之暗面 Kimi 接入文档:https://platform.moonshot.cn/docs/guide/agent-support
  5. 阿里通义千问 DashScope 文档:https://help.aliyun.com/zh/model-studio
  6. Claude Code 自定义端点配置实践(腾讯云开发者社区 2026/02):https://cloud.tencent.com/developer/article/2659150
  7. Custom API Endpoints for Claude Code, Cursor, Cline & More (2026):https://ofox.ai/blog/cursor-claude-code-cline-custom-api-setup-2026
  8. Claude Code 兼容模型参考仓库:https://github.com/Alorse/cc-compatible-models
  9. SWE-Bench Verified 代码能力评测榜单:https://www.datalearner.com/leaderboards/category/code
  10. Claude Code Router 开源项目:https://github.com/musistudio/claude-code-router

更多推荐