本期实测 6 种主流自主智能体的预算治理栈,核心发现是反共识的:告警救不了账单。2026 年公开的失控案例已经规模化——4 个 Agent 的 LangChain 循环空转 11 天烧掉 4.7 万美元、一个 Agent 扫描个人家庭网络产生 6531 美元 AWS 账单、Cursor 用户一个周末烧光 4200 美元。根因不是模型贵,而是 二次方膨胀:每次推理都把累积上下文整体重发,N 步循环的总 token 与步数的平方成正比。三大框架(LangChain、CrewAI、AutoGen)出厂都不带逐任务硬预算,可观测性只能"事后通知"却拦不住正在空转的内层循环。唯一能真正止血的,是部署在 API 调用路径上的同步熔断层——每请求拦截,延迟低于 1 秒。
| 预算栈 | 熔断层级 | 同步性 | 粒度 | 止血延迟 | 误杀风险 | 上手成本 |
|---|---|---|---|---|---|---|
| 云厂商预算告警(AWS Budgets/Azure) | 账号级 | 异步(小时级邮件) | 整账号 | 数小时 | 低 | 极低 |
LangGraph recursion_limit+回调 |
框架级 | 半同步(每轮) | 任务 | 1 轮 | 中 | 中 |
CrewAI max_rpm/max_iter |
框架级 | 速率级 | Agent | 分钟 | 高 | 低 |
| AutoGen 终止条件 | 框架级 | 同步(每消息) | 对话 | 1 步 | 中 | 中 |
OpenAI Agents SDK max_turns |
框架级 | 同步(每轮) | 会话 | 1 轮 | 高 | 低 |
| 代理网关预算路由(LiteLLM/网关) | 运行时级 | 强同步(每请求) | 请求/Agent | <1s | 可控 | 中 |
智能体烧钱的第一性原因是上下文累积导致的二次方计费。一次 chat 调用只发送当前轮上下文;一次 agent 循环则不同——第 1 步发送 c 个 token,第 2 步发送 c+Δ,第 N 步发送 c+NΔ,所有历史步骤都被作为上下文重发。总账单约为 Σ(c+iΔ) ≈ c·N + Δ·N²/2,N² 项占据主导。一个 50 步循环、每步累积 50K 上下文,会向推理端累计计费约 1.25 亿 token 的上下文输入。这正是"AI Agent 烧 token 比对话快 10–100 倍"的数学来源。后果是:把循环多跑一倍,账单不是翻倍,而是接近四倍。这意味着任何"按步数线性预估成本"的预算模型都会系统性低估一个数量级——而大多数团队的成本预估恰恰是线性的。
主流建议是"加监控、加告警",但实测发现这是最贵的安全感错觉。告警链路是异步的:Token 计数→指标聚合→阈值判断→Slack/邮件→人类看到→人工停止,全链路延迟通常 5–30 分钟。而智能体的内层推理循环是亚秒级紧循环,5 分钟内可以空转数百步。Waxell 记录的 4.7 万美元案例正是如此——告警在第 3 天就触发,但没人能"在循环中间"把 11 天长任务安全停掉,只能等它自己走到自然结束。可观测性回答的是"我花了多少",预算治理回答的是"还剩多少、下一步还让不让发"。两者不等价。真正的分水岭是同步拦截:在 LLM API 调用返回前,先查预算余额,超额则当场拒绝该请求并抛出可恢复异常。延迟必须小于一个推理步。
# 同步熔断 vs 异步告警的本质差异
def agent_step(state):
budget.check_and_block_sync(state.tokens_used) # 调用前阻塞,<1s
resp = llm.invoke(state.context) # 超额则此处抛 BudgetExceeded
return resp
# 告警版:llm.invoke() 照常执行,预算通知发到 Slack,循环继续烧
LangGraph 是六栈里原生治理能力最成熟的一个。它同时提供 recursion_limit(图的最大节点跳转数,硬上限)和回调钩子(on_llm_end 可累计 token)。问题在于默认的 recursion_limit 只数图节点、不算 token,而二次方膨胀恰恰发生在单个节点内的多步循环。补救办法是在回调里挂一个 token 累加器,超过阈值抛 GraphRecursionError。这套方案是"半同步"的——检查发生在每轮边界的回调里,止血延迟约等于一轮(通常数秒到数十秒)。优点是与图编排原生融合、可在特定节点精细降级(如切到便宜模型);缺点是只对走 LangGraph 调度的调用生效,任何旁路直连 LLM 的子组件(检索器、嵌入器、第三方工具内部调用)完全绕过,形成预算盲区。
CrewAI 用 max_rpm(每分钟请求数)和 max_iter(最大迭代)做粗粒度约束,看起来是"限流",实测却是最容易误判的一档。max_rpm 限的是请求频率而非成本——一个 Agent 在低 RPM 下仍然可以靠超长上下文把单请求成本推到几十美元。更隐蔽的是 CrewAI 的任务通常会让"最贵的角色"反复调用同一个模型,team 级别的总成本和角色级 RPM 几乎不相关。社区给出的正确解法是按角色注入代理:每个 Agent 角色走独立 API key,在代理层对该 key 设硬性美元上限。这相当于承认了框架层治不了成本,把治理责任外推到网关。CrewAI 的价值在编排不在治理——把它当预算管家会吃大亏。
AutoGen 0.4 的 TokenCountTermination 和 MaxMessageTermination 是六栈中唯一把 token 作为一等终止条件的框架原生能力,且是真正的同步语义——每条消息发送前评估,超额立即终止会话。止血延迟约一个消息步。它解决了 CrewAI/LangGraph 都没解决的"以 token 计量的硬停止"。短板同样明显:终止条件是对话级的,粒度粗,无法给某个子 Agent 单独分配预算,也无法在超额时"降级而非终止"(只能戛然而止)。对于单线程、长对话的研究型/客服型自主智能体,AutoGen 的原生预算闸门是开箱即用的最优解;对于多 Agent、多分支、需要优雅降级的复杂编排,它的"一刀切终止"反而会误杀正常任务。
OpenAI 官方 Agents SDK 主打 max_turns(最大轮数),这是六栈里最不像预算治理的预算参数。Turn 数和成本之间的映射极弱——一个 turn 内可以做一次轻量工具调用,也可以做一次吞噬百万 token 的深度研究。把 max_turns 当预算用,等于"用菜的数量限制总餐费",在长上下文检索、浏览器自动化这类单 turn 就能爆量消耗的场景下完全失守。官方文档的隐含假设是"调用方自己在网关层兜底成本",但大量开发者照搬 max_turns=10 就上线,结果周末醒来收到三位数美元账单(tokenfence 记录的 247.83 美元周末案例即是此类)。结论:官方 SDK 把成本治理明确甩给了运行时层——这与第 7 节的代理网关方案形成互补,而非替代。
把上面四栈的共性失败抽象出来,结论清晰:预算治理必须在 LLM API 调用的同步路径上,框架层做不到的就下沉到代理层。LiteLLM、Vercel AI Gateway、自研路由代理这一档,能在每个请求出栈前查询预算余额(按 API key / Agent ID / 任务 ID 维度),超额则同步返回 429 BudgetExceeded,延迟通常 <1 秒,且对所有框架、所有旁路调用统一生效。它还能做框架层做不到的事:超额时降级而非终止(Sonnet→Haiku 路由)、按 Agent 角色分配子预算、把"剩余预算"作为上下文喂给 Agent 让它自行收敛。代价是要维护一层独立基础设施和计费对账,但这正是"自主智能体能否上生产"的分水岭——没有同步熔断的自主智能体,本质上是一台没有断路器的用电设备。
# LiteLLM 路由:按 Agent key 设硬预算,超额降级而非崩溃
from litellm import Router
router = Router(model_list=[...],
routing_strategy="cost-based-routing",
fallbacks=[{"sonnet-orchestrator": ["haiku-cheap"]}],)
# 网关层在 budget_tracker 命中超额时,先把请求路由到 fallback 模型,
# 次级预算也耗尽才同步抛 BudgetExceeded —— 框架层永远拿不到这个时机
即便治理层做对,还有最后一道暗坑——计价单元本身。Devin 在 2026 年把入门价从 500 美元/月砍到 20 美元/月(96% 降幅),但真实成本藏在 ACU(Agent Compute Unit,智能体计算单元) 里:按任务计费,实际月支出被 ACU 推回到 300–500 美元。ACU 的危险在于它不与 token 线性挂钩,也不与任务成败挂钩——失败的、重试的、冗余探索的循环照常消耗 ACU。这等于把"二次方膨胀"的风险从你的代码层转移到了供应商的黑箱计量层,你连"这次任务烧了多少 ACU"都难以及时对账。对应到训练营/产品变现:凡是把成本定价建立在"每月 X 美元订阅"上的自主智能体产品,都会在重度用户身上被 ACU 反噬——必须改用"任务包 + 硬预算封顶 + 余额可视化"的三段式计价。
flowchart TD
U[用户/调度器] --> AG[自主智能体循环]
AG -->|每步推理请求| CB{同步预算闸门<br/>网关层 <1s}
CB -->|余额充足| LLM[LLM 推理]
CB -->|接近阈值| DEG[降级路由<br/>Sonnet→Haiku]
CB -->|超额| BLK[同步抛 BudgetExceeded<br/>可恢复中断]
LLM --> ACC[(token 计量器<br/>按 Agent/任务/账号维度)]
DEG --> LLM
BLK --> AG
ACC -->|实时余额回灌| CB
ACC -->|异步| ALERT[告警层<br/>Slack/邮件 数分钟]
style CB fill:#fde68a,stroke:#b45309,stroke-width:3px
style ALERT fill:#fecaca,stroke:#991b1b
style LLM fill:#bbf7d0,stroke:#166534
图中黄色节点是唯一能真正止血的同步闸门,红色告警节点滞后数分钟、无法阻断空转循环——这正是"告警救不了账单"的可视化。
TokenCountTermination,原生同步、零额外基础设施,是性价比最高的开箱方案。recursion_limit 双保险;网关负责同步熔断与降级,框架层负责图结构护栏。max_turns 当预算,必须前置一层代理网关做美元级硬封顶,否则周末账单不可控。一句话收口:自主智能体的成本失控不是"忘了加监控",而是"把异步告警当成了同步熔断"。能在一秒内拒绝下一个请求的那层,才是真正的预算管家。
本文由「51学通信」原创出品,站长爱卫生(微信 gprshome201101)。下一轮将转向多智能体协作系统的最新架构与模式。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
