成本治理不是“省钱”,而是“可预测”
企业与团队真正需要的是:
- 成本可预测(预算)
- 延迟可预测(SLA)
- 质量可预测(回归)
三个成本来源:模型、工具、上下文
- 模型:调用次数、输出长度、模型单价
- 工具:外部 API 调用、重试次数、重排/检索开销
- 上下文:历史消息、文档片段、日志片段的 token
治理要分别下手。
预算(Budget):每次执行必须有上限
建议至少设置三类预算:
- 时间预算:最多运行 N 秒
- 步数预算:最多执行 N 步
- 成本预算:最多 tokens/金额
超预算的策略:
- 降级模型(更便宜更快)
- 降级功能(少做一步、少取 top-k)
- 触发人类确认点
缓存:优先做“任务级缓存”
先做最收益的缓存:
- task 级缓存:同一次执行内,工具结果复用
- 短期缓存:分钟级热点数据复用
缓存要带:
- key(含输入摘要)
- TTL
- 命中标记(用于指标)
模型路由:把“贵模型”留给难题
常见路由思路:
- 先用快模型做分类/路由/草稿
- 只有当低置信度或高风险才升级到强模型
关键是把“升级条件”做成可观察的规则,而不是模型自说自话。
批处理与异步:把“必须同步”的范围缩小
很多任务其实可以异步:
- 夜间批量生成周报/报告
- 工单汇总/标签化
- 文档索引构建
同步只保留“用户等待的关键路径”。
输出控制:固定结构 + 字数预算
最有效的省成本手段之一是:输出结构固定并限制长度。
建议:
max_words/max_tokens做成输入契约- 超长内容改为“摘要 + 引用 + 下一步”
动手做:一个可落地的 SLA 策略
你可以为每个 Skill 定义一个简单 SLA:
- P95 延迟 < X 秒
- 平均成本 < Y
- 成功率 > Z
当指标不达标时,触发:
- 降级路径(少步骤/少检索/便宜模型)
- 人类确认点(高风险写操作)
- 暂停路径(保护外部系统与预算)
工程化清单
- 每个 run 有预算与停止条件
- 有缓存命中率指标
- 有模型路由策略与升级条件
- 输出有字数/token 预算
- SLA 指标可观测,可告警
常见坑
- 只看平均成本,不看长尾(P95/P99 才会杀死 SLA)
- 把“省钱”交给模型:模型缺乏全局预算视角
- 不做输出约束:越用越长,成本自然失控