LLM 消费限额为何在失控循环中失效,以及一个真正管用的预算守护模式
MaverikSh · reddit · 2026-10-24
作者分析了「一夜之间天价 LLM 账单」的共性成因:agent 或重试循环整夜运行而无人察觉,供应商的 spend limit 拦不住。
为什么常规防护会失手
- 供应商限额粒度太粗:多为组织/项目级、按月计,循环一小时就能烧掉整月预算仍「在限额内」;
- 用量面板有分钟到小时级延迟,基于它的告警总是事后才响;
- maxtokens 只限制单次调用,一万次 4K token 的调用照样烧 4000 万 token;
- 代码审查查不出运行时诱因:泄漏的 key、每轮膨胀的上下文、供应商故障期间堆积的重试、只被特定输入触发的工具调用循环。
推荐模式:预留-调用-结算(reserve → call → settle)
在每次请求发出前先按最坏情况(输入 token + maxtokens)原子地预留预算,调用成功后用真实用量结算替换估算,异常则释放预留。文中给出 guardedcall 伪代码。
关键细节
- 预留必须原子(Redis Lua 脚本或 SQL 条件 UPDATE),否则并发 worker 可全部通过检查;
- 按最坏情况预留而非平均值,长回复连续出现也不会破顶;
- 被截断的流式调用常拿不到最终 token 数,应按估算入账;
- 重试也要走预算检查,配合带抖动的退避,故障期间最多烧剩余预算;
- 多层限额:按 key 的日限额抓泄漏 key,按 run/agent 的限额抓循环,月度团队限额抓缓慢漂移;
- 监控「花钱速度」而非只看总量,对每个 key 对比自身基线;
- 预先决定预算存储宕机时放行还是拦截,可用小额 per-key 临时额度折中。
低成本的替代做法:硬性限制 agent 步数与工具调用次数;修剪/摘要对话历史防止上下文膨胀;按环境和服务拆分 API key 便于隔离溯源;对每分钟调用数设置告警。
「编程与Agent」频道最新
- Codex CLI 隐藏功能:remote-control 被赞比 Claude Code 更好用 — antirez · 2026-10-24
- mitsuhiko 实测:折叠屏 Duo 暂不支持 PWA,但可开启双屏 API — mitsuhiko · 2026-10-24
- Reddit 求荐:哪些无代码 AI Agent 平台真能用于生产环境 — Austin_Ox23 · 2026-10-24
- 开发者吐槽:Claude 写码快但失准,OpenAI Astra 空转数天 — StewartalsopIII · 2026-10-24
- 3090上跑Qwen 27B本地RAG,韩语基准打平Opus — Front-University4363 · 2026-10-24
- 用 AI 做 MVP 陷进研究兔子洞:过度优化流程而非推进产品 — SJW_Shadow_Monarch · 2026-10-24