资讯动态

10分钟写出第一条自定义路由规则:Claude Code Router 智能路由完整实战

发布时间:2026/9/2 14:23:27 来源:尧图企业网站定制
10分钟写出第一条自定义路由规则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 RouterCCR的自定义路由规则可以帮你解决它在本地上给所有 AI 代理一个稳定入口再按条件改写目标模型、调整请求参数失败时自动降级。读完本文你能从零写出一条可用的路由规则并掌握灰度分流和回退链的配置方法。先看效果一条 15 行的最小路由脚本下面这条脚本规则放在本地任意.js文件里作用只有一件事凡是用户消息里包含代码审查的请求都改道去强推理模型并把温度压到 0.2。跑通它只需要在 CCR 路由页选一下文件保存即可// ~/.config/ccr/route-review.js // 不是代码审查任务直接放行让后面的规则继续判断 if (!input.summary.lastUserText.includes(代码审查)) { return null; } // 命中换目标模型 改写 temperature return { model: openai/gpt-5, rewrites: [ { key: request.body.temperature, operation: set, value: 0.2 } ] };保存后发起一次含代码审查的请求去请求日志里看resolved model一列会发现它已经不是客户端原来填的模型了——路由改写生效。原理先放一边我们接着往下走。原理通俗化CCR 路由就像快递分拣中心的传送带把每个 LLM 请求想象成一个包裹CCR 就是分拣中心。传送带上每隔一段就有一个分拣窗口对应一条路由规则窗口里的人干三件事看面单对照规则条件检查包裹request.header、request.body里的字段贴新面单命中后改写请求比如把目标模型从 A 换成 B、调整temperature安排备用线路万一派送失败按预设顺序换下一家快递公司。普通规则只能看一眼就判断而Node.js 脚本规则相当于一个会写代码的分拣员他能查本地文件、调内网接口、算哈希再决定这个包裹该去哪。所有脚本都在独立的 Worker 进程里跑超时、报错不会影响 CCR 主进程出错时按不命中处理并继续下一条规则。分步实战从条件规则到脚本规则第 1 步打开路由页先配一条最简条件规则如果你只是想某个模型前缀的请求统一换供应商不用写脚本。进入路由页面点添加条件选request.body→ 字段model→ 操作符starts with→ 值claude-改写一行设置request.body.model为目标供应商/模型。规则按列表顺序匹配第一条命中的生效可用上移/下移按钮调整优先级。第 2 步为复杂判断创建 Node.js 脚本规则条件表达不了多字段判断时把规则类型切到Node.js 脚本选择上一节写好的route-review.js超时填 2000 毫秒范围 10–30000。注意脚本是一个异步函数体直接用注入的input、api、return不需要import或module.exports。input提供完整请求体和摘要字段lastUserText、tokenCount、sessionId等全部只读。第 3 步用测试请求 JSON 空跑验证编辑器里的测试请求 JSON能构造一次假输入试跑脚本不会真正请求上游模型适合先确认逻辑{ body: { model: anthropic/claude-sonnet-4, messages: [{ role: user, content: 请审查这段代码的实现 }] }, url: /v1/messages }跑一次看返回值返回对象里的model、rewrites是否如预期是确认逻辑最快的方式。但注意脚本里的api.fetch、文件读写在测试中是真实执行的带副作用的脚本请用专门的测试地址。第 4 步挂上回退链让请求扛得住上游故障命中规则时还可以自带一份fallback覆盖全局的默认失败处理// 主模型失败后按顺序切备用模型形成降级链 return { model: anthropic/claude-sonnet-4, fallback: { mode: model-chain, // 失败降级目标 models: [openai/gpt-5, deepseek/deepseek-v3], retryCount: 1 // 当前模型先原地重试 1 次 } };mode有三种off只试一次、retry原模型重试 N 次适合网络抖动、model-chain按顺序切备用模型适合主模型整体不可用。规则命中时用规则自己的回退配置没命中的请求走路由页顶部的全局默认。进阶技巧用 api.hash 做稳定灰度分流上线新模型想先放 30% 流量试试api.hash能把同一会话稳定地分到 0–99 的同一个桶里同一个用户不会一会儿走新模型一会儿走旧模型// 按会话 ID 分桶只有前 30 个桶进入新模型 const bucket api.hash(input.sessionId ?? input.summary.lastUserText) % 100; if (bucket 30) { return null; // 其余流量放行给后续规则 } return { model: deepseek/deepseek-v3 };用 api.fetch 实时查询外部策略服务路由策略不想写死在 CCR 里可以让脚本在运行时调内网接口取最新决策请求体上限 256 KiB响应上限 1 MiB且受脚本超时约束const res await api.fetch(http://policy.internal:8080/route, { method: POST, headers: { content-type: application/json }, body: JSON.stringify({ tenant: input.headers[x-tenant-id], model: input.model }) }); if (!res.ok) return null; // 策略服务挂了就走后续规则别阻塞流量 return { model: JSON.parse(res.body).model };完整的租户策略 本地 JSON 远程覆盖 灰度综合示例可直接参考 docs/src/content/docs/zh/configuration/routing.md 里的enterprise-route.js一节。把 rewrites 当作精细的参数手术刀rewrites最多 32 条按顺序执行支持set、delete、array-append、array-replace等操作路径用点号分段、数字段表示数组下标。除了request.body.model它也常用来给特定上游注入私有字段或从messages里剔掉调试内容。避坑指南现象原因解法保存规则时报文件读取失败Web UI 拿不到所选文件的真实路径在Web UI中手写 CCR 服务机器上的绝对路径或~/...路径桌面版选择器会自动记录绝对路径请求莫名变慢甚至超时脚本默认超时 2000 毫秒内部api.fetch也算在内按脚本实际耗时把超时调到合理值10–30000ms远程调用加!res.ok快速失败改写 Header 后日志报诊断authorization、cookie、x-*等受保护 Header 禁止改写鉴权类字段交给 CCR 的供应商凭据管理脚本只改request.body.*规则看似命中却被当不命中返回值里的model不是 CCR 已配置的模型先在供应商页把目标模型加进来模型选择器必须是供应商/模型格式脚本连续报错后 30 秒完全不生效60 秒内失败 3 次触发熔断熔断期直接跳过属保护机制无需惊慌修好脚本内容后会自动重新编译并重置计数路由执行层的实现都在 packages/core/src/routing/其中 packages/core/src/routing/route-script-runtime.ts 管 Worker 池与熔断packages/core/src/routing/rewrite.ts 管改写校验想深入机制可以直接读源码。收尾路由规则官方文档docs/src/content/docs/zh/configuration/routing.md路由执行层源码packages/core/src/routing/项目设计思路长文blog/zh/项目初衷及原理.md扩展机制插件/Fusiondocs/src/content/docs/zh/configuration/extensions.md现在打开 CCR 的路由页把第一条规则配起来吧——写完你会发现请求出门前该办的事其实一次就能办全。【免费下载链接】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),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价