把 DeepSeek V4 Pro 接进 cc-router:从申请 API Key 到 Claude Code 跑通

Claude 单订阅打满之后想换个口子继续跑,DeepSeek V4 Pro 是个绕不开的选项 —— 旗舰水准、按量计费、长上下文友好。但 Claude Code 只认 Anthropic 协议,DeepSeek 是 OpenAI 兼容协议,两边直连接不上。cc-router 在中间挂一层本地代理,把 DeepSeek 的 OpenAI 协议翻译成 Anthropic 协议,Claude Code 这边只需要改一份 ~/.claude/settings.json。下面这篇把整条链路从「DeepSeek 平台领 key」到「Claude Code 跑通第一条对话」走一遍。

项目地址: GitHub - finch-xu/cc-router官方主页入门文档

DeepSeek: 开发者平台API 文档API Keys

为什么是 DeepSeek V4 Pro

DeepSeek 2026 年发布的 V4 系列把模型清单收敛成两个:

  • deepseek-v4-pro —— 旗舰,对标 Claude Opus / GPT 顶配,适合放在 cc-router 的 model-opus 槽位
  • deepseek-v4-flash —— 轻量低延迟,适合放在 model-haiku 槽位接 subagent 这种高频小请求

老的 deepseek-chat / deepseek-reasoner2026-07-24 弃用,DeepSeek 官方文档里已经标注,新接入直接用 V4 系列即可。

协议上 DeepSeek 走的是 OpenAI Chat Completions 兼容接口,base URL https://api.deepseek.com。cc-router 已经内置了 DeepSeek 这个 provider(在 cc-router 的厂商列表里归类为「按量付费」),不需要走「自定义 OpenAI 兼容」入口,省一步配置。计费形态是预付余额、按 token 计算,没有月度套餐 —— 这点和 Claude / GLM 那种 Token Plan 不同,首次接入记得先充小额测试。


整体连接架构

cc-router 在本地起一个 Anthropic 协议代理(默认 127.0.0.1:23456),向上对接 Claude Code,向下转发到 DeepSeek 官方 API:

1
2
3
4
5
6
7
8
9
10
 claude CLI              cc-router (本地)              DeepSeek 官方
┌──────────┐ ┌─────────────────┐ ┌──────────────────┐
│ HTTP │──────────▶│ 127.0.0.1:23456 │───────▶ │ api.deepseek.com │
│ Anthropic│ │ 协议翻译 │ │ deepseek-v4-pro │
│ 协议 │ │ 三槽位虚拟模型 │ │ deepseek-v4-flash│
└──────────┘ └─────────────────┘ └──────────────────┘
▲ │
│ └── 请求日志页实时可见
~/.claude/settings.json
注入 env 变量

Claude Code 这边其实什么都不用改,它原本就支持通过环境变量改写 base URL 和模型名,cc-router 接管的正是这两个口子,外加把 Anthropic 协议的 messages / tool_use 翻译成 OpenAI 协议的 messages / tool_calls 转发给 DeepSeek。


步骤一:在 DeepSeek 平台申请 API Key

打开 platform.deepseek.com,注册或登录。

进入 充值 页面预存一点余额。按量计费没有免费额度,必须有余额账号才能调用 API;首次测试充 10 块钱足够跑通整条链路 + 跑几个简单任务。

然后到 API Keys 页面Create new API key → 起个名字(比如 cc-router-local)→ 立即复制 生成的 sk-xxxxxxxx 串。关闭对话框后就再也看不到完整 key 了,DeepSeek 平台只在这一次明文展示。复制完粘到密码管理器或者直接进下一步。

如果手抄漏了字符,回这里删掉旧 key 重新生成一个,不要尝试在仪表盘上「找回」。


步骤二:下载并启动 cc-router

cc-router 是 Tauri 写的桌面应用,macOS / Windows / Linux 都有打包好的版本,直接到 GitHub Releasesccrouter.app/download 下载对应平台的 .dmg / .exe / .AppImage / .deb

装完打开 App,本地代理服务会自动起在 127.0.0.1:23456

如果 23456 端口被别的进程占了,cc-router 会自动 +1 往后递增(23457、23458……)。所以不要把 23456 硬编码到 settings.json 里,要回到 cc-router 设置页确认实际监听端口再复制 —— 这是踩坑率最高的一项。

cc-router 主界面


步骤三:在 cc-router 里添加 DeepSeek provider

进入 订阅 / Providers 页 → 添加订阅

厂商列表里找 DeepSeek(按量付费) —— 注意 cc-router 把每家厂商的「按量付费」和「Token Plan」做了区分入口,DeepSeek 这边只有按量付费一种接入方式。

