工具链阿新聊ai

Superpowers 进阶 · 模型选择与成本控制

Superpowers 进阶 · 模型选择与成本控制 更新日期:2025/06 TL;DR: 不同角色用不同档位模型:implementer 用 Haiku/Sonnet 快速执行,reviewer 用 Sonnet 平衡质量和成本,controller 用 Opus 做复杂决策。任务复杂度信号:文件数、跨模块、安全...

Superpowers 进阶 · 模型选择与成本控制

更新日期:2025/06

TL;DR: 不同角色用不同档位模型:implementer 用 Haiku/Sonnet 快速执行,reviewer 用 Sonnet 平衡质量和成本,controller 用 Opus 做复杂决策。任务复杂度信号:文件数、跨模块、安全敏感→升级模型。Token 实测:150 次 subagent 调度中 78% 继承了父级 Opus(浪费),应在调度模板显式指定模型层级。Superpowers 技能优化案例:3150 行减到 977 行(69% 削减)不丢失行为指导。

为什么要区分模型

Superpowers 不是「一个模型干所有事」的系统。不同角色需要不同能力:

  • Implementer 执行代码任务——需要代码能力,但不需要深度推理
  • Reviewer 审查代码——需要推理但规模有限
  • Controller 规划和决策——需要深度推理和全局视野

用 Opus 做 implementer 是浪费。用 Haiku 做 controller 是自找麻烦。正确匹配角色和模型,能在保持质量的前提下大幅降低成本。

真实数据:150 次 general-purpose 调度中,78% 继承了父级模型。其中 77 次继承自 Opus 父会话。每次继承都意味着用 Opus 的价格做 Haiku 能做的任务。这不是小钱——Opus 价格可能是 Haiku 的 15-30 倍。

Implementer/Reviewer/Controller 模型分配

Implementer - 快速执行角色

什么任务:

  • 写具体函数
  • 实现测试
  • 修改配置
  • 运行命令

推荐模型:

  • Claude Haiku - 最快最便宜,代码能力足够
  • Claude Sonnet - 需要 200K 上下文或复杂代码时

什么时候升级:

  • 任务需要阅读大量文件(10+ 文件)
  • 代码特别复杂(元编程、宏、模板)
  • 需要跨模块理解架构

成本考量: Haiku 价格通常是 Opus 的 1/15 - 1/30。如果 implementer 任务占 70% 的 token 预算,用 Haiku 能省 60-70% 总成本。

Reviewer - 平衡质量和成本

什么任务:

  • 代码审查
  • Bug 定位
  • 测试分析
  • 规范检查

推荐模型:

  • Claude Sonnet - 默认选择,推理和成本平衡
  • Claude Opus - 安全审查、架构审查、复杂 bug 分析

什么时候升级:

  • 安全敏感代码
  • 跨模块审查
  • 理解复杂依赖关系
  • 审查者本身是关键路径(决策性审查)

成本考量: Reviewer 任务是中期任务——不频繁但重要。Sonnet 提供足够推理能力,价格是 Opus 的 1/3 - 1/5。非安全、非架构的审查用 Sonnet 足够。

Controller - 决策和规划

什么任务:

  • 需求澄清
  • 架构设计
  • 任务规划
  • 复杂问题决策

推荐模型:

  • Claude Opus - 默认选择,深度推理必需
  • Claude Sonnet - 简单规划、小范围任务

什么时候降级:

  • 明确的小任务(已知问题、已知解决方案)
  • 纯执行任务(不需要决策)
  • 流程化任务(按模板执行)

成本考量: Controller 虽然频率低,但每次调用成本高。但这里不能省——Opus 的深度推理能避免错误决策导致的重做。一次错误规划的代价是 Opus 价格的 10-100 倍。

任务复杂度信号

Superpowers 用以下信号判断任务复杂度,自动调整模型选择:

信号 1:文件数量

1-3 文件   → Haiku implementer
4-10 文件  → Sonnet implementer
10+ 文件   → Opus implementer + Sonnet reviewer

信号 2:跨模块程度

单模块           → Haiku implementer
跨 2-3 模块      → Sonnet implementer
跨 4+ 模块       → Opus implementer + Opus reviewer

信号 3:敏感度

普通代码         → Haiku/Sonnet implementer
认证/权限        → Sonnet implementer + Sonnet reviewer
加密/密钥/支付   → Opus implementer + Opus reviewer

信号 4:失败次数

首次尝试         → 按复杂度选择
第 2 次尝试      → 升一级模型
第 3 次尝试      → Opus + 人工介入

信号 4 的逻辑: 如果 Haiku implementer 失败,说明任务比预期复杂。第二次用 Sonnet。如果 Sonnet 也失败,说明任务有隐藏复杂性或根本性错误——上 Opus 并要求人工审查。

