并行 Agent 调用如何击穿预算上限:预留式扣费与三个踩坑
EveningMindless3357 · reddit · 2026-09-28
作者复盘了给 Agent 任务设美元上限时的经典并发 bug:先读已花费再判断的写法,在 5 个并行调用同时读到 $4.90/$5.00 时会全部放行,最终超支到 $5.40。
正确做法:用条件更新的「预留」替代「读取」
- 一条原子 SQL:UPDATE ... SET reserved = reserved + :estimate WHERE used + reserved + :estimate <= ceiling RETURNING ...,没有返回行就意味着没有额度,调用不发出去
- 调用结束后结算:把实际花费从 reserved 转入 used,释放多余预留
作者随后踩到的三个坑
- worker 崩溃后预留永不结算,预算被永久占用——需要给预留加过期时间并配一个回收 sweeper
- sweeper 已回收预留后的迟到结算不能二次扣减,只按实际仍持有的量递减
- 预留和记账必须幂等,否则重试会预留/计数两次
作者还给出一个快速验证方法:对 $1.00 预算、单次预估 $0.10 的任务同时发起 40 个调用,应当恰好放行 10 个。作者本人做 AgentBill(托管 preflight 预算检查),这些坑来自一线实践。
「编程与Agent」频道最新
- LLM 始终学不会的一件事:给子任务挑对模型 — DynaBeast · 2026-09-28
- 零代码做出零重力水滴玩具:Claude Code 产出 2200 行单文件 WebGL — AlexisDC · 2026-09-28
- 「AI 写了 90% 代码」是耸动噪音,Reddit 热帖吐槽统计口径 — Plenty_Line2696 · 2026-09-28
- 开源Hyperresearch让Claude Code变深度研究agent,可积累研究库 — bigaiguy · 2026-09-28
- NVIDIA 联合百家伙伴推出 Open Agent Safety Platform,软硬一体守护 AI 智能体 — nvidia · 2026-09-28
- 开发者上线 prompt 直发式产品/Agent 目录站,Agent 可自我上架 — BriefPie9937 · 2026-09-28