关于 cost-model
cost-model 是用于规范项目成本估算的 Agent 技能,帮助让计划中的成本声明可审计。它提供固定格式、估算方法、合理性检查,以及 AI 项目的成本审批门槛。
主要功能
- 01固定的四行成本估算格式
- 02估算大模型与人工成本
- 03基础设施和交付时间估算
- 04成本比例与常见错误检查
- 05月度成本预测门槛模板
适用场景
- 01在计划和架构文档中记录成本
- 02估算 Agent 流程的模型调用费用
- 03审核预计的月度大模型支出
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ avelikiy/ great_cto --skill cost-model安装后在 Claude Code 中输入/cost-model确认已加载。
详细介绍
成本模型 — 让成本声明经得起审查
great_cto 会在看板上报告成本数据。这些数据 MUST 可审计,因为错误的“7,638×”声明损害了可信度(参见 docs/blog/cost-dashboard-rebuild.md)。本技能定义了格式。
4 行成本部分
每个 PLAN-.md 和 ARCH-.md 的成本部分都遵循以下精确模板:
## Cost estimate
**LLM**: $<low>–<high> (<N> calls × $<per-call avg>)
**Human equiv**: $<low>–<high> (<hours> × $<rate>/h)
**Infra delta**: $<low>–<high>/month
**Time to ship**: <hours> agent-time, <hours> wall-clock
> Methodology: <one-sentence rationale for each range>
为什么必须使用这种格式?
看板的 getCostHistory() 解析器会锚定在行首的“LLM”和“Human”标签上。行内引用会被忽略,以防止再次出现 $240 陷阱。请遵循此模板。
如何估算每一行
LLM 成本
对于流程中的每个 Agent,估算:
- 提示词令牌数 =(系统提示词大小)+(Agent 接收的上下文)
- 补全令牌数 =(该类型 Agent 的典型输出)
Sonnet 4 的快速参考(输入 $3/M,输出 $15/M):
| Agent | 典型提示词 | 典型输出 | 单次调用成本 |
|---|---|---|---|
| architect | 14k | 1.5k | ~$0.06 |
| pm | 6k | 0.6k | ~$0.03 |
| senior-dev | 8k | 0.8k | ~$0.04 |
| qa-engineer | 11k | 0.5k | ~$0.04 |
| reviewer(平均) | 8-12k | 0.6k | ~$0.04 |
| security-officer | 12k | 1k | ~$0.05 |
| devops | 9k | 0.8k | ~$0.04 |
Haiku($0.80/M / $4/M)的成本约为其 1/4。Opus 4($15/M / $75/M)的成本约为其 5 倍。
对实际触发的流程阶段求和(使用 archetypes.ts 中的 gatesFor() 和 reviewersFor() 确定数量)。
人工成本
指不使用 Agent 完成同样工作的人工成本。这要回答的是:“如果我聘请一位高级工程师,这项任务需要多长时间,按什么费率计算?”
- 高级工程师:$120-180/小时(美国/欧洲中端市场)
- 资深工程师 / 专家:$200-300/小时
- 领域专家(安全、合规):$250-400/小时
保守估算工时。LLM 只需 15 分钟就能完成的“小功能”,人类可能需要 2-4 小时(绝不只是打字而已)。
基础设施增量
只计算新增内容。如果该功能新增了一个 Redis 实例,就计入 Redis。如果每月增加 10MB 的 S3 存储,这只是噪声——不用列出。
交付时间
两个数字都很有用:
- Agent 耗时:LLM 调用的实际耗时(通常为 5-30 分钟)
- 实际耗时:包括人工关卡在内的实际经过时间(通常为数小时到数天)
写入前的合理性检查
将此部分提交到计划前,请确认:
ratio = human_equiv / llm_cost
如果 ratio > 1000,就有问题。常见错误:
| 错误 | 检测方法 | 修复方法 |
|---|---|---|
| 单位错误($ 与 ¢) | LLM 成本以 /M tokens 结尾,而非 $ | 换算:tokens / 1M × price |
| 统计的是节省而非支出 | 写的是“节省的人工时间”,而非“人工成本” | 使用完成任务的成本,而非跳过任务的价值 |
| 行内标签污染 | 计划中有一行写着“$X LLM | $Y human” | 使用模板中的多行格式 |
| 混合预测与实际值 | LLM 预测被计入 total_llm | 如有需要,将预测放在单独的部分 |
成本关卡
对于 AI 类型的 archetype(mlops、ai-system、agent-product),流程会在 architect 给出预测后打开 gate:cost。CTO 必须在 senior-dev 开始工作前批准预计的月度支出。
使用 GATE 模板:
## Gate:cost forecast
| Production volume | Monthly LLM cost |
|---|---|
| 1K req/day | $X |
| 10K req/day | $Y |
| 100K req/day | $Z |
Recommended monthly cap: $<cap>
Triggers above cap: <what alerts fire, who gets paged>
反面模式
❌ 整齐数字表演。“$0.50 LLM | $7,500 human”——看起来可疑。请使用真实的范围:“$0.50–1.20 | $225–360”。
❌ **单点估算。**始终提供一个范围。单个数字会掩盖不确定性。
❌ **缺少方法说明。**只有数字、没有依据,就无法核验。
❌ 基础设施费用含糊带过。“一些托管成本”不是数字。要么给出 $ 金额,要么写“基础设施:无变化”。
示例 — 正确写法
## Cost estimate
**LLM**: $0.75–1.85 (3 tasks × $0.25–0.62 per Sonnet call)
**Human equiv**: $225–300 (1.5–2h × $150/h, mid-market senior)
**Infra delta**: $0/month (uses existing Express + Postgres)
**Time to ship**: ~15min agent-time, ~3h wall-clock (1 human gate)
> Methodology: tasks sized by line-count estimate; per-call cost from
> historical Sonnet 4 averages on this archetype's plans.
比例 = 300/1.85 = 162×。合理,且经得起审查。