Token 与成本实测

Superpowers 技能优化案例

问题: 用户抱怨 Token 消耗太高。Issue #1648:「规划时消耗太多 Token,请减少用量。」

优化前: 14 个技能共 3150 行,每次触发全量加载。

优化后: 削减到 977 行(69% 减少),不丢失非显而易见的行为指导。

技术:

  • 详细的标志文档移到 reference
  • 渐进式披露(只加载需要的部分)
  • 删除 Claude 已知的内容
  • 每个部分必须有 Token 价值

Subagent 模型继承问题

数据: 150 次 general-purpose 调度

  • 78 次(52%)继承了父会话模型
  • 其中 77 次继承自 Opus 父会话

问题: Task 工具支持按调度选择模型,但模板未携带模型参数。指导停留在 SKILL.md 的文字中,行动发生在分派模板中。两者未交汇。

解决方案: 在分派模板显式指定模型:

# 错:继承父模型
Task(tool="Agent", agent_type="general-purpose", prompt=task_description)

# 对:显式指定模型
Task(tool="Agent", agent_type="general-purpose", 
      prompt=task_description, model="haiku")

成本对比(假设价格)

模型 输入 ($/M tokens) 输出 ($/M tokens) 相对倍数
Haiku $0.25 $1.25 1x (基准)
Sonnet $3.00 $15.00 12x 输入, 12x 输出
Opus $15.00 $75.00 60x 输入, 60x 输出

实际影响:

  • Implementer 用 Haiku 而非 Opus:节省 97%
  • Reviewer 用 Sonnet 而非 Opus:节省 92%
  • Controller 必须用 Opus:不省,但频率低

总体优化: 如果 implementer 占 70% token、reviewer 占 20%、controller 占 10%:

  • 全用 Opus:100% 成本
  • 优化分配:70%×Haiku + 20%×Sonnet + 10%×Opus ≈ 15% 成本
  • 节省:85%

实际应用模式

模式 1:主会话 Opus + Subagent Haiku

配置:

主会话:Claude Opus 4.8(深度推理)
Implementer subagent:Claude Haiku(快速执行)
Reviewer subagent:Claude Sonnet(平衡审查)

适用: 复杂项目需要全局推理,但执行任务多是简单编码。

成本: 主会话 Opus 贵但频率低。Subagent Haiku 便宜但频率高。总成本可控。

模式 2:主会话 Sonnet + 升级机制

配置:

主会话:Claude Sonnet(默认)
触发复杂信号  切换到 Opus 主会话
Subagent:默认 Haiku,按复杂度升级

适用: 预算敏感,大部分任务中等复杂度。

成本: Sonnet 主会话比 Opus 便宜 80%。只在需要时升级。

模式 3:全 Haiku + 关键路径 Opus

配置:

主会话:Claude Haiku
关键决策点  手动升级到 Opus
Subagent:全部 Haiku

适用: 超预算敏感项目。牺牲部分推理能力换取成本。

成本: 最便宜。但复杂项目可能需要更多人工介入。

优化清单

在项目中实施模型分层前,按以下清单确认:

  • 角色定义清晰 - 每个任务明确属于 implementer/reviewer/controller
  • 复杂度信号定义 - 有明确的文件数、跨模块、敏感度阈值
  • 分派模板更新 - subagent 调度显式指定 model 参数
  • 监控机制 - 记录每个任务的模型使用和 token 消耗
  • 升级路径 - 失败次数超过阈值时自动升级模型
  • 成本预算 - 为每个角色分配 token 预算,超过预警
  • 人工介入点 - 3 次失败后必须人工审查

权衡与局限

模型分层不是免费午餐。

复杂性成本: 管理多模型配置比单一模型复杂。你需要维护分派模板、监控成本、调整阈值。这个管理成本可能抵消部分节省。

延迟成本: 不同模型响应时间不同。Haiku 最快,Opus 最慢。如果项目是实时交互(比如编码时的即时建议),Haiku 的延迟优势明显。如果是离线批处理,延迟不重要。

质量风险: Haiku implementer 可能产生需要更多审查的代码。如果节省的 Haiku 成本被增加的 Sonnet reviewer 消耗抵消,优化就失败。需要测量真实数据。

平台限制: 不是所有平台支持显式模型选择。某些 harness 的 Task 工具可能不支持 model 参数。你需要先验证平台能力。

模型版本更新: 模型升级时(Opus 4.6 → 4.8),你需要更新所有配置中的模型版本。遗漏一处就可能导致意外的成本或质量下降。

延伸阅读

评论

0
登录后可以参与评论和讨论。
💬

还没有评论

欢迎留下第一条评论,帮助这篇内容更快形成讨论。