瓦特数:用于AI代理的令牌消费分析器和成本回归门
一个用来监测你的AI代理的Kill-A-Watt计量器。将其指向一个跟踪,它会告诉你你的令牌确切在哪里被消耗和浪费,以真实美元为每种浪费模式定价,建议修复方案,并在更改使你的代理的费用显著增加时使你的CI失败。一个真实的捕获代理跟踪(见来源)——瓦特数能捕获到一个稳定的提示前缀被重新发送而不是从缓存中取出,定价这项浪费并建议解决方案。使用命令生成这个GIF:vhs docs/assets/demo.tape(请查看胶带文件获取确切命令)。安装并运行:uvx wattage report trace.json 没有配置文件,没有API密钥,完全离线——将其指向OTLP JSON跟踪导出并为每个调用定价并运行每个检测器。还没有跟踪?获得你的第一个跟踪涵盖了“我已经有OTel跟踪”和“我没有任何仪器”(从零到一个真实定价报告的可运行5分钟路径)。或者现在就尝试这个仓库中随附的固定装置:git clone https://github.com/faizannraza/wattage cd wattage && uv sync uv run wattage report examples/sample_trace.json ╭──── ⚡ wattage — examples/sample_trace.json ────╮ │ 令牌效率:A (100) 总费用:$0.0602 │ │ 质量:未测量 │ ╰─────────────────────────────────────────────────╯ 令牌细分 ┏━━━━━━━━━━━━━━━━┳━━━━━━━━┓ ┃ 类别 ┃ 令牌 ┃ ┡━━━━━━━━━━━━━━━━╇━━━━━━━━┩ │ 输入 │ 18450 │ │ 输出 │ 320 │ │ 缓存读取 │ 0 │ │ 缓存创建 │ 0 │ │ 理由 │ 0 │ └────────────────┴────────┘ 没有发现——这个跟踪看起来高效。定价:2026-07-18-验证。或者获取一个独立的、可共享的HTML火焰图,而不是终端视图:uv run wattage report examples/sample_trace.json --html report.html 证据,而非营销声明。瓦特数的突出功能是收敛引擎——非收敛检测器,能够检测出一个代理在循环中毫无进展地处于状态的情况,包括一个幼稚的精确匹配重复检测器结构上无法看到的模式(每次都带着新时间戳的重试,在两个策略之间的振荡,一个“看似高效”的停滞,虽然每个调用在技术上都是独特的,但实际上并没有学到任何东西)。而不是单纯主张这一点,我们建立了一套经过人工审核的10个标记合成循环,并对瓦特数的分类器与一个真实的SHA-256精确匹配基线实现进行基准测试。分类器 精度 召回率 F1 瓦特数 1.00 1.00 1.00 SHA-256 精确匹配 1.00 0.14 0.25 自行复制——没有精挑细选,没有隐藏设置:uv run python -m benchmarks.harness。而在一个真实捕获的代理跟踪(不是合成的——见 benchmarks/traces/README.md 获取来源)中,瓦特数的prefix_churn修复模拟显示启用稳定前缀的提示缓存成本减少44.7%($0.000199 → $0.000110),这是因为这是一个3轮演示跟踪,所以数字很小,但机制在生产规模下是相同的。用你的跟踪数据运行它获取重要数字:uv run python -c "from benchmarks.frontier import build_frontier; print(build_frontier())" 完整的方法论:收敛引擎。徽章 uv run wattage badge trace.json --out wattage-badge.svg  将--badge-out引入你的CI作业(见下文),使它在每次合并到你的默认分支时重新生成,并且你README中的徽章保持活跃。如何工作:三种表面,底下有一个规范化的数据模型(会话→任务→循环→迭代→调用),根据OpenTelemetry GenAI语义约定追踪构建:wattage report——摄取一个跟踪,针对一个经过供应商验证的、日期时效的定价快照为每个调用定价,并运行八个检测器: 检测器 捕获 prefix_churn 稳定上下文被重新发送而不是从缓存中检索 cache_gap 尝试缓存但被后续读取低估 verbosity 输出远远超过该步骤所需的 redundant_tool_calls 同样的工具调用重复(精确或模糊) nonconvergence 在不停顿而无进展的情况下翻腾、振荡或停滞的循环 retrieval_thrash 重复检索,但从未产生相关结果 model_mismatch 一个更昂贵的模型在处理可以由更便宜的模型完成的工作 reasoning_overspend 在简单步骤上重度使用理由令牌 每个发现用真实美元计价,包含明确的修复建议,并带有quality_risk等级(无/低/审核)——一个可能改变输出质量的修复(模型降级、减少推理)只有在--quality映射用实际证据支撑时,才会计入你的得分。详细信息:检测器。wattage score / wattage badge——为README徽章或CI门提供的单一0–100令牌效率等级。wattage ci——成本回归门(见下文)。瓦特数绝不会伪造一个数字:一个未定价的模型将该调用的成本保持在零(并会大声失败wattage ci,退出码4),而不是猜测;一个未测量的质量信号被报告为未测量,而不是假设良好。CI集成 # .github/workflows/wattage.yml name : 瓦特数 on : pull_request : paths : ["agents/**", "prompts/**", "src/**"] concurrency : group : wattage-${{ git
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