Claude Code Router 接入 DeepSeek:一次配好三档任务模型
【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router
Claude Code Router(下称 CCR)是跑在本机的模型网关,也就是统一入口,替你把 Claude Code 的请求转发给真正的大模型 API。这篇带你把它接上 DeepSeek,让不同任务自动走不同模型。
第一步:把 CCR 网关跑起来 🚀
先装命令行工具,它要求 Node.js 22 及以上:
npm install -g @musistudio/claude-code-router装完用一条命令把网关和管理界面一起拉起来:
ccr uiccr ui会启动同一个网关进程,并打开浏览器端的管理面板。跑起来后,两个端口分别负责不同事:
- 网关入口:
http://127.0.0.1:3456,Claude Code 的流量都走这里 - 管理面板:
http://127.0.0.1:3458,你配置供应商、路由、模型的地方
一次请求的完整路径长这样:
完成信号:浏览器停在http://127.0.0.1:3458的管理界面、不报错,就说明网关活着。
第二步:让 DeepSeek 上线 🧩
CCR 内置了 DeepSeek 预设,接口地址https://api.deepseek.com、协议是 OpenAI Chat Completions,都不用你手填。在供应商页点添加供应商,选 DeepSeek:
- 把 API 密钥粘进密钥框;
- 勾选要用到的模型,比如
deepseek-chat和deepseek-reasoner; - 点检测连通性,它会真实打一次上游,确认 Key 和模型 ID 都能调通。
完成信号:检测连通性显示成功,模型列表里能看到你勾的那几个 ID。
接下来还要告诉 CCR 怎么接 Claude Code:去Agent 配置加一条 Claude Code 配置,挑好默认模型,再直接从 CCR 里打开 Claude Code,流量才会进网关。详细字段见 Claude Code 接入文档。
第三步:什么任务交给什么模型 🎯
先记一句内置路由的脾气:它优先认客户端里显式选好且 CCR 认识的模型;没选或不认识时,才落到 Agent 配置里那个默认模型。你自己的规则还能在其后继续改写。所以真正要做的,是按任务分档:
| 场景 | 建议模型 | 理由 |
|---|---|---|
| 日常问答 | deepseek/deepseek-chat | 出得快、花得少,高频对话划算 |
| 写代码 | deepseek/deepseek-chat | 常规改动能扛住,再挂一条回退链更稳 |
| 复杂推理 | deepseek/deepseek-reasoner | 慢但深,留给架构分析、难题拆解 |
| 长上下文 | 另配一个长上下文模型 | 啃大日志、长文档时切过去,免得小窗口截断 |
规则在路由页配置,按列表顺序走,第一条命中的启用规则说了算。字段全貌见 路由文档。
进阶一:按消息内容自动分流
想让"消息像代码就走一个、像推理就走另一个",普通单字段条件不够。把规则类型改成Node.js 脚本,指向一个本地脚本文件。CCR 每次执行前都会重读这个文件,你改完脚本不用回头重存规则;脚本按列表顺序跑,返回null就是"我没命中,交给下一条"。最短可跑的例子:
const text = input.summary.lastUserText ?? ""; if (/def |function |class |import /.test(text)) { return { model: "deepseek/deepseek-chat" }; } if (/推理|证明|为什么/.test(text)) { return { model: "deepseek/deepseek-reasoner" }; } return null;进阶二:给子代理单独指定模型
Claude Code 用 Agent / Task / Workflow 派生子代理时,往往不该让它们跟着默认模型走。机制分两步:
- 在模型页给想被自动选中的模型填Description,写清它擅长什么任务。只要有一个模型填了,CCR 才会把这份带说明的模型清单注进 Claude Code 的工具说明——一个都没填,就不注入。
- 派生请求的 prompt 首行会带上一个模型标签,CCR 识别后直接路由过去:
<CCR-SUBAGENT-MODEL>deepseek/deepseek-reasoner</CCR-SUBAGENT-MODEL> 请给出这道题的完整推理步骤……完成信号:派生请求进来后,CCR 会把它解析成builtin:claude-code-subagent,最终resolved model就是标签里那个。
排障清单:出问题时先查这三件 🛠️
超时
- 现象:reasoner 这类慢模型经常把默认超时打穿,请求报错。
- 怎么处理:给对应路由规则单独调大超时,脚本规则可设 10 到 30000 毫秒。
- 确认解决:发一条典型难题,到请求日志看这条的状态是不是成功。
输出超长
- 现象:Claude Code 期望的输出 token 高于 DeepSeek 单次上限,上游直接报错。
- 怎么处理:在命中规则里加一条改写,把
request.body.max_tokens调小。 - 确认解决:看日志里的上游错误,通常会直接写明 token 限制,改完再发一次不再报。
配置没生效
- 现象:改了路由,行为却没变。
- 怎么处理:确认你是从 CCR 打开的 Claude Code,而不是从系统直接开;再确认规则是启用状态。
- 确认解决:看请求日志里这条请求解析出的供应商/模型是不是你预期的组合,顺手在 Claude Code 里敲
/model,看 CCR 暴露的模型在不在。
这套方案适合谁
日常就在用 Claude Code、手里有多家模型额度、想在本地集中管路由和回退的人,CCR 会很顺手。若只是偶尔调几个模型 API,或打算直接换掉 Claude Code 客户端本身,它就不是合适工具。把上游选对,体验基本就到位了。
【免费下载链接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考