2026年6月9日 2 分钟阅读

Claude Code 费用太高?用 Rayline 把子 Agent 路由到本地模型和便宜 API

tinyash 0 条评论

Claude Code 的订阅费用是一回事,API 按量计费的 Token 消耗是另一回事。如果你团队每天跑几十个 Claude Code 会话,每个会话背后都是满配 Opus 模型在干活,月底一看账单——这个数学题你做不起。

问题出在哪?Claude Code 会给所有子 Agent 调用都用同一个模型。搜索代码库、总结上下文、检查编译错误、轮询 CI 状态——这些子任务完全不需要 Opus 的推理能力,但它们消耗的 Token 和主 Agent 一样贵。

Rayline 就是冲着这个痛点来的:一个 Claude Code 兼容的 LLM 网关,拦截主 Agent 和子 Agent 之间的路由,让你把不同子任务指派给不同模型。

核心思路:在网关层做路由,而不是在 Agent 层

你会想,为什么不在 Claude Code 里写个工具函数来做路由?因为那是错误的一层。

如果你让主 Agent 自己去调用路由工具,相当于让一个每周薪 2 万美元的员工亲自去发传真。每次路由决策都要消耗主 Agent 的 Token,而且在上下文里塞一个路由工具意味着不断打碎缓存——这是 Claude Code 费用的主要来源。

Rayline 的解法是在网关层做路由。它作为 HTTP 代理夹在 Claude Code 和模型 API 之间,根据确定性规则或可选的 ML 模型来决定每个子 Agent 请求该去哪个模型。

架构速览

Claude Code 会话
      │
      ▼
Rayline Gateway (localhost:8080)
      │
      ├── 主 Agent → Opus (保持高质量)
      ├── 搜索/总结 → Haiku (便宜、快速)
      ├── CI 轮询 → 本地 Ollama (免费)
      ├── 错误检查 → Gemini Flash (低成本)
      └── 复杂重构 → Sonnet (性价比高)

关键洞察:子 Agent 调度是天然的路由切分点。每次 Claude Code 委托一个子 Agent 时,都会创建新的上下文窗口。如果在委托之前做路由,你不仅省了 Token,还避免了污染主 Agent 的缓存。

安装与配置

Rayline 目前通过官网提供安装方式。访问 rayline.ai 获取安装指南:

rayline start

配置 ~/.rayline/config.yaml(参考以下模板):

gateway:
  port: 8080

routes:
  # 主 Agent 保持最强模型
  - name: "main-agent"
    match: "role:main"
    model: "claude-opus-4"
    provider: "anthropic"

  # 代码搜索和文件浏览 → 便宜的 Haiku
  - name: "search-and-browse"
    match: "task:search|task:grep|task:read_file"
    model: "claude-haiku-3.5"
    provider: "anthropic"

  # CI 轮询和简单状态检查 → 本地模型
  - name: "ci-polling"
    match: "task:ci_status|task:build_check"
    model: "qwen2.5-coder-7b"
    provider: "ollama"
    endpoint: "http://localhost:11434"

  # 编译错误分析 → Gemini Flash (超便宜)
  - name: "error-analysis"
    match: "task:compile_error|task:lint"
    model: "gemini-2.0-flash"
    provider: "google"

  # 默认兜底 → Sonnet (性价比之王)
  - name: "default"
    match: "*"
    model: "claude-sonnet-4"
    provider: "anthropic"

让 Claude Code 使用 Rayline

配置 Claude Code 通过 Rayline 网关发送请求:

export ANTHROPIC_BASE_URL=http://localhost:8080

rayline start

claude

现在你的所有 Claude Code 请求都会经过 Rayline。打开 Rayline 的监控仪表盘可以看到每条请求被路由到了哪个模型。

路由策略详解

确定性路由(默认模式)

基于关键词匹配的规则引擎,不消耗任何额外 Token:

匹配规则典型子任务推荐模型节省对比
task:search代码搜索、grepHaiku~80%
task:ci_statusCI 状态轮询本地 7B 模型~100%
task:compile_error编译错误分析Gemini Flash~90%
task:complex_refactor跨文件重构Sonnet/Opus按需
role:main主 Agent 决策Opus保持质量

ML 辅助路由(可选)

Rayline 也提供了一个轻量级 ML 模型来做路由决策。它分析子 Agent 的 prompt 内容,预测所需的模型能力等级。适合规则无法覆盖的模糊场景。

启用方式:

routing_strategy: "ml_assisted"
ml_model: "rayline-router-v1"

注意:ML 模式会消耗少量额外时间(~200ms 分析),但能处理规则引擎难以涵盖的边缘情况。

实战场景:把成本打下来

假设一个典型的 Claude Code 会话包含:

  1. 主 Agent 讨论架构 → 3 轮 Opus 对话 = 15K input + 2K output tokens
  2. 搜索相关代码 → 6 次 Haiku 调用 = 3K × 6 tokens
  3. 修改代码 → 2 轮 Opus 修改 = 10K + 1.5K tokens
  4. 编译检查 → 3 次 Gemini Flash 调用 = 2K × 3 tokens
  5. CI 状态轮询 → 10 次本地模型调用 = 免费

对比:

模式Opus-onlyRayline 路由节省
总 Token (input)~80K~45K44%
总 Token (output)~8K~5K37.5%
预估费用~$2.40~$0.85~65%

Rayline 团队自测的数据也显示,对于包含大量子 Agent 调用的会话,费用可降低 60-70%

常见陷阱

  1. 缓存考虑:如果你的子 Agent 路由目标频繁切换,可能会影响 Claude Code 的提示缓存命中率。Rayline 通过网关层统一管理连接,尽量复用同提供商的底层连接来缓解这个问题。
  1. 本地模型要选对:并不是所有本地模型都适合做子 Agent。Qwen2.5-Coder-7B 和 DeepSeek-Coder-V2-Lite-Instruct 在代码相关子任务上表现最好。
  1. 调试时先关路由:如果遇到奇怪的 Agent 行为,先设置 match: "*" → Opus 调试,确认问题不在路由逻辑本身。

总结

Rayline 的核心理念很简单但有效——在网关层替 Agent 做模型路由决策,而不是让 Agent 自己分心去做。它不需要修改 Claude Code 的代码,不引入额外的工具调用开销,通过一个本地代理让主 Agent 用最好的模型,子任务用最便宜的模型。

对于每天有几十甚至上百个 Claude Code 会话的团队,这可能是这个月最值得花 5 分钟配置的工具。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。