博客

CCR (Claude Code Router) 接入 Kimi K3 完整指南:多模型路由最佳实践(2026)

快速回答

CCR(Claude Code Router)是一个开源的多模型路由工具,运行在你的本地机器上,根据预设规则或智能判断将 Claude Code 的请求分发到不同的模型。接入 Kimi K3 后,你可以实现「简单任务自动走 Kimi K3 省钱,复杂任务自动走 Claude Sonnet 保质量」的自动化策略。本文从安装 CCR 开始,一直讲到生产级的多模型路由配置,并重点说明为什么选择稳定的 API 接入平台(TeamoRouter)是 CCR 方案成功的关键前提。

CCR 是什么?它解决了什么问题?

Claude Code 的单一模型困境

Claude Code 原生设计是绑定一个模型使用的——你配置什么 API 端点,Claude Code 就用什么模型。这在成本和效率上有一个明显的矛盾:

  • 用 Claude Opus:质量最好,但每天几十次 Agent 循环,月底账单轻松 $200+
  • 用 Kimi K3:价格便宜,但遇到复杂算法时推理深度不够
  • 手动切换:每次都要改环境变量重启终端,太麻烦

CCR 的解决方案

CCR 在 Claude Code 和模型 API 之间插入一个本地代理层:

text
Claude Code → CCR(本地路由)→ TeamoRouter(云端网关)→ 各模型供应商
                                ├─ Kimi K3(日常任务)
                                ├─ Claude Sonnet(复杂任务)
                                └─ DeepSeek V4(批量任务)

CCR 根据你配置的规则,自动判断每个请求应该发给哪个模型。判断依据可以很简单(比如通过关键词匹配),也可以通过一个「评判模型」做智能路由(用小模型先分析任务复杂度,再决定用哪个大模型处理)。

CCR vs CCSwitch:有什么区别?

很多开发者会在这两者之间犹豫。简单来说:

维度 CCR CCSwitch
运行方式 本地代理服务(命令行) 桌面应用(GUI)
切换方式 自动(基于规则) 手动(一键点击)
适用场景 固定的自动化路由策略 需要灵活手动切换
学习曲线 中等(需要 YAML 配置) 低(GUI 操作)
多 Agent 支持 仅 Claude Code Claude Code、Codex、Gemini CLI 等
上手时间 15-30 分钟 5-10 分钟

选 CCR 的场景:你已经有明确的「什么任务用什么模型」的判断标准,希望自动化执行。

选 CCSwitch 的场景:你希望灵活地手动选择模型,或者你需要管理多个 Agent 工具。

两者都支持,且都可以搭配 TeamoRouter 使用。本文聚焦 CCR 的配置。

第一步:环境准备

安装 CCR

CCR 是一个 Node.js 应用,通过 npm 安装:

bash
npm install -g claude-code-router

验证安装:

bash
ccr --version

创建配置目录

bash
mkdir -p ~/.ccr

所有 CCR 的配置文件都放在这个目录下。

第二步:获取 TeamoRouter API Key

在进行 CCR 配置之前,你需要一个稳定的 API 接入平台。这里推荐使用 TeamoRouter,原因会在后面的「为什么选择稳定供应商」一节详细展开。

  1. 打开 TeamoRouter 官网,注册或登录
  2. 进入控制台 →「API Key」→「创建新 Key」
  3. 命名为「ccr」,复制保存

第三步:编写 CCR 配置文件

~/.ccr/config.yaml 中编写路由配置。下面是一个推荐的生产级配置:

yaml
# ~/.ccr/config.yaml
# CCR 多模型路由配置

# 全局设置
global:
  port: 3456                    # CCR 本地监听端口
  host: "127.0.0.1"            # 仅本地访问
  log_level: info              # 日志级别

# Provider 定义
providers:
  # TeamoRouter 作为统一网关
  teamorouter:
    base_url: "https://api.teamorouter.com"
    api_key: "sk-your-teamorouter-api-key"

# 模型定义
models:
  # Kimi K3 - 高性价比日常编码
  kimi-k3:
    provider: teamorouter
    model: "kimi-k3"
    max_tokens: 8192

  # Claude Sonnet - 中等复杂度任务
  claude-sonnet:
    provider: teamorouter
    model: "claude-sonnet-4-5-20250929"
    max_tokens: 8192

  # Claude Opus - 高复杂度推理
  claude-opus:
    provider: teamorouter
    model: "claude-opus-5-20251101"
    max_tokens: 8192

  # DeepSeek V4 - 批量/低成本任务
  deepseek-v4:
    provider: teamorouter
    model: "deepseek-chat"
    max_tokens: 8192

