AI agent 成本失控:跑飞账单的解剖图
2026-10-20 — 这个问题我们描过一次轮廓:<a href="/zh-cn/blog/agent-spend-hard-limits/">你的 agent 不知道它花多少钱</a>。这一篇是解剖图——跑飞的账单具体长哪几种形状、发生过程中你能诚实计量什么、“硬上限”从仪表盘告警变成机制还差哪些东西。
失控的三种形状
- 重试循环。一个失败的测试、一个看似合理的修复、同一个失败。每一轮都合理,四十轮就是一张账单。循环里没有任何东西知道计数器在走。
- 派生子树。agent 现在像早期进程 fork shell 那样 fork 子 agent。供应商端看到六个 API 客户端,你的笔记本上看到一“便宜”会话。缺的那个数字是归属链。
- 上下文膨胀。每一轮重试都拖着更长的转录,单请求成本随着耐心近似平方地涨。模型从不提价目表,因为模型手里没有价目表。
为什么账单面板是错误的观察位
钱在供应商的计费平面上;agent 的进程只看到请求发出去。账户级预算逮住的是“这个月”,不是“跑飞的那一小时”——告警响起时,活干完了,账单已经反映了。而即便网关在给流量计量,它也说不出你机器上六个 agent 里是哪个启动了循环、哪个被派生的子进程继承了会话。缺的是归属,不是聚合。
本地能诚实数的数
数 agent 做的事,用机器实际看得见的单位:运行时长、计费请求数、客户端上报时的每次调用 token、CPU 时间、占用内存——并且把每一次越过你设定的阈值都记录在案。没有出处的数字保持“未知”,而不是悄悄变成零。这就是 20131 cost guard 今天做的事:本地、开源、只观察的组件。它记录花费形状的行为,也还不阻断任何东西——是“监控”的诚实版本,不是营销版本。记录的机制与<a href="/zh-cn/blog/agent-actions-audit-trail/">审计轨迹</a>同源。
“硬上限”真正需要什么
观察回答的是“发生了什么”。跑多个 agent 的团队需要的是:下一个动作被按住,直到人说可以——所有人机器上的一个视图,每个项目一个预算面。它是否成为一个 Team 档,是刻意保持开放的决策:预订页面上就这么写,并且只问一个问题——你愿意付费吗,或者为什么不愿意。价格不会为了落地页被发明出来,阻断动词也没有被预支:它们和这里的一切受同一套阶段纪律约束(<a href="/zh-cn/cost-guard/">cost guard 与 Team 预订</a>)。而“按住、本地判定”的回退语义要求什么,是另一篇的事——<a href="/zh-cn/blog/deterministic-fallback-when-model-fails/">模型失效时的确定性回退</a>。
如果你就是签字付钱的人
成本失控先是治理缺口,然后才是开发缺口:采购可以要求按任务估价,但没人估得准一条无法归属的进程树的花费。本地归属链加越阈记录,能把“三月 API 账单有点怪”变成一个 diff。什么样的记录内容才配得上这件事,<a href="/zh-cn/blog/what-is-agent-observability/">agent 可观测性</a>里有框架;整套运行时的全景,在<a href="/zh-cn/">首页</a>。