跳转到内容

三级模型路由——Haiku/Sonnet/Opus 成本优化

学习目标

  • 理解三级模型路由的成本优化原理
  • 掌握 Agent-模型默认映射的设计方法
  • 设计自己的动态模型覆盖配置
  • 识别模型降级策略缺失的风险

前置知识

多模型适配的统一抽象与故障转移已在通用知识中介绍:

下文假设你已理解模型抽象层和回退机制的基础概念,直接聚焦 OMC 的 三级成本优化路由 的具体实现。

项目实践

三级模型分层

OMC 使用三个模型层级,根据任务复杂度自动选择最优模型:

层级模型特点相对成本典型场景
LOWHaiku快速、便宜代码搜索、文档读取、简单信息提取
MEDIUMSonnet性能与成本平衡~10×代码实现、调试、测试、标准审查
HIGHOpus最高推理质量~50×架构设计、战略规划、深度分析、共识规划

默认 Agent-模型映射

OMC 为 19 个 Agent 设置了默认模型分配:

Agent默认模型选择理由
exploreHaiku只需要读取和映射代码
writerHaiku文档生成属于低复杂度任务
executorSonnet代码实现需要中等推理能力
debuggerSonnet根因分析需要理解代码逻辑
verifierSonnet验证需要执行和断言检查
test-engineerSonnet测试策略需要中等推理
designerSonnetUI 设计需要中等推理
qa-testerSonnet运行时验证需要中等推理
scientistSonnet数据分析需要中等推理
document-specialistSonnet文档检索需要中等推理
git-masterSonnetGit 操作需要中等推理
analystOpus需求分析需要发现隐藏约束
plannerOpus任务排序需要全局视角
architectOpus系统设计需要深度推理
criticOpus计划审查需要多角度分析
code-reviewerOpus全面审查需要高质量判断
code-simplifierOpus行为保留简化需要高质量推理

成本优化效果

通过三级路由,OMC 声称可节省 30-50% 的 Token 成本:

  • 简单任务使用 Haiku:代码搜索成本降低 10×+
  • 标准任务使用 Sonnet:代码实现成本降低 3-5×
  • 复杂任务才使用 Opus:确保质量但控制比例

动态模型覆盖

OMC 允许通过配置文件覆盖默认映射:

.claude/omc.jsonc
{
"modelRouting": {
"executor": { "default": "opus" }, // 提升 executor 到 Opus
"explore": { "default": "sonnet" } // 提升 explore 到 Sonnet
}
}

典型使用场景

  • 复杂项目中,代码搜索可能涉及复杂模式匹配——提升 explore 到 Sonnet
  • 关键模块的实现需要最高质量——提升 executor 到 Opus
  • 预算敏感项目中,审查任务可以降低到 Sonnet

模型兼容性矩阵

OMC 维护了一个 Model × Agent Compatibility Matrix,定义了不同预设下的推荐配对:

预设策略典型场景
Premium尽可能使用 Opus高质量要求的任务
Balanced默认映射日常使用
Budget尽可能降级到 Haiku/Sonnet成本敏感场景

问题与规避

问题 1:默认映射不适用于所有项目

Haiku 在简单任务中可能表现不佳(如复杂正则分析),导致需要重新执行,反而增加成本。

规避策略:通过 modelRouting 配置覆盖默认映射,针对项目特点调整。

问题 2:Opus 速率限制

当 Opus 不可用时(如速率限制),OMC 没有自动降级到 Sonnet 的内置机制。

规避策略:手动配置 modelRouting 设置降级映射,或使用环境变量覆盖。

问题 3:环境模型继承

通过 resolveInheritedModelFromEnv 支持模型继承,但配置错误时可能静默使用错误模型。

规避策略:启动时验证模型配置,确保继承链正确。

设计取舍

为什么只有三级而非更多层级?

层级数优点缺点
2 级简单粒度过粗,无法区分中等任务
3 级平衡粒度与复杂度中等
5 级+精细路由决策复杂,增加配置负担

OMC 的选择:三级是最小有效分层——足够区分低/中/高复杂度任务,又不增加路由决策的复杂度。

参考来源