用途
Cost Benchmark 用于对结构化与对抗性语料库运行成本基准测试,并将逐用例结果与汇总结果持久化到 docs/benchmarks/runs/ 目录。它是支撑 cost-booster-edit / cost-booster-route 中每一项可度量声明的验证门禁。
何时使用
- 发布前——验证 booster 胜率没有回退。
- 扩展
bench/booster-corpus.json之后——确认新用例路由正确。 - 审计“claimed upstream”标签时——一旦基准测试支持,就将其改为“verified”。
- 遇到成本问题(例如“对这些任务来说 Sonnet 4.6 比 Opus 4.7 更便宜吗?”)——用
BENCH_ANTHROPIC=1重新运行。
使用方式
从 v3/ 目录(agent-booster 解析所在位置)运行基准测试:
( cd v3 && node ../plugins/ruflo-cost-tracker/scripts/bench.mjs ) # 仅 booster — 免费,约 85 ms
( cd v3 && BENCH_LLM_BASELINE=1 node ../plugins/ruflo-cost-tracker/scripts/bench.mjs ) # + Gemini 2.0 Flash(便宜)
( cd v3 && BENCH_LLM_BASELINE=1 BENCH_ANTHROPIC=1 \
node ../plugins/ruflo-cost-tracker/scripts/bench.mjs ) # + Sonnet 4.6 + Opus 4.7
检查打印到 stdout 的 markdown 摘要。门禁指标是 winRate(Tier 1 用例)。对抗性用例单独作为 escalationRate 跟踪。
持久化输出位于:
docs/benchmarks/runs/latest.json— 指向最近一次运行的指针docs/benchmarks/runs/<ISO-timestamp>.json— 历史记录
在后续技能中读回它(例如 cost-report 第 2 步读取 latest.json 以获取实时分层支出数字)。
冒烟门禁
- Tier 1 用例的 winRate ≥ 0.80(冒烟步骤 23)。可通过编辑
scripts/smoke.sh降低阈值。 - escalationRate 会被报告但不设门禁——对抗性用例属于诊断性质。
环境变量覆盖
| 环境变量 | 默认值 | 用途 |
|---|---|---|
| BENCH_LLM_BASELINE | 未设置 | =1 运行 OpenAI 兼容基线 |
| BENCH_LLM_MODEL | models/gemini-2.0-flash | 覆盖 OpenAI 兼容模型 |
| BENCH_LLM_BASE_URL | Gemini OpenAI shim | 覆盖端点 |
| BENCH_ANTHROPIC | 未设置 | =1 运行 Anthropic 基线(Sonnet 4.6 + Opus 4.7) |
| BENCH_ANTHROPIC_MODELS | claude-sonnet-4-6,claude-opus-4-7 | 逗号分隔的 Claude ID |
| BENCH_OUT | 带时间戳的文件 | 覆盖输出路径 |
| BENCH_QUIET=1 | 未设置 | 抑制 markdown 摘要 |
API 密钥自动从 gcloud secrets 拉取(GOOGLE_AI_API_KEY、ANTHROPIC_API_KEY);可用 BENCH_LLM_API_KEY / BENCH_ANTHROPIC_API_KEY 覆盖。
交叉引用
- ADR-0002 §"Decision 1" / §"Riskiest assumption"
- cost-booster-edit/SKILL.md(验证表消费本技能的输出)
- cost-report/SKILL.md 第 2 步(读取 runs/latest.json)