填写界面里要注意:

  • Base URL / Endpoint 不需要手动填。这是内置 provider,cc-router 自动用官方接入点 https://api.deepseek.com
  • API Key 字段:粘上一步从 DeepSeek 平台领的 sk-xxx
  • 保存后 cc-router 会自动调用 /v1/models 抓一遍该 key 可用的模型列表,正常情况下你应该在面板里看到 deepseek-v4-prodeepseek-v4-flash,以及可能存在的过渡模型如 deepseek-chat / deepseek-reasoner(这两个 2026-07-24 弃用,看到了不必绑)。

如果你拉出来的列表是空的,绝大多数情况是 key 拼错或者账户没充值,回上一步确认 DeepSeek 平台显示「余额 > 0」且 key 状态 active

顺便提一下:cc-router 还提供「自定义 (Anthropic 协议)」和「自定义 (Gemini 兼容)」两个泛用入口,给那些没在内置列表里的小众 provider 用。DeepSeek 是内置 provider,不要走自定义入口,否则你得自己填 base URL、headers、模型映射,纯粹给自己找麻烦。


步骤四:把模型绑到虚拟槽位

cc-router 对外暴露的不是真实模型名,而是三个虚拟槽位 —— model-opus / model-sonnet / model-haiku。Claude Code 请求过来时只认这三个别名,cc-router 根据每个槽位的绑定情况决定打到哪家 provider 的哪个真实模型。

模型 / Models 页,对每个虚拟槽位单独配置:

虚拟槽位 绑定模型
model-opus deepseek-v4-pro
model-sonnet deepseek-v4-pro
model-haiku deepseek-v4-flash

为什么 sonnet 也绑 v4-pro 而不是 flash?Claude Code 把 subagent / Task tool 的默认模型挂在 sonnet 槽位(除非你显式覆盖 CLAUDE_CODE_SUBAGENT_MODEL)。subagent 是要独立干一段子任务的,把它降级到 flash 等于让一个轻量模型独立完成代码搜索、重构判断这种事,结果质量会被拉低,而你在主对话看到的是「subagent 给的总结」,问题会被层层包裹得不容易追溯。两个槽位都绑旗舰,代价是这两个槽位的请求都按 v4-pro 价位计费,但调试体验干净很多。haiku 槽位 Claude Code 用来跑短小的辅助请求(命令生成、文件名建议这类),给 flash 即可。

调度模式 在「同一个槽位绑多家 provider」时才有意义,单家 DeepSeek 直接绑就行。等之后你想加挂第二家厂商做 fallback,再回到这里选:

  • Sequential:A 用完或失败才切 B,保留 prompt cache,适合「先榨干主力账号再切备用」
  • Round-robin:请求间轮换,真负载均衡,但会破坏单家的 prompt cache 命中率

步骤五:复制 cc-router 的 token 和 base URL

打开 cc-router → 设置代理服务,这一页有两个东西要抄:

  1. Base URLhttp://127.0.0.1:实际端口,注意是 http:// 不是 https://,端口看实际监听值(可能被 +1)
  2. Token / API Key:cc-router 自己生成的一串字符串,Claude Code 用这个鉴权进 cc-router(不是 DeepSeek 那个 sk-xxx

用页面上的复制按钮,避免手抄漏字符。

复制 token 与 base URL

⚠️ 这个 token 等同于你所有挂在 cc-router 上的上游订阅的访问权(这里就是你的 DeepSeek 余额)。不要截图、不要 push 到 git、不要发到群里。


步骤六:写入 ~/.claude/settings.json

Claude Code 启动时会读 ~/.claude/settings.json,把 env 字段里的所有键值对当成环境变量注入到自己进程,这是官方支持的扩展点。文件位置三平台都是同一个:

  • macOS / Linux:~/.claude/settings.json
  • Windows:%USERPROFILE%\.claude\settings.json

文件不存在就新建,已存在就合并 env 字段(其它字段别动)。完整模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"env": {
"ANTHROPIC_BASE_URL": "http://127.0.0.1:23456",
"ANTHROPIC_AUTH_TOKEN": "这里填写cc-router设置里真实token",
"API_TIMEOUT_MS": "3000000",
"ANTHROPIC_MODEL": "model-opus",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "model-opus",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "model-sonnet",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "model-haiku",
"CLAUDE_CODE_SUBAGENT_MODEL": "model-opus",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK": "1",
"CLAUDE_CODE_ATTRIBUTION_HEADER": "0",
"CLAUDE_CODE_EFFORT_LEVEL": "max"
}
}

四个最容易踩坑的字段:

字段 注意点
ANTHROPIC_BASE_URL 端口换成 cc-router 设置页里看到的实际监听端口,可能不是 23456
ANTHROPIC_AUTH_TOKEN 不是 ANTHROPIC_API_KEY,字段名写错最常见的 401 来源
API_TIMEOUT_MS DeepSeek 长上下文请求容易跑久,3000000ms(50 分钟)足够
ANTHROPIC_MODEL 及三个 _DEFAULT_*_MODEL 必须写虚拟槽位别名model-opus 等),不要写 deepseek-v4-pro —— Claude Code 不认真实模型名

