2026-05-01

在 Claude Code 中使用 DeepSeek:官方可复现接法

截至 2026 年 5 月 1 日,官方文档里可复现的接法不是“把 DeepSeek 塞进 claude.ai 网页聊天”,而是让 Claude Code 走 DeepSeek 的 Anthropic 兼容 endpoint。也就是说,你保留 Claude Code 这套 coding agent 交互方式,但真正跑模型请求的是 DeepSeek。下面按可执行顺序把安装、变量配置、验证和兼容边界讲清楚。

1. 先搞清边界:这是 Claude Code,不是 claude.ai 网页聊天

现在 DeepSeek 已经有官方 Claude Code 接入页,Anthropic 也明确记录了 Claude Code 用来改路由的环境变量。这两份文档拼在一起,就构成了一个可以落地、可以复现的官方路径。

但边界也要说清楚:这些变量覆盖的是 Claude Code 会话,不是普通的 claude.ai 消费者聊天产品。所以如果你的目标是“在 Claude 的编码工作流里跑 DeepSeek”,本教程适用;如果你的目标是“在 Claude 官网聊天窗口里把模型切到 DeepSeek”,官方文档并没有这么写。

Sources checked

2. 安装 Claude Code,并先确认命令能跑

如果本机已经装过 Claude Code,可以直接跳到环境变量。如果还没装,先确保 Node.js 18+ 可用,然后全局安装官方包。最简单的 smoke test 就是先看版本号,别还没装好就开始查模型问题。

npm install -g @anthropic-ai/claude-code
claude --version

Sources checked

3. 按官方原样配置 DeepSeek 路由变量

Claude Code 这条线路里,DeepSeek 官方当前给的是 `https://api.deepseek.com/anthropic`,认证用 `ANTHROPIC_AUTH_TOKEN`,主会话和默认别名模型要显式钉住,subagent 则建议走更便宜的 Flash。先照官方配,不要一上来就自己改名。

这里有一个很容易混淆的点:DeepSeek 的通用 Anthropic API 页面里,SDK 示例写的是 `deepseek-v4-pro`;但专门给 Claude Code 的接入页,目前主模型写的是 `deepseek-v4-pro[1m]`。如果你接的是 Claude Code,就应该优先跟专门的 Claude Code 页面走。

Claude Code -> DeepSeek 官方变量表
变量建议值作用
ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic把 Claude Code 请求发到 DeepSeek 的 Anthropic 兼容 endpoint。
ANTHROPIC_AUTH_TOKEN<你的 DeepSeek API Key>这个路由走的是 Bearer Token。
ANTHROPIC_MODELdeepseek-v4-pro[1m]主会话默认模型。
ANTHROPIC_DEFAULT_OPUS_MODEL / ANTHROPIC_DEFAULT_SONNET_MODELdeepseek-v4-pro[1m]避免 Claude Code 的模型别名飘回 Anthropic 默认值。
ANTHROPIC_DEFAULT_HAIKU_MODEL / CLAUDE_CODE_SUBAGENT_MODELdeepseek-v4-flash把轻量任务和子代理压到更省钱的 Flash。
CLAUDE_CODE_EFFORT_LEVELmax对应官方给 Claude Code 的高强度推理配置。
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="sk-..."
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"
export CLAUDE_CODE_EFFORT_LEVEL="max"

claude

Sources checked

4. 启动后必须验证,不要盲信已经切成功

不要看到 Claude Code 能打开就以为已经走 DeepSeek 了。进到项目目录后启动 `claude`,立刻运行 `/status`,看当前实际生效的模型、认证和配置来源是不是你刚才导出的那些变量。shell profile 写错、旧登录残留、变量没加载,都会让你误以为自己切成了 DeepSeek。

另外,DeepSeek 的 Anthropic API 文档还专门写了一个坑:如果你传了它不支持的模型名,后端可能会自动映射到 `deepseek-v4-flash`。这对兜底是好事,但也意味着很多人其实没跑到 Pro 却以为自己跑到了。所以模型名要精确,`/status` 要检查。

claude
/status

Sources checked