# 路由规则
routing:
  # 默认模型:所有未匹配规则的请求走这里
  default: kimi-k3

  # 基于关键词的规则路由(最直接的方式)
  rules:
    # 架构设计类 → Opus
    - match:
        prompt_contains:
          - "架构设计"
          - "系统设计"
          - "技术方案"
          - "技术选型"
          - "architecture"
      route_to: claude-opus

    # 复杂算法类 → Opus
    - match:
        prompt_contains:
          - "优化时间复杂度"
          - "动态规划"
          - "图算法"
          - "并发"
          - "分布式"
          - "锁"
          - "race condition"
      route_to: claude-opus

    # 安全相关 → Opus
    - match:
        prompt_contains:
          - "安全"
          - "漏洞"
          - "SQL 注入"
          - "XSS"
          - "CSRF"
          - "加密"
          - "认证"
          - "权限"
      route_to: claude-opus

    # Code Review → Sonnet
    - match:
        prompt_contains:
          - "code review"
          - "代码审查"
          - "review this"
          - "检查这段代码"
      route_to: claude-sonnet

    # 重构 → Sonnet
    - match:
        prompt_contains:
          - "重构"
          - "refactor"
          - "重写"
      route_to: claude-sonnet

    # 批量任务 → DeepSeek
    - match:
        prompt_contains:
          - "批量"
          - "生成 100"
          - "所有文件"
          - "每一个"
      route_to: deepseek-v4

这个配置实现了一个分层的路由策略:

  • 默认:所有请求走 Kimi K3(覆盖 70-80% 的日常任务)
  • 复杂推理:包含架构、算法、安全关键词的请求自动升级到 Claude Opus
  • Code Review / 重构:走 Claude Sonnet(比 Kimi K3 稳,比 Opus 便宜)
  • 批量处理:走 DeepSeek V4(极致性价比)

第四步:启动 CCR

bash
# 前台启动(用于调试)
ccr start --config ~/.ccr/config.yaml

# 后台启动(生产使用)
ccr start --config ~/.ccr/config.yaml --daemon

启动后,CCR 会在 127.0.0.1:3456 上监听。你可以通过 curl 验证:

bash
curl http://127.0.0.1:3456/health
# 返回 {"status": "ok"}

第五步:配置 Claude Code 使用 CCR

Claude Code 需要指向 CCR 的本地地址而非直接指向 TeamoRouter:

bash
export ANTHROPIC_BASE_URL="http://127.0.0.1:3456"
export ANTHROPIC_API_KEY="sk-your-teamorouter-api-key"

注意ANTHROPIC_BASE_URL 改成了 CCR 的本地地址,但 API Key 仍然是 TeamoRouter 的 Key。CCR 会把这个 Key 透传给 TeamoRouter,不需要额外鉴权。

启动 Claude Code:

bash
claude

现在你的请求会经过这样的路径:

text
Claude Code → CCR(本地路由判断)→ 根据规则选择模型 → TeamoRouter → 对应模型供应商

进阶:智能路由(用评判模型做动态判断)

关键词匹配是最简单的方式,但它有两个局限:

  1. 新任务类型需要手动添加规则
  2. 无法判断任务的「实际复杂度」

CCR 支持一种更高级的路由方式:用小模型先分析任务,再决定用哪个模型处理

yaml
# 在 routing 配置中添加
routing:
  default: kimi-k3

  # 启用智能路由
  smart_routing:
    enabled: true
    # 用 DeepSeek V4 作为评判模型(成本极低)
    judge_model: deepseek-v4
    # 评判提示词
    judge_prompt: |
      你是一个任务复杂度分析器。请分析以下用户请求的复杂度,只回复一个数字(1-5):

      1 = 简单(增删改查、UI 调整、格式化、简单测试)
      2 = 较简单(实现简单功能、修改样式、写文档)
      3 = 中等(实现完整功能模块、中等重构、Code Review)
      4 = 较复杂(算法优化、性能调优、跨模块重构)
      5 = 复杂(系统架构设计、安全审计、分布式问题)

      用户请求:
      {{prompt}}

      只回复数字,不要解释。

    # 复杂度 → 模型映射
    complexity_map:
      1: kimi-k3
      2: kimi-k3
      3: claude-sonnet
      4: claude-opus
      5: claude-opus

