一、问题不是“贵”,而是“看不清”
在企业场景里,AI 成本管理最常见的痛点不是单价,而是归因能力不足:
多个项目共用同一组 API Key,月底只能看到总额;
出现异常消耗(重试风暴、循环调用)时,发现太晚;
人员流动后,历史环境变量难清理,密钥风险持续存在;
业务方会问“这笔钱值不值”,技术侧却拿不出请求级证据。
这类问题的本质是:缺少请求级账本(Request-level Ledger)。
二、目标定义:先可见,再可控,最后再优化
我们将治理目标拆成三层:
可见:每次调用都能回答“谁、在哪、用什么模型、花了多少”;
可控:按项目/团队设置预算、有效期、模型范围;
可优化:通过分钟级聚合发现异常并快速止损。
注意,这三层是顺序关系。很多团队一上来就谈“优化成本”,但连调用归因都不完整,最后只能靠经验猜。
三、架构思路:虚拟凭证替代共享真实 Key
核心原则很简单:
真实 Provider Key 不下发,统一保存在密钥保险库(Vault);
应用侧只使用虚拟凭证(Virtual Credential);
在运行时将虚拟凭证映射到真实凭证,并同步写入审计日志。
可以理解为在应用和模型服务之间加了一层“运行时凭证治理层”。
关键收益
权限收敛:按项目发凭证,而不是按人发主 Key;
生命周期可控:支持有效期、额度、模型白名单;
审计天然关联:每次调用都带项目/环境上下文。
四、最小可落地实现(不做大改造)
下面是我们实践中可快速落地的最小方案。
1)统一调用入口
无论脚本、服务还是工具链,统一通过同一入口发起调用(CLI/代理均可)。
目标是保证每次调用都能带上上下文标签(项目、环境、调用方)。
2)定义最小审计字段
建议先从这组字段开始,不要一开始做“大数据工程”:
timestamp
caller(用户/服务)
project
environment(prod/staging/dev)
requested_model
actual_model
prompt_tokens
completion_tokens
total_tokens
unit_price_snapshot
computed_cost
latency_ms
status_code / error_type
trace_id
这组字段足以回答:谁花的钱、花在哪、是否符合预期模型、异常是否可追踪。
3)分钟级聚合 + 基础告警
将请求日志按分钟聚合,先上三条规则:
单项目分钟消耗突增告警;
单调用 Token 异常拉长告警;
requested_model 与 actual_model 不一致告警。
这三条规则对止损最直接,且实现成本低。
五、一个真实工程场景(可复现)
以“客服问答服务 + 内部知识检索”并行运行为例:
两个服务共用同一模型供应商;
过去只看月账单,无法区分哪个服务导致峰值;
上线请求级审计后,能在分钟级看到各服务消耗曲线;
当某次 Prompt 调整导致输出长度增长时,系统在短时间内提示异常。
这里没有“神奇优化比例”,只有一件事:
从“月底复盘”变成“运行中治理”。
六、为什么这套方案适合团队协作
在多人协作场景中,虚拟凭证比共享真实 Key 更稳:
外包/临时成员:发短期凭证,到期自动失效;
测试环境:单独预算,避免误伤生产;
项目切换:按项目回收凭证,不影响其他业务;
审计复盘:通过 trace_id 联动业务日志,定位更快。
这不是“多一层代理”,而是把身份、权限、审计放到同一个治理面里统一管理。
七、落地顺序建议(两周可见效果)
如果你的团队准备启动,建议按这个节奏:
第 1 周:
停止新增共享真实 Key;
选 2~3 个高频项目做试点;
接入统一调用入口并打标。
第 2 周:
建立分钟级聚合;
上线三条基础告警;
输出首版项目归因报表(周报即可)。
先跑通“可见性闭环”,再谈更复杂的路由和成本优化策略。
八、结语
AI 成本治理不是财务动作的附属品,而是基础设施能力的一部分。
当调用归因做到请求级,团队才能把“算不清的 Token”转成“看得见、管得住、可复盘的成本”。
先解决可见性,再解决优化。
这是我们在生产实践里验证过的路径。