Claude Code Router
综合介绍
Claude Code Router 是一个功能强大的开源工具,它构建于 Anthropic 的 Claude Code 编码基础之上。该工具主要解决了在使用大语言模型进行编码时,如何根据不同任务的特点,灵活地将请求发送给最合适的模型处理。它通过一个中央路由系统,允许用户接入并管理来自 OpenRouter、DeepSeek、Ollama、Gemini 等多个不同服务商的模型。用户不仅可以为常规任务、后台任务、复杂思考或长文本处理等不同场景设定默认模型,还能在编码过程中动态切换模型。这种设计极大地提升了灵活性、优化了成本,并使得开发者可以根据自己的需求,自由组合和扩展模型的应用方式,而不必锁定在单一的服务或模型上。
功能列表
- 模型路由: 能根据任务类型(如后台任务、深度思考、长上下文处理)将请求自动分发给不同的AI模型。
- 多服务商支持: 支持接入并管理来自 OpenRouter、DeepSeek、Ollama、Gemini、Volcengine 和 SiliconFlow 等多个主流模型服务商的API。
- 请求/响应转换: 内置“转换器”(Transformer)功能,可以修改请求和响应的数据格式,以兼容不同服务商的API规范。
- 动态模型切换: 用户可以在 Claude Code 交互界面中,使用
/model
命令随时手动切换当前使用的模型。 - GitHub Actions 集成: 可以将 Claude Code Router 集成到 GitHub 的自动化工作流中,实现CI/CD流程中的代码任务自动化。
- 插件系统: 支持通过自定义转换器来扩展路由器的功能,满足更复杂的定制需求。
- 可视化界面: 提供一个网页UI界面,用户可以通过浏览器方便地查看和编辑配置文件。
使用帮助
Claude Code Router 作为一个中间代理,拦截从 Claude Code 发出的请求,并根据你的配置规则将其转发给最合适的模型。以下是详细的使用流程。
1. 安装
首先,你需要确保已经安装了 Node.js 环境。然后通过 npm
包管理器在终端中执行以下命令。
第一步:安装 Claude Code如果你的电脑还未安装 Claude Code,请先执行此命令:
npm install -g @anthropic-ai/claude-code
第二步:安装 Claude Code Router接着,安装本工具:
npm install -g @musistudio/claude-code-router
2. 核心配置
安装完成后,工具会在你的用户主目录下创建一个名为 ~/.claude-code-router/
的文件夹,其中包含一个核心配置文件 config.json
。你需要根据自己的需求修改这个文件。
这是一个完整的配置示例,你可以参考它来构建自己的配置:
{
"APIKEY": "your-secret-key",
"PROXY_URL": "http://127.0.0.1:7890",
"LOG": true,
"API_TIMEOUT_MS": 600000,
"NON_INTERACTIVE_MODE": false,
"Providers": [
{
"name": "openrouter",
"api_base_url": "https://openrouter.ai/api/v1/chat/completions",
"api_key": "sk-xxx",
"models": ["anthropic/claude-3.5-sonnet"]
},
{
"name": "deepseek",
"api_base_url": "https://api.deepseek.com/chat/completions",
"api_key": "sk-xxx",
"models": ["deepseek-chat", "deepseek-reasoner"],
"transformer": { "use": ["deepseek"] }
},
{
"name": "ollama",
"api_base_url": "http://localhost:11434/v1/chat/completions",
"api_key": "ollama",
"models": ["qwen2.5-coder:latest"]
}
],
"Router": {
"default": "deepseek,deepseek-chat",
"background": "ollama,qwen2.5-coder:latest",
"think": "deepseek,deepseek-reasoner",
"longContext": "openrouter,anthropic/claude-3.5-sonnet",
"longContextThreshold": 60000,
"webSearch": "gemini,gemini-2.5-flash"
}
}
配置文件详解
APIKEY
(可选): 为路由服务设置一个访问密码,客户端请求时需要在HTTP头中提供正确的密钥才能访问。PROXY_URL
(可选): 如果你的网络环境需要代理,可以在此处设置代理服务器地址。Providers
(服务商列表): 这是配置的核心部分,它是一个数组,用于定义所有你想接入的模型服务商。name
: 服务商的唯一名称,用于在路由规则中引用。api_base_url
: 该服务商提供的API接口地址。api_key
: 你在该服务商获取的API密钥。支持使用${ENV_VAR}
的形式引用环境变量,以保证密钥安全。models
: 该服务商下你想要使用的模型名称列表。transformer
: (可选) 指定一个转换器,用于适配不同API的数据格式。例如,DeepSeek就需要使用内置的deepseek
转换器。
Router
(路由规则): 定义不同场景下应该使用哪个模型。default
: 默认使用的模型,格式为"服务商名称,模型名称"
。所有未匹配到其他规则的请求都会被发送到这里。background
: 用于处理后台任务的模型,通常可以选择一个成本较低或者本地部署的模型。think
: 用于处理复杂思考或计划(Plan Mode)任务的模型,通常需要选择能力更强的模型。longContext
: 当请求的上下文长度超过longContextThreshold
设定的阈值时,使用的模型。webSearch
: 用于处理需要网络搜索的任务的模型。
3. 运行与使用
配置完成后,你可以通过以下命令来启动服务。
启动服务在终端中运行:
ccr code```
此命令会启动一个本地服务(默认监听`3456`端口),并自动将 Claude Code 的请求指向这个服务。现在,你在终端中正常使用 `code` 命令时,其请求就会经过路由器的处理。
**重启服务**
每次修改 `config.json` 文件后,都需要重启服务才能让新的配置生效。
```shell
ccr restart
使用可视化界面为了更方便地管理配置,你可以运行UI模式:
ccr ui
该命令会启动一个本地Web服务器,并在浏览器中打开一个管理页面,你可以在该页面上直观地编辑和保存你的 config.json
文件。
4. 动态切换模型
在 Claude Code 的交互式命令行中,你可以随时使用 /model
命令来临时切换当前对话使用的模型,而无需修改配置文件。例如,临时切换到 OpenRouter 的 claude-3.5-sonnet
模型:
/model openrouter,anthropic/claude-3.5-sonnet
这个切换只对当前会话有效,关闭后会恢复到配置中的默认设置。
5. 自定义扩展
如果你需要更复杂的逻辑,例如根据代码内容来决定使用哪个模型,你可以编写一个自定义路由脚本。在 config.json
中添加 CUSTOM_ROUTER_PATH
字段,指向你的JS文件路径:
{
"CUSTOM_ROUTER_PATH": "/path/to/your/custom-router.js"
}
你的脚本需要导出一个异步函数,该函数接收请求对象和配置对象作为参数,并返回 "服务商,模型名"
字符串,或者返回 null
以使用默认路由逻辑。
应用场景
- 成本与性能优化当处理简单的代码补全或格式化任务时,可以将请求路由到本地运行的 Ollama 模型,几乎没有成本。而在进行复杂的算法设计或代码审查时,则自动切换到性能更强大的付费模型(如 Claude 3.5 Sonnet 或 GPT-4),确保任务质量。
- 本地化与隐私保护对于涉及公司内部敏感代码的任务,可以配置路由规则,将所有请求强制路由到部署在内网的Ollama等本地模型,确保代码数据不会离开本地环境,保护数据隐私和安全。
- 任务自动化(CI/CD)在 GitHub Actions 等 CI/CD 流程中,可以集成 Claude Code Router。例如,当有新的代码提交时,自动触发一个任务,让一个专门用于代码审查的模型分析代码,并将发现的问题以评论的形式提交到 Pull Request 中。
- 特定任务增强利用路由器的
think
场景,为代码的“思考”和“规划”阶段指定一个逻辑推理能力超强的模型。当用户需要模型帮忙设计架构或解决复杂问题时,路由器会自动调用最合适的“大脑”,而在具体的代码编写阶段则切换回编码能力强的模型。
QA
- Claude Code Router 是什么?它和 Claude Code 有什么关系?Claude Code Router 是一个为 Claude Code 设计的增强工具,它像一个智能代理服务器。Claude Code 是前端的编码工具,而 Router 是后端的请求分发系统。你通过 Router 可以决定 Claude Code 发出的请求具体由哪个大模型(不限于Anthropic官方模型)来处理。
- 使用这个工具前,我必须先安装 Claude Code 吗?是的。此工具是基于 Claude Code 的编码基础架构进行工作的,所以你的系统中必须先全局安装
@anthropic-ai/claude-code
。 - 如何添加一个新的模型服务商,比如 Groq?你需要在
config.json
文件的Providers
数组中添加一个新的对象。填写name
(例如 "groq"),api_base_url
(Groq的API地址),你的api_key
,以及你想使用的models
列表。如果该API格式与OpenAI不完全兼容,你可能还需要使用或创建一个transformer
来适配。 - 如果在路由规则(Router)中没有配置
think
场景会怎么样?如果一个特定的路由场景(如think
)没有被显式配置,那么当该场景被触发时,Router 会自动使用default
规则中定义的默认模型来处理请求。