把 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 V4 Pro
DeepSeek 2026 年发布的 V4 系列把模型清单收敛成两个:
deepseek-v4-pro—— 旗舰,对标 Claude Opus / GPT 顶配,适合放在 cc-router 的model-opus槽位deepseek-v4-flash—— 轻量低延迟,适合放在model-haiku槽位接 subagent 这种高频小请求
老的 deepseek-chat / deepseek-reasoner 在 2026-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 | claude CLI cc-router (本地) DeepSeek 官方 |
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 Releases 或 ccrouter.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 里添加 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-pro、deepseek-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 → 设置 → 代理服务,这一页有两个东西要抄:
- Base URL:
http://127.0.0.1:实际端口,注意是http://不是https://,端口看实际监听值(可能被 +1) - Token / API Key:cc-router 自己生成的一串字符串,Claude Code 用这个鉴权进 cc-router(不是 DeepSeek 那个
sk-xxx)
用页面上的复制按钮,避免手抄漏字符。

⚠️ 这个 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 | { |
四个最容易踩坑的字段:
| 字段 | 注意点 |
|---|---|
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 进程再重开。

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 端的限制;高频跨账号轮询有被限速或封号风险。
相关阅读
- 用 cc-router 接入 Claude Code:一份 settings.json 把多家订阅塞进 CLI —— settings.json 字段全集和每个 env 的细节
- 用 cc-router 接入 Claude Desktop:一个 Token 调度多家模型订阅 —— HTTPS Gateway + 自签 CA 跨机器方案
参考链接
- cc-router:GitHub 仓库 / 官方主页 / 入门文档 / GitHub Releases 下载
- DeepSeek:开发者平台 / API 文档 / API Keys 申请页