Claude Code Router 详解与接入指南:一个本地网关让所有 AI Agent 用你选定的模型
【免费下载链接】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、Codex、Kimi CLI 等编程 Agent 发出的请求,按你配置的路由规则转发到任意模型供应商,并在同一个应用里完成凭据轮换、失败回退、能力增强与请求日志。接入后,切换供应商不再需要逐个修改每个 Agent 的配置文件。
🧩 多 Agent、多模型、多 Key 的分散管理,值得一个本地入口
实际使用编程 Agent 一段时间后,通常会遇到四类反复出现的问题:
- 配置分散:Claude Code、Codex、Grok CLI、Kimi CLI、OpenCode、Pi、ZCode 等每个客户端都有自己的模型配置格式,换一家供应商就要逐处改动。
- 单点受限:一个 API Key 受配额、限流和供应商故障影响,请求失败后只能手动重试。
- 能力缺口:手头模型不支持看图或联网检索,但整体又表现不错,不想整个换掉。
- 黑盒运行:请求发出去后,实际命中了哪家供应商、哪个模型、消耗多少 Token、花了多少钱,没有任何记录。
CCR 的解法是给出一个稳定的本地入口:默认监听http://127.0.0.1:3456,所有 Agent 把请求发到这个地址,CCR 再按配置把请求送到命中的供应商、模型和账号。供应商管理、路由规则、工具扩展和观测日志都收在同一个面板里,客户端只需要"知道这个地址"。
🚀 三步完成本地接入:安装、加供应商、应用配置
第一步:安装并启动 CCR
桌面端(macOS / Windows / Linux)是官方推荐的起点,下载安装包启动应用后点击服务 → 启动即可。偏好命令行或服务器部署的,有两种等价方式:
npm install -g @musistudio/claude-code-router ccr uidocker compose up -d --buildCLI 方式要求 Node.js 22+,启动后打开http://127.0.0.1:3458进入浏览器管理界面;Docker 方式同样默认通过 3458 端口提供界面与网关路由。模型网关本身始终位于 3456 端口,两种方式的配置流程完全一致。
第二步:添加供应商并用连通性检测验证
在供应商 → 添加供应商中,可以选内置预设(OpenRouter、DeepSeek、Moonshot、Kimi Code、Z.AI、百炼、Mistral、SiliconFlow 等),也可以填自定义端点接入任何兼容 OpenAI、Anthropic 或 Gemini 协议的服务。填写 API Key、勾选要暴露的模型后,建议点一次检测连通性——它会发送真实测试请求,确认 Key、模型 ID 和协议确实可调用(注意这会消耗少量 Token)。
两个值得留意的细节:
- 登录态导入:如果本机已登录 Claude Code、Codex 或 Kimi CLI,添加弹窗会提供一键导入入口,直接复用本机 OAuth 凭据,不必再粘贴新的 Key。
- 凭据池:持有多个上游 Key 时,可在高级设置里配成凭据池(多个 API Key 的调度池),CCR 按优先级、权重和本地限额(如每分钟请求数、Token 数)自动选择与跳过,单点限流不再拖垮整条链路。
第三步:创建 Agent 配置并应用
在Agent 配置页选择目标 Agent(以 Claude Code 为例),填写配置名称、选择默认模型并保存,然后从 CCR 的终端按钮或播放按钮直接打开该 Agent——启动时 CCR 会自动注入必要的环境变量,让请求指向本地网关。进入 Claude Code 后用/model命令可以看到 CCR 暴露的全部模型(包括后文提到的 Fusion 组合模型)并随时切换。完成后到日志页确认一条请求的供应商、模型、耗时与 Token 记录,说明链路已经打通。
🎛️ 进阶路由:按任务拆模型、失败自动切换
接入只是起点,CCR 的核心价值在路由层。
条件规则按序匹配:在路由页添加规则,每条规则由"条件"(匹配request.header或request.body的字段与值)和"改写动作"组成,按列表顺序执行,第一条命中的规则决定该请求的最终模型。对 Claude Code 还有一个便利:它的 Subagent / Workflow 派生请求会带上模型标签,CCR 据此为子任务自动选择模型——只要在模型页给候选模型写清 Description(例如"适合摘要与低成本并行子任务""适合跨文件重构"),Claude Code 就会按描述自行挑选,主请求与子请求各走各的模型。
复杂逻辑用脚本规则:多字段判断、灰度分流或动态改写可以写成 Node.js 脚本规则,在受控 Worker 中执行,脚本异常或超时会 fail-open(跳过该规则继续匹配下一条),不会让请求卡死:
if (input.body.model !== "供应商/原模型") return null; return { model: "供应商/目标模型" };Fusion 组合模型:把基础文本模型与视觉、联网搜索、生图/生视频或自定义 MCP 工具(MCP 是让模型调用外部工具的开放协议)组合成一个新的可选模型。例如"通用模型 + 视觉模型 = 带 V 后缀的视觉版"、"代码模型 + Web Search = 可检索最新资料的模型"。组合结果像普通模型一样出现在路由与/model列表里,保留了原模型的手感又补齐了缺失能力。
失败重试与有序 Fallback:规则可各自配置回退策略,主模型失败时自动切到备用模型,客户端无感知。
🔍 原理揭秘:一次逆向如何变成一个网关
CCR 的起点是 2025 年 2 月。当时 Anthropic 屏蔽了中国区账号,作者对 Claude Code 做了逆向:借助 Chrome DevTools 以调试模式启动claude进程,在混淆过的源码里搜索api.anthropic.com,发现请求的baseURL可以被环境变量ANTHROPIC_BASE_URL覆盖,且请求遵循 Anthropic Messages 规范。
由此方案就很直接:实现一个提供/v1/messages端点的本地服务,完成 OpenAI 与 Anthropic 两套规范之间的请求/响应格式转换;启动 Agent 前把环境变量指向该服务,即可在不改 Agent 源码的前提下拦截、改写并转发请求。这套机制写进了 项目初衷及原理,后续版本则从"单协议转发器"演进为支持 OpenAI Chat/Responses、Anthropic Messages、Gemini 等多协议的多 Agent 网关,路由引擎与请求处理的核心实现位于 packages/core/src/gateway/。
🧭 适合谁用,以及几个需要注意的边界
CCR 适合这样的人群:同时使用多个编程 Agent、希望按任务复杂度与成本分配不同模型、持有多个供应商 Key 需要轮换,或想给现有模型补上视觉/联网能力的开发者。它本质上是一个本地转发层:上游 Key 必须真实有效,CCR 不会替你解决供应商准入问题。
使用前建议留意几点:
- 请求日志默认只保留当天的数据,适合当日排查,不适合作为长期审计归档。
- 检测连通性发送的是真实请求,按量计费或按次计费的供应商会产生少量消耗,建议只勾选需要确认的模型。
- 默认服务只监听本机回环地址;若要通过 Docker 等方式远程暴露 CCR,应先配置独立的 CCR 客户端 Key 与请求、Token 限额。
- 路由规则按顺序匹配且首条命中即生效,调整规则顺序前先想清楚优先级。
如果你的工作流里 Claude Code、Codex 等 Agent 已经超过一个,且不想再为换模型翻配置文件,最稳妥的起步方式是:先接入一个最熟悉的供应商跑通日志,确认路由与成本记录符合预期后,再逐步添加规则、Fusion 模型和凭据池。
【免费下载链接】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),仅供参考