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
- DeepSeek 官方 Claude Code 接入文档 - 官方接入入口。
- Anthropic 认证文档 - 说明 ANTHROPIC_AUTH_TOKEN 作用在 Claude Code CLI 会话。
2. 安装 Claude Code,并先确认命令能跑
如果本机已经装过 Claude Code,可以直接跳到环境变量。如果还没装,先确保 Node.js 18+ 可用,然后全局安装官方包。最简单的 smoke test 就是先看版本号,别还没装好就开始查模型问题。
npm install -g @anthropic-ai/claude-code
claude --versionSources checked
- DeepSeek 官方 Claude Code 接入文档 - 官方安装方式。
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 页面走。
| 变量 | 建议值 | 作用 |
|---|---|---|
| ANTHROPIC_BASE_URL | https://api.deepseek.com/anthropic | 把 Claude Code 请求发到 DeepSeek 的 Anthropic 兼容 endpoint。 |
| ANTHROPIC_AUTH_TOKEN | <你的 DeepSeek API Key> | 这个路由走的是 Bearer Token。 |
| ANTHROPIC_MODEL | deepseek-v4-pro[1m] | 主会话默认模型。 |
| ANTHROPIC_DEFAULT_OPUS_MODEL / ANTHROPIC_DEFAULT_SONNET_MODEL | deepseek-v4-pro[1m] | 避免 Claude Code 的模型别名飘回 Anthropic 默认值。 |
| ANTHROPIC_DEFAULT_HAIKU_MODEL / CLAUDE_CODE_SUBAGENT_MODEL | deepseek-v4-flash | 把轻量任务和子代理压到更省钱的 Flash。 |
| CLAUDE_CODE_EFFORT_LEVEL | max | 对应官方给 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"
claudeSources checked
- DeepSeek 官方 Claude Code 接入文档 - 变量配方来源。
- Claude Code 环境变量文档 - 说明 ANTHROPIC_BASE_URL 与 ANTHROPIC_AUTH_TOKEN 的含义。
4. 启动后必须验证,不要盲信已经切成功
不要看到 Claude Code 能打开就以为已经走 DeepSeek 了。进到项目目录后启动 `claude`,立刻运行 `/status`,看当前实际生效的模型、认证和配置来源是不是你刚才导出的那些变量。shell profile 写错、旧登录残留、变量没加载,都会让你误以为自己切成了 DeepSeek。
另外,DeepSeek 的 Anthropic API 文档还专门写了一个坑:如果你传了它不支持的模型名,后端可能会自动映射到 `deepseek-v4-flash`。这对兜底是好事,但也意味着很多人其实没跑到 Pro 却以为自己跑到了。所以模型名要精确,`/status` 要检查。
claude
/statusSources checked
- Claude Code settings 文档 - 说明用 /status 检查当前生效配置。
- DeepSeek Anthropic API 文档 - 提到不支持模型名会回退到 deepseek-v4-flash。
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
- Claude Code 环境变量文档 - 说明 settings.json 的 env 配置和自定义 base URL 变量。
- Claude Code Desktop 文档 - 说明本地环境编辑器和 macOS 环境继承边界。
- Anthropic 认证文档 - 说明 ANTHROPIC_AUTH_TOKEN 面向终端 CLI,会与 Desktop OAuth 边界相关。
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
- DeepSeek Anthropic API 兼容性细节 - 支持/忽略/不支持字段列表。
- Claude Code 环境变量文档 - 说明非第一方 host 下的 MCP tool search 行为。
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` 核实当前会话实际跑的是谁。