5. 持久化配置时,把 CLI 和 Desktop 当成两条不同的验证链路

如果你主要从终端里用 Claude Code,就把这一组 export 写进 `~/.zshrc` 或 `~/.bashrc`。这仍然是最稳的官方路径,因为 DeepSeek 的 Claude Code 接入文档本身就是围绕终端里的 `claude` 流程写的。

Claude Code Desktop 这边要保守一点。Anthropic 的 Desktop 文档说明它有自己的本地环境编辑器,也不一定完整继承 shell 环境;同时 Anthropic 的认证文档又单独写了,像 `ANTHROPIC_AUTH_TOKEN` 这类 API Key / Bearer Token 变量是给终端 CLI 会话用的,Desktop 走的是 OAuth。实际落地时,最稳的规则是:先把 DeepSeek 这条 Bearer Token 路由当成 CLI-first 方案,只有在你自己的 Desktop 版本上用 `/status` 和真实请求跑通后,才把 Desktop 也写进团队 SOP。

如果你只是想给 CLI 会话做本机持久化,也可以把变量放进 `~/.claude/settings.json` 的 `env` 里;但不要把这件事表述成“所有 Desktop 场景都会自动等价生效”。

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "sk-...",
    "ANTHROPIC_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-v4-pro[1m]",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-v4-flash",
    "CLAUDE_CODE_EFFORT_LEVEL": "max"
  }
}

Sources checked

6. 上线前要知道的兼容性边界

DeepSeek 的 Anthropic API 是兼容导向,不是把 Anthropic 全家桶所有特性 1:1 复刻。工具定义和文本型 tool use 是支持的,但并不是所有 Anthropic message content 类型都能走。当前兼容性文档里,image、document、search_result,以及不少 MCP 相关字段都标成了不支持或忽略。

Anthropic 的环境变量文档还补了一刀:只要 `ANTHROPIC_BASE_URL` 指向非 Anthropic 第一方地址,MCP tool search 默认就会关掉。只有在你的代理或网关真的能转发 `tool_reference` 行为时,才值得尝试 `ENABLE_TOOL_SEARCH=true`。不要把“能跑 Claude Code”自动脑补成“全部 Anthropic 特性都等价可用”。

最稳妥的使用范围是:编码、终端工作流、纯文本 prompt、普通工具调用。更高级的 Anthropic 专属能力,逐项验证后再写进团队 SOP。

Sources checked

FAQ

这能直接用在 claude.ai 普通聊天页面吗?

不能按本教程这种方式直接切。这里讲的是 Claude Code 官方支持的配置路径,不是普通 claude.ai 网页聊天切模型。

为什么这里用 ANTHROPIC_AUTH_TOKEN,不是 ANTHROPIC_API_KEY?

因为 DeepSeek 这条 Anthropic 兼容路由官方文档写的是 Bearer Token 方式。Anthropic 也把 ANTHROPIC_AUTH_TOKEN 定义为自定义 Authorization 头。

为什么我最后跑成了 Flash,不是 Pro?

因为 DeepSeek 文档明确写了:不支持的模型名可能自动回退到 deepseek-v4-flash。先保证模型字符串跟官方页面完全一致,再用 /status 检查。

Claude Code 的所有功能都会和原生 Anthropic 一样吗?

不会。基础文本和 tool use 是最稳的,但 DeepSeek 的兼容性页已经明确列出有些 Anthropic 内容类型和 MCP 字段不支持或被忽略。

之后怎么切回官方 Anthropic 模型?

开一个没有这些变量的新 shell,或者把 settings.json / shell profile 里的 DeepSeek 变量移掉即可。整个接法本质上就是配置覆盖。

如果把问题说准,到 2026 年 5 月 1 日,‘如何把 DeepSeek 接入 Claude’ 最靠谱的官方答案就是:接进 Claude Code,而不是普通 Claude 网页聊天。把 `ANTHROPIC_BASE_URL` 指向 DeepSeek 的 Anthropic endpoint,用 `ANTHROPIC_AUTH_TOKEN` 认证,按官方模型名配置,再用 `/status` 核实当前会话实际跑的是谁。