cost-modellisted
Install: claude install-skill techdolphinJ/cost-model
# 成本核算
把「用哪个模型」换算成「多少钱、能不能跑得动、能用多久」。
## 为什么需要这个 skill
模型报价看起来是查表,实际有三个坑,每个都会让结论错一个数量级:
1. **只算 token 费**,把它当成项目成本报给客户——漏掉的人工审核部分往往是算力的十几倍。
2. **只看单价不看限流**——旗舰模型比往期档贵一倍,但 RPM 可能只有 1/60。算出来能负担,实际跑不动。
3. **引用了已下线的 SKU**——报价当时成立,签合同时那个型号已经没了。
所以核算的顺序是:**先定口径 → 三轴都算 → 检查报价是否还有效 → 才给数**。
---
## 第一步:口径三问(不能跳)
给任何数字之前,先在心里答完这三问,并把答案写进输出。口径不同,同一件事的报价能差两个数量级。
**1. 算的是算力成本还是交付成本?**
- **算力成本** = token + 工具调用 + 存储 + 订阅。机器账单。
- **交付成本** = 算力 + 人工审核 + 事实核对 + 合规过审 + 本地化 + 返工。真实成本。
默认按算力成本算,**但必须显式列出没算进去的部分**。经验比例:产出类任务里算力通常只占交付成本的个位数百分比。把算力成本当交付成本报出去,是这个 skill 要防的头号错误。
**2. 一次性还是持续跑?**
- 一次性 → 算单次,限流基本不是约束。
- 持续 → 算月度总额,**并且必须校验限流**(见轴二)。
**3. 这个数给谁看?**
- 内部选型 → 给区间,可以带假设。
- 对外报价 / 写进方案 → 只能用**在架 SKU** 的**当代价格**,且必须标快照日期。
---
## 第二步:三轴都要算
### 轴一 · 单价
要素:输入价、输出价、缓存命中价,以及**分档条件**。
分档条件是最容易漏的——同一个模型的价格可能按上下文长度、目标输出长度、输出分辨率分成好几档。先确定落在哪一档,再取价。
估算时输出 token 要**含中间推理和废稿**,不能只按最终成品字数算。推理模型的思维链是要付费的。
### 轴二 · 限流(决定能不能跑,不是贵不贵)
先算需求,再看档位够不够:
```
需要的 RPM = 峰值任务数 ÷ 可用分钟数
需要的并发 = 单任务耗时(分钟) × 需要的 RPM
```
拿这两个数去比所选 SKU 的 `最大 RPM / 最大 TPM / 最大并发`。**不够就换档,不要换成"多等一会儿"**——并发上限是硬的,等不出来。
限流通常是**非刚性保障**(受平台负载影响)。**永远不要把限流数字当 SLA 写进对外方案。**
### 轴三 · 生命周期
查所用 SKU 有没有「即将下线 / 停止服务」标记。
- 标了下线 → **不能进任何超过 6 个月的成本模型**。可以当临时算力用,但结论里必须点名,并给出在架替代 + 换算后的倍数变化。
- 各厂商汰换节奏不同,快照文件里会记。观察到的规律:一年一代、老代不留。
---
## 第三步:失效检查(硬规则)
价格快照是会烂的。给数之前先检查:
**快照超过 90 天** → 先说这一句,再给数,不许省略:
> ⚠️ 本次引用的 <厂商> 报价快照为 YYYY-MM-DD,距今 N 天。数字仅供量级参考,正式报价须重新抓取。
**快照里没有的项** → 直接说没有。**不要拿相邻 SKU 推算后当事实给出。**可以给推算值,但必须标「推算,未经核实」。
**