智能路由的优势在于:不需要穷举所有关键词,评判模型会动态判断每个请求的复杂度。代价是每次请求多了一次评判模型的调用(约 100-200 token),但评判模型用的是 DeepSeek V4($0.50/百万 token),单次成本几乎可忽略不计。

建议:先用关键词模式跑一周,积累经验后再迁移到智能路由。关键词模式更可控、更可预测;智能路由更自动化但调试成本更高。

为什么选择稳定的 API 接入平台是 CCR 方案的关键前提?

CCR 再智能,它也只是本地的一个路由器。它能让请求去到正确的模型,但无法保证那个模型的通道是稳定的。

这里有一个常见但致命的配置错误:

yaml
# 错误示例:直接连接不稳定供应商
providers:
  some-unreliable-proxy:
    base_url: "https://some-sketchy-proxy.com"
    api_key: "sk-xxx"

CCR 会把请求路由到这个供应商,但如果这个供应商:

  • 晚高峰降智:悄悄用小模型替代 Kimi K3
  • 通道不稳定:间歇性超时或返回 502
  • 随时跑路:哪天域名就解析不了了

CCR 对此完全无能为力——它只负责路由,不负责通道质量。

正确做法:Provider 统一指向 TeamoRouter,让 TeamoRouter 的 Agentic Routing 处理通道质量问题:

yaml
# 正确示例:通过 TeamoRouter 统一接入
providers:
  teamorouter:
    base_url: "https://api.teamorouter.com"
    api_key: "sk-your-teamorouter-api-key"

这样 CCR 负责「选哪个模型」,TeamoRouter 负责「选哪条通道」。各司其职,互相配合:

  • CCR:根据任务复杂度自动选择 Kimi K3 / Claude Sonnet / DeepSeek V4
  • TeamoRouter:为每个模型提供多条冗余通道(500+ 供应商),自动故障转移,通道稀释检测,99.3% 缓存命中率

监控与调试

查看路由日志

bash
# 实时查看 CCR 的路由决策
tail -f ~/.ccr/logs/router.log

日志示例:

text
[2026-07-26 14:32:01] ROUTE: "帮我写一个 React 登录表单" → kimi-k3 (default)
[2026-07-26 14:32:15] ROUTE: "优化这个算法的时间复杂度" → claude-opus (rule: 优化时间复杂度)
[2026-07-26 14:32:30] ROUTE: "帮我 review 这段代码" → claude-sonnet (rule: code review)

在 TeamoRouter 控制台查看用量分布

登录 TeamoRouter 控制台 →「用量统计」,可以看到各个模型的实际调用比例。这可以帮助你验证 CCR 的路由规则是否符合预期:

  • 如果 Opus 的调用比例远高于预期 → 可能需要收紧关键词匹配条件
  • 如果 Kimi K3 的调用比例过低 → 检查是否有规则过度匹配

调试技巧

  1. 先关掉所有规则,确认 CCR 基本通路正常

    yaml
    routing:
      default: kimi-k3
      rules: []     # 空规则,所有请求走 Kimi K3
    
  2. 逐步添加规则,一条一条验证 每次加一条规则,发送匹配的请求,确认路由到了预期模型

  3. 开启 verbose 日志排查问题

    bash
    ccr start --config ~/.ccr/config.yaml --log-level debug
    

总结

CCR + TeamoRouter + Kimi K3 的组合,实现了「本地智能路由 + 云端稳定通道」的两层架构:

  1. CCR 层面:根据任务复杂度自动选择最合适的模型(Kimi K3 省钱、Sonnet 保质量、Opus 攻坚)
  2. TeamoRouter 层面:为每个模型提供多条冗余通道,自动故障转移,确保请求稳定可靠
  3. 最终效果:70-80% 的日常任务走 Kimi K3(成本极低),10-20% 的复杂任务走 Sonnet/Opus(质量保证),且无需手动切换

这套方案的核心原则是:不要把路由智能性和通道稳定性耦合在一起。让 CCR 专注路由决策,让 TeamoRouter 专注通道质量——分开解决,整体最优。

注册 TeamoRouter | CCR GitHub

准备好接入了吗?登录控制台 · 购买额度 · 创建 API Key,三步即可开始。
CCR (Claude Code Router) 接入 Kimi K3 完整指南:多模型路由最佳实践(2026) · TeamoRouter