mcpField
C
cost-counterfactual

cost-counterfactual

github.com/ruvnet数据与数据库80.0k249 次安装今天更新
代码仓库

关于 cost-counterfactual

cost-counterfactual 是一项成本分析技能,通过会话记录将模型路由的实际支出与假设基线进行比较。它帮助团队评估路由节省,并发现路由设置是否导致不必要的模型升级。

主要功能

  1. 01与模型基线比较支出
  2. 02按时间范围筛选会话
  3. 03计算节省金额与比例
  4. 04汇总各基线结果
  5. 05以 JSON 输出结果

适用场景

  1. 01审查季度路由节省情况
  2. 02在 CI 中设置节省门槛
  3. 03验证路由配置变更

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ruvnet/ruflo --skill cost-counterfactual

安装后在 Claude Code 中输入/cost-counterfactual确认已加载。

详细介绍

多基线反事实成本分析。与现有的可观测性功能相辅相成:

  • cost-budget-check — “我们是否已超过阈值?”(响应式)
  • cost-projection — “我们何时会超过阈值?”(预测式)
  • cost-counterfactual — “路由是否物有所值?”(比较式)← 本项

算法

  1. 从 cost-tracking 命名空间读取所有 session-* 记录。
  2. 应用 --since 时间窗口筛选(默认:全部时间)。
  3. 对每个会话的 byModel[*] 条目中的 token 求和。
  4. 对每个指定基线(默认:全部三个):
    • counterfactualUsd = (input × tier.input + output × tier.output + cache_write × tier.cache_write + cache_read × tier.cache_read) / 1M
  5. 计算 savings = counterfactualUsd − actualUsd。
  6. 输出每个基线的总额,以及比较集中的节省百分比。

冒烟测试记录(2 个会话:50K haiku token + 50K sonnet token)

| Sessions considered | 2 |
| Total input tokens  | 100,000 |
| Actual spend        | $0.162500 |

| Baseline           | Hypothetical | Actual    | Savings    | %       |
| `always-haiku`     | $0.025000    | $0.162500 | -$0.137500 | -550.00% |
| `always-sonnet`    | $0.300000    | $0.162500 | +$0.137500 |   45.83% |
| `always-opus`      | $1.500000    | $0.162500 | +$1.337500 |   89.17% |

如何解读负节省额

always-haiku 结果为负,意味着路由器为任务选择了比 haiku 更贵的模型,而这些任务本可由 haiku 处理。这是过度升级的信号:

  • 可能是 qualityBar 设置过高
  • 也可能是 sonnet/opus 会话确有复杂度需求,但基线并不了解这一点
  • 运行 cost optimize(或通过 cost conversation 检查具体会话)以进一步排查

正节省额表示路由器相对于该基线节省的成本。最有参考价值的数字通常是 always-sonnet——如果没有路由,大多数团队都会选择它作为标准的“安全默认”基线。

何时使用

  • 季度成本审查:“与始终使用 Sonnet 相比,我们节省了 $X——证据如下。”
  • CI 门禁:cost counterfactual --format json | jq '.baselines[1].savingsPct > 30' — 如果路由相对于 sonnet 基线未节省 ≥30%,则构建失败(工作负载变化检测器)。
  • 路由配置验证:引入新的 qualityBar 或成本上限时,重新运行 counterfactual,以确认节省额没有下降。

平稳性注意事项

与所有反事实分析一样,这一分析假设:对于相同复杂度的相同 token,基线模型会产生相同结果。这是一个上限——基线模型可能会失败并需要重试,而计算并未涵盖这一点。请将这些数字视为不考虑质量的上限。

评论

支持 Markdown