4 步把 Claude Code 的请求路由到 DeepSeek 模型:Claude Code Router 实践
2026/9/1 11:54:15 网站建设 项目流程

4 步把 Claude Code 的请求路由到 DeepSeek 模型:Claude Code Router 实践

【免费下载链接】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 等编程代理提供统一的本地端点,把每次模型请求转发到你配置的提供商与模型上。本文以 DeepSeek 集成为主线,依次说明 CCR 的定位、最小可运行配置、路由机制、按场景分发模型的方法、高级定制手段,以及成本监控与生产部署,覆盖从 DeepSeek 接入 Claude Code 到多模型路由策略的完整过程。

认识项目:Claude Code Router 是什么

Claude Code Router 是一个运行在本地的模型网关与控制面。Claude Code 默认只调用 Anthropic 的模型,而 CCR 在本地(默认127.0.0.1:3456)暴露一个兼容端点,接收请求后完成三件事:

  • 判断请求属于哪类场景,选择目标提供商和模型;
  • 做协议转换(transformer),把 Anthropic Messages 格式的请求转成目标模型支持的格式,再把响应转回来;
  • 记录每次请求的最终路由、耗时、token 用量与成本估计,供界面查看。

DeepSeek 是 CCR 内置的提供商预设之一,使用 OpenAI Chat Completions 兼容协议,预设定义见 packages/core/src/providers/presets/deepseek/index.ts。因此 DeepSeek 接入 Claude Code 不需要自己写转换逻辑:把 Claude Code 指向 CCR 的本地端点,由 CCR 负责协议适配与路由。

安装 Claude Code Router 并准备最小配置

通过 npm 全局安装 CLI,然后启动服务:

npm install -g @musistudio/claude-code-router ccr start # 后台启动管理服务和网关;ccr ui 可打开管理界面

最小可运行的配置如下(保存为~/.claude-code-router/config.json):

{ "HOST": "127.0.0.1", "PORT": 3456, "API_TIMEOUT_MS": 600000, "Providers": [ { "name": "deepseek", "api_base_url": "https://api.deepseek.com", "api_key": "$DEEPSEEK_API_KEY", "models": ["deepseek-chat", "deepseek-reasoner"] } ], "Router": { "default": "deepseek/deepseek-chat" } }
字段含义示例值
HOST/PORT本地网关监听地址,Claude Code 指向它127.0.0.1/3456
API_TIMEOUT_MS上游模型请求超时时间(毫秒)600000
Providers[].name提供商名称,路由时以「名称/模型」引用deepseek
api_base_url模型服务地址https://api.deepseek.com
api_key服务密钥,支持$变量引用环境变量$DEEPSEEK_API_KEY
models该提供商下可用的模型 ID 列表deepseek-chat
Router.default默认路由目标deepseek/deepseek-chat

需要注意:桌面版将运行配置维护在 SQLite 数据库中(位置见 docs/src/content/docs/zh/configuration/configuration-file.md),config.json仅在没有数据库时作为迁移来源读取一次。因此日常建议在ccr ui界面中管理提供商和路由,界面内也提供 DeepSeek 预设导入。

路由机制:请求如何按场景分发到不同模型

(token 指模型计费与计量所用的词元单位;router 指决定「这次请求交给哪个模型」的环节。)

CCR 处理每个请求的顺序是:先由内置路由识别请求来源与场景,再依次匹配用户自定义规则,最后交给 transformer 做协议转换并转发。Claude Code 的不同请求对应不同场景:

场景配置项触发时机
主对话default常规对话与编码请求
后台任务background标题生成、摘要等低成本后台请求
扩展思考think需要 reasoning 的复杂推理请求
长上下文longContext上下文长度超过设定阈值
联网搜索webSearch请求需要网页检索能力

整体流程如下:

内置路由与自定义规则的细节见 docs/src/content/docs/zh/configuration/routing.md。

按场景选模型:DeepSeek 模型对比表

Claude Code 模型路由配置的核心是给每个场景指定合适的模型,参考如下(模型 ID 以 DeepSeek 平台实际可用为准):

场景配置项推荐模型适用任务
日常编码defaultdeepseek-chat一般问答、代码补全、代码解释
后台小任务background轻量 Flash 级模型标题生成、摘要、低成本并行子代理
复杂推理thinkdeepseek-reasoner数学推导、算法设计、多步规划
长文档分析longContext长上下文模型(可跨提供商)仓库级上下文整理、长文档问答
联网检索webSearch具备搜索能力的模型实时信息获取