字段全集和每个 env 的细节看用 cc-router 接入 Claude Code,本文不再重复。


步骤七:起 claude,发一条话验证

如果还没装 Claude Code:

1
curl -fsSL https://claude.ai/install.sh | bash

随便进一个目录,运行:

1
claude

进入对话后随便问一句,比如「写一段 Hello World 的 Python 代码」。

切回 cc-router 主界面,进请求日志页 —— 应该能看到刚刚那条请求的记录:哪个虚拟槽位(model-opus)、被路由到哪家上游 provider(DeepSeek)、命中的真实模型(deepseek-v4-pro)、消耗了多少 token、响应耗时多少。如果日志页没动静,说明请求根本没走到 cc-router,回去检查 ANTHROPIC_BASE_URL 的端口对不对、settings.json 是不是合法 JSON、是否完整退出 claude 进程再重开。

cc-router 请求日志


DeepSeek V4 Pro 用起来要注意的点

  • 看到老模型 ID 别绑。如果 cc-router 抓出来的模型列表里只有 deepseek-chat / deepseek-reasoner 没有 deepseek-v4-pro,说明账号还在旧模型分组里,去 DeepSeek 平台后台切到 V4 系列。两个老模型 2026-07-24 弃用,没必要绑。
  • 按量计费 = 没有免费额度。第一次跑 Claude Code 一个简单任务(几次工具调用 + 几千 token 输出)可能消耗几分到几毛钱,正常。盯着 DeepSeek 平台的余额面板,跑大任务前充够。
  • 协议翻译在 cc-router 这一层。DeepSeek 用 OpenAI 协议但 Claude Code 发的是 Anthropic 协议,cc-router 在中间做字段映射。如果遇到 tool_use 行为怪异、长 prompt 截断之类的怪现象,先看 cc-router 请求日志页的原始报文,能直接看到「Anthropic 协议进 / OpenAI 协议出」两段,判断是协议翻译的问题还是 DeepSeek 端的问题。
  • 单家 provider 不要勾 Round-robin。Round-robin 是给多家 provider 设计的,单挂 DeepSeek 一家时它和 Sequential 没区别,但开了反而会让 cc-router 内部多走一段无意义的轮询逻辑。等真挂了第二家再回来调度模式选项。

排错速查

现象 原因 修法
cc-router 添加完 DeepSeek,模型列表是空的 API Key 无效 / 账号没充值 回 DeepSeek 平台确认余额 > 0 且 key 状态 active
模型列表只有 deepseek-chat / deepseek-reasoner,看不到 v4-pro 账号还在旧模型分组 DeepSeek 平台后台切到 V4 系列;老模型 2026-07-24 弃用
Claude Code 报 401 Unauthorized cc-router token 写错 / 字段写成了 ANTHROPIC_API_KEY 字段名必须 ANTHROPIC_AUTH_TOKEN,回 cc-router 设置页重新复制 token
Claude Code 报 model not found settings.json 里写的是真实模型名 deepseek-v4-pro 改成虚拟槽位名 model-opus / model-sonnet / model-haiku
Claude Code 报 connection refused 端口对不上 回 cc-router 设置页看实际监听端口(可能被自动 +1)
请求日志页 5xx,错误信息含 insufficient_balance DeepSeek 账户余额耗尽 平台充值;或同槽位加挂第二家 provider 配 Sequential fallback
请求日志页没记录 claude 没读到 settings.json 完整退出 claude 进程再重开;确认文件路径是 ~/.claude/settings.json 且 JSON 合法

安全提醒

  • DeepSeek 的 sk-xxx 直接控制你的余额。cc-router 把这个 key 存在本地配置目录里,不要把 cc-router 的配置文件夹整体备份到公开仓库或云盘共享链接。
  • cc-router 自身的聚合 token 比单一 DeepSeek key 后果更严重 —— 一旦泄漏,攻击者可以消耗你挂在 cc-router 上的所有上游订阅,不只是 DeepSeek 这一家。单独保管,不要和 DeepSeek key 放一起。
  • HTTP 监听仅限本机环回127.0.0.1:23456 默认只对本机可见,不要为了「在另一台机器上用」把端口暴露到公网。跨机器调用走 cc-router 自带的 HTTPS 模式 + 自签 CA,参考相关阅读那篇 Claude Desktop 接入教程。
  • DeepSeek 的 ToS 自己遵守。cc-router 是透明代理,不解除任何 provider 端的限制;高频跨账号轮询有被限速或封号风险。

相关阅读

参考链接