返回
Kevin Riedl

9 分钟 阅读 · 2026年10月7日
最近审核

下一篇
图片在你的设备上生成,不连接 Instagram。文章链接会复制到剪贴板,供链接贴纸使用。

Claude Model Router:到底何时切换模型?

安装了 Claude 模型路由工具,日志推荐使用更便宜的模型,主对话却仍在使用原来的昂贵模型。这可能完全符合工具的设计。关键在于路由器在哪个位置生效:当前对话、下一次会话、被委派的子任务,还是发往 API 的请求。

两个名称相近的社区项目可以说明这个区别。tzachbon/claude-model-router-hook 提供模型建议,并在子代理启动时调整模型选择;它可选的主会话自动切换功能只影响新会话。musistudio/claude-code-router,通常简称 CCR,则是本地网关,负责把请求转发给配置好的模型和服务商。仓库所有者也是项目身份的一部分:只搜索“Claude Model Router”,可能找到完全不同的软件。

资料核查日期:。本文比较文档中描述的行为,并给出评估流程。配置示例已与这些资料核对,但没有执行真实服务商基准测试,也不表示 Wavect 已为客户部署过这两个项目。

Claude 模型路由器究竟切换什么?

先问清楚:改变什么、何时改变、用什么证据确认。路由建议、已保存的设置和实际模型响应,分别代表不同层次的证据。

Claude Code 中四个不同的模型路由位置
生效位置常见控制方式需要检查的证据
当前对话原生 /model 选择修改后实际激活的模型
下一次会话保存的默认值,包括 Hook 可选的自动切换重新启动新会话时选中的模型
委派任务子代理模型配置或启动 Hook该子代理实际使用的模型
服务商请求网关规则与上游配置解析后的服务商、模型及响应中的用量

先选定你需要控制的位置。如果团队只是希望降低文件查找任务的成本,显式配置子代理模型可能已经足够。如果需要管理多个服务商、凭证和请求级备用模型,就涉及另一类基础设施需求。我们的 LLM 网关与路由器对比讨论更广泛的选型和架构问题。

Claude Code 不装插件也能切换模型吗?

可以。Anthropic 的模型配置文档介绍了启动参数、会话内选择和 opusplan。这个别名在规划模式中使用 Opus,在执行阶段使用 Sonnet。它按照工作阶段切换,并不是为每条提示词进行分类的通用路由器。

建立原生功能的基准时,可以这样启动会话:

claude --model sonnet

在交互式会话中,用 /model opus 选择 Opus,或用 /model opusplan 选择规划与执行的组合策略。模型可用性和组织设置仍然有效。模型别名适合快速试验;如果需要复现实验结果,应记录最终解析出的具体模型版本。

对于范围明确的委派任务,可以创建 .claude/agents/repo-locator.md。下面的示例遵循 Anthropic 的子代理配置文档,角色内容是我们的起步建议:

---
name: repo-locator
description: 针对范围明确的仓库问题查找文件和符号。
tools: Read, Glob, Grep
model: haiku
---
查找指定的文件或符号,返回路径和简短证据。
不要修改文件或推断修复方案。遇到歧义时交回主代理判断。

请 Claude 使用 repo-locator 完成一个具体查找任务,然后检查子代理实际使用的模型。单次调用中的模型参数可以覆盖 frontmatter 配置,组织限制也可能导致模型替换。配置描述的是预期行为,还不能证明实际执行完全一致。

为什么 Claude Model Router Hook 没有切换当前会话?

该项目文档描述的主会话行为,是给出提醒或配置下一次会话。项目的更新日志说明,自动切换会写入新会话的默认模型。要修改当前对话,应使用原生 /model。

同一份日志记录了 2026 年 8 月对默认路由策略的更新:机械性任务使用 Haiku,实现、调试和更深入的推理使用 Opus,并采用不同的推理强度。旧教程如果声称常规实现任务会自动分配给 Sonnet,可能描述的是之前的策略。

在项目的 .claude/model-router.json 中放入一份简短配置,可以明确各项行为:

{
  "version": 2,
  "apply_mode": "warn",
  "subagent_enforcement": "on",
  "classifier": {
    "cli_fallback": false
  }
}

这是我们用于评估的配置,并非项目的默认值。它保留主会话提醒和子代理路由,同时关闭通过 Claude CLI 执行的可选分类回退。apply_mode: warn 不代表子代理路由也被关闭。项目 README分别介绍了这些开关,以及日志位置 ~/.claude/hooks/model-router-hook.log。

还要把这个 Hook 与现有自动化一起检查。Anthropic 的 Hook 参考文档说明了 PreToolUse 如何改写工具输入。命令型 Hook 也会使用你的用户账户权限执行。在增加另一个能修改代理启动参数的组件前,先审查已安装的命令和现有 Hook。

把 Claude Code Router 当作代理使用,会改变什么?

改变的是请求路径。CCR 接收模型请求,再按照配置进行转发。“本地网关”只说明这个组件运行在哪里;推理在哪里执行,取决于选择的上游服务商。如果上游是云服务商,它仍然会收到发送给其模型的内容。

当前的 CCR CLI 指南把管理访问与模型调用访问分开:管理令牌和 CCR 客户端密钥是独立凭证。管理界面的访问权,以及调用模型的权限,应分别决定。

Anthropic 的网关文档解释了计费与转发给上游的凭证之间的关系。仅设置 ANTHROPIC_BASE_URL,不会替换已经保存的订阅凭证。因此,安装路由器不会让其他服务商的推理费用自动包含在 Claude 订阅内。

