11 月 4 日(UTC-8)用户钻石消耗暴增排查
数据:Basin consumption_events(线上 live 的全部模型调用,按估算成本 estimated_cost_usd)、messages(玩家消息);版本:线上每次发布的快照与模板各版本的引擎文件逐一比对。时间 2026-11-01 至 11-06(UTC-8 日,11-06 只有不到一小时)。生成于 2026-11-06 17:26。
- 暴增主要来自一个游戏:g7be56174。它在 11-04 07:00 UTC(UTC-8 11-03 23:00)从旧引擎(约 1.0)升到 1.52,每条用户消息的成本从约 $0.015–0.019 涨到 $0.0705(11-04),11-05 回落到 $0.0377。这一天它花了 $369,前一天是 $135,占全平台 11-03→11-04 增量(+$333)的约 70%。1.52 的导演每次查看都改写自己的系统提示,缓存几乎全部失效(11-04 该游戏缓存命中约 20%,同期 1.70 的游戏是 70–78%),1.64 才修复。
- 升到 1.67+(maxTurns 10)的游戏,单条消息成本没有上升。最大的 g1c98e603 升级前每条 $0.018–0.033,升级后 $0.021–0.023;每条消息的模型请求数 2.5–2.7,升级前后一样。它 11-04 多花的约 $100 来自每个玩家聊得更多(每人每天约 14–19 → 22–25 条),不是单价。
- 全平台每条用户消息:11-02 $0.024、11-03 $0.019、11-04 $0.033、11-05 $0.028;去掉 g7be56174 后 11-04 为 $0.024,与 11-02 持平。每条消息的模型请求数 2.45 → 2.8(+15%),没有翻倍。
- 建议:g7be56174 尽快升到当前模板(≥1.64 即修复导演缓存);它仍在 1.52 上,11-05 每条消息仍是其他游戏的约 1.5–2 倍。
每天的总花费,按引擎版本
柱高 = 当天全部线上游戏的估算模型花费(美元);柱上数字为当天每条用户消息的平均成本。11-06 只有不到一小时的数据。
每个游戏每天:花费 / 每条消息成本
每格:当天花费(美元),下面是每条用户消息的成本和当天运行的版本。红底 = 每条消息成本 ≥ $0.05。用户消息数:引擎写入 Basin messages 的版本用真实数,旧引擎(≤1.28)不写,用"玩家触发的 NPC 回合"代替(标 ≈;在写入 Basin 的版本上两者基本一一对应)。
每个游戏 × 每个版本(11-01 至今合计)
版本:发布快照的引擎文件(server/engine/**、server/index.js)与模板各版本逐一比对;"≈"表示引擎有本游戏自己的改动,取文件最一致的版本。上线时间为 UTC-8。按游戏总花费排序。
与业务侧结论的对照
| 业务侧说法 | 这里的数据 |
|---|---|
| 每句话的 LLM 调用 3.0 → 6.7 次 | 全平台每条用户消息的模型请求:11-01 至 11-03 为 2.45,11-04 为 2.81,11-05 为 2.76(+15%)。g1c98e603 升级前后都是 2.5–2.7;g7be56174 从 2.1 升到 3.0–3.2。没有翻倍。差异多半来自分母:业务侧的"句"和"笔"是扣费账本口径(可能只看首充用户),这里是全部线上玩家的全部模型请求。 |
| 单次调用真实成本 $0.0073 → $0.0150 | 全平台每个请求:11-02 $0.0096、11-03 $0.0077、11-04 $0.0117、11-05 $0.0100。11-04 的上涨集中在 g7be56174(1.52 缓存失效,每请求 $0.023)。 |
| 66% 的扣费是"不带 npc_name 的后台隐形调用" | 这些主要是导演(director)调用。导演在旧引擎里也有:g1c98e603 升级前导演占花费 32–52%,升级后 54–56%;全平台导演占比 11-02 39% → 11-04 53%。导演占比上升,主要是 g7be56174 的 1.52 导演缓存失效。 |
| 67.64 积分/句 | 按倍率 660 换算,全平台 11-04 平均约 21.7 钻石/条($0.033 × 660),g7be56174 当天约 46.5。67.64 远高于全体平均,应是部分用户(如首充用户、重度玩家)的口径。 |
方法与限制
- 花费 = consumption_events 中 scope = live 的 estimated_cost_usd(按 id 取最新一条),含 NPC、导演、快捷回复、配图,也含召回、沉默唤醒等不是由用户消息直接触发的调用。
- 花费按发布时间切分到版本(10 分钟粒度),发布当时正在跑的请求可能被算到相邻版本。
- Basin messages 里有"回填"行:存档迁到新引擎时把旧消息按原时间写入。这里已排除回填,只计实时写入的消息。
- "玩家触发的 NPC 回合"= NPC 输入里含玩家事件的模型调用次数;在写入 Basin 的版本上,它和真实消息数相差在 ±10% 内(如 g1c98e603 11-04:15,884 对 15,750)。
- 玩家数 = 当天有模型调用的 session 数。