高级配置:自定义路由规则、子代理与环境变量

在路由页面添加自定义规则:按请求头或请求体字段设置条件,命中后改写目标模型;规则按列表顺序匹配,第一条命中即生效。更复杂的判断可用 Node.js 脚本规则,脚本可访问请求摘要与 token 估算,例如按关键词分发:

const text = input.summary.lastUserText || ""; if (/debug|单测|修复/.test(text)) { return { model: "deepseek/deepseek-chat" }; } if (/证明|推导|算法设计/.test(text)) { return { model: "deepseek/deepseek-reasoner" }; } return null; // 不命中,走默认路由

子代理指定模型:Claude Code 派生的子代理(Subagent)请求可以在 prompt 首行携带模型标签,CCR 内置路由会提取并删除该标签,把请求路由到指定模型:

<CCR-SUBAGENT-MODEL>deepseek/deepseek-reasoner</CCR-SUBAGENT-MODEL> 请分析这道数学题的解题步骤……

API Key 管理:配置中api_key支持$变量名写法,避免密钥写死在文件里:

export DEEPSEEK_API_KEY=sk-xxxx

成本与性能:基于 token 的路由和日志监控

脚本规则可直接读取input.tokenCount(CCR 估算的输入 token 数),实现按上下文规模分流,小请求走便宜模型、大请求走长上下文模型:

if (input.tokenCount > 20000) { return { model: "deepseek/deepseek-v3.2" }; } if (input.tokenCount < 1000) { return { model: "deepseek/deepseek-chat" }; } return null;

成本方面,DeepSeek 各模型的输入输出定价普遍低于 Claude 旗舰模型,具体数值以两家官方定价页为准,这里不做数字承诺。CCR 界面为每个模型标注了单价,请求日志中会按 token 用量给出成本估计,便于核对实际花费。

日志监控:在设置中开启请求日志后,管理界面可查询每次请求的最终路由模型、耗时、token 用量与成本估计,失败请求还会记录错误信息,用于排查路由或上游问题。

生产部署:Docker 容器化与 CI 集成

仓库提供 Docker 部署方式(说明见 docker/README.md):

docker compose up -d --build

容器内设置HOME=/data,配置数据库位于/data/.claude-code-router/config.sqlite。持久化时挂载整个/data目录即可保留配置与日志;密钥通过环境变量注入,例如DEEPSEEK_API_KEY

CI 场景下可以在流水线里安装并启动 CCR,再把代理的模型端点指向本地网关:

steps: - name: Start router run: | npm install -g @musistudio/claude-code-router export DEEPSEEK_API_KEY=${{ secrets.DEEPSEEK_API_KEY }} ccr start

无人值守环境注意在启动前准备好配置(或界面完成初始化),避免服务在无提供商可用状态下空跑。

常见问题:连接超时、代理与 token 上限

  1. 连接超时:推理类模型响应慢时,调大API_TIMEOUT_MS(默认已是 600000 毫秒);若走代理,先确认代理端口可达,再在设置的 proxy 部分为上游请求指定代理。
  2. 代理设置:CCR 支持系统代理与自定义上游两种模式,跨境访问 DeepSeek 或反向访问时,在界面 proxy 配置中切换上游模式并填写地址与认证信息。
  3. 输出 token 上限:当上游返回max_tokens相关错误时,说明请求要求的输出长度超过模型上限。可在模型配置中下调最大输出 token,或换用输出上限更高的模型;对长文档请求,优先调整longContext场景的模型而不是强行加长输出。
  4. 配置不生效:确认 CCR 未处于运行状态时再迁移 JSON 配置;运行中请通过界面修改,界面保存会即时写入 SQLite 数据库。

小结

Claude Code Router 把 Claude Code 的模型请求收敛到本地网关,DeepSeek 作为内置预设可以直接接入,无需自行处理协议转换。最小路径是:安装 CLI、写入包含ProvidersRouter.default的 JSON 配置、用环境变量管理密钥,然后启动ccr start。路由层面,内置场景(default、background、think、longContext、webSearch)负责粗分发,自定义规则与脚本负责细粒度策略,子代理可通过标签指定模型。成本与排障主要依赖请求日志中的路由、耗时与 token 数据。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询