验证时也不要只发送一句问候。官方网关兼容性指南涵盖流式响应、能力标头、请求字段和缓存标记。转发错误可能造成请求失败,也可能让原本预期的功能失效。应执行一次完整的工具调用往返,并检查实际路由和用量,再决定是否采用某个服务商组合。

为什么更便宜的 Claude 模型,可能让整项任务更贵?

切换模型可能把便宜的缓存读取变成一次新的缓存写入。Anthropic 的 API 成本优化 Cookbook解释了缓存属于具体模型,以及子代理会从一个新前缀开始。保留对话文本,不等于把主模型的缓存也移交过去。

例如,一次很长的故障调查结束后,只剩一个简单的格式整理任务。把完整调查历史发送给更便宜的模型,可能比留在已有缓存的模型上整理结果更贵。另一个选项是只委派一段简短、可以独立理解的内容。应按照同样的验收结果比较这些方案,而不是默认选择单价最低的模型。

推理强度也需要同样谨慎。提示词缓存参考文档区分了两种情况:请求顶层的 effort 变化会让已缓存的消息块失效;受支持的逐消息 effort 变化则可以保留之前的前缀。使用同一个模型,并不自动意味着仍能命中同一份缓存。

我们的评估原则是:把整项任务中的分类、生成、缓存写入、重试和人工修正都计入成本。优先在有意义的工作节点切换,只有测得的质量或总成本收益足够时,才增加新的切换。一个固定的节省百分比,无法说明你的实际任务组合是否受益。

Claude 模型路由常见问题怎么排查?

常见现象及下一步应检查的证据
现象首先检查
推荐结果变了,主模型没变确认 Hook 是只给提醒,还是配置下一次会话。当前会话应通过 /model 修改。
新会话仍然启动旧模型检查启动参数、环境变量、项目设置和组织策略,它们可能优先于用户保存的默认值。
子代理使用了意料之外的模型对比启动时的显式模型参数、frontmatter、组织限制和最终解析出的模型。
代理聊天正常,工具或流式响应却失败用完整的工具调用往返,检查协议转发和模型能力。
模型单价降低,总账单却上升比较缓存写入、额外尝试、分类器用量和重复上下文。

这些排查项依据上文的原生配置、子代理和网关接口约定。先记录观察到的行为,再调整设置,避免一次修改多个变量。

团队应该如何评估自动模型路由?

  1. 选定一种任务。把文件查找、范围明确的修改和原因不明的调试分开,并为每类任务定义验收方法。
  2. 记录原生功能基准。固定仓库版本和任务指令,记录实际模型、完成时间和人工修正工作量。
  3. 一次只改变一个位置。先比较显式子代理配置与 Hook 路由,再考虑把服务商切换加入同一实验。
  4. 检查例外情况。在测试环境中覆盖显式模型覆盖、含糊请求、缓存已热的长会话,以及服务商故障。
  5. 保留证据。保存路由理由、实际模型、用量和验收结果;更新客户端、插件或模型后,重新检查策略。

可以先从错误容易识别的一个流程开始。等路由版本达到质量目标,并改善总成本或完成时间后,再扩大使用范围。对于由应用管理的代理循环,我们的 LiteAgents 路由指南讨论 SDK 层的边界。OpenAI Decisions API 指南则介绍应用自行控制决策时,如何处理分类器输出和回退策略。

Claude 模型路由常见问答

Claude Model Router 是 Anthropic 的官方功能吗?

本文比较的 tzachbon/claude-model-router-hook 和 musistudio/claude-code-router 都是社区项目。Claude Code 另外提供原生模型选择、子代理配置及其他控制项。按照安装说明操作前,先核对仓库所有者。

不重启也能切换 Claude Code 的模型吗?

可以,原生 /model 会改变当前会话的模型选择。Hook 项目的可选自动切换则写入新会话的默认值。该项目对子代理的路由是另一套机制。

warn 模式会关闭子代理路由吗?

不会。示例把 apply_mode 设为 warn,同时把 subagent_enforcement 设为 on。主会话收到建议,委派任务仍然可能被路由。应分别配置这两个开关。

模型路由一定能节省 token 吗?

不一定。选择更便宜的模型会改变 token 单价,却不一定减少所需 token 数量。分类、缓存重建、重试和额外评审可能抵消节省。应比较满足相同验收标准的完整任务。

使用本地 Claude 路由器,代码就不会离开电脑吗?

只有整个配置好的推理路径都在本地,才能这样判断。本地网关仍可把代码转发给云服务商。发送机密内容前,应检查上游服务商、分类调用、日志和回退目标。

生产级 AI 支持

正在构建 AI 产品,却担心推理成本、架构或生产可用性?Wavect 帮助创始人把 AI 原型变成可靠的生产系统。

查看相关服务:

只收重要内容

关注与你相关的内容

每当我们发布新文章,你会收到一封简短邮件。你可以关注整个博客,也可以只选感兴趣的主题。

你希望接收哪些内容?
选择主题

免费、双重确认、不使用跟踪像素。

返回
Kevin Riedl

9 分钟 阅读 · 2026年10月7日
最近审核

下一篇

获取下一篇关于AI 与智能体的一线笔记

有新文章时发送一封简短邮件,不使用跟踪像素,也不发送填充内容。

免费、双重确认、不使用跟踪像素。