一个 AI 智能体该给多少预算?

给 AI 智能体设预算并不难,难的是知道该往框里填什么数。填高了,它永远拦不住任何东西;填低了,它会掐掉本来跑得好好的工作。
下面这套方法能让你得到一个说得出理由的数字,而不需要统计学学位。
一句话要点
- 从一步实际花多少钱出发,而不是从「感觉安全」出发。
- 按工具使用强度加余量:单次调用的步骤约 2 倍,重度用工具的步骤 3 到 4 倍。
- 限制智能体能循环多少轮,是一种很糟糕的控钱方式。
- 便宜的步骤限制输入,昂贵的步骤限制金额。
- 一次运行的预算不是各步预算之和,因为步骤会重复。
先搞清一步值多少钱
不同类型的工作,成本差异远比人们预期的大。下面是构造模型给出的示例,不是生产测量值,但重点在于它们之间的跨度。
| 步骤类型 | 做什么 | 每次典型成本 |
|---|---|---|
| 分类 | 读一条消息,返回一个标签 | 约 0.0003 美元 |
| 带检索的起草 | 取一份文档,写一段回复 | 约 0.013 美元 |
| 多工具调研 | 大约六次工具调用,再做总结 | 约 0.27 美元 |
| 长文档摘要 | 一次大读取,一次回答 | 约 0.04 美元 |
| 浏览器步骤 | 十几次页面操作,每次都带一份快照 | 约 1.67 美元 |
一个分类步骤和一个浏览器步骤相差一千倍以上。用同一个预算数字覆盖两者毫无意义,这正是预算应该按步骤设、而不是按智能体设的原因。
你的余量不是 2 倍
多数人把典型成本乘以二。对于「调用一次就结束」的步骤,这大致正确;对任何使用工具的步骤,这就错得很远。
原因在于每一次工具返回的结果都会被带进之后所有调用,所以成本不是随工具调用次数同步增长,而是增长得更快。把一个重度用工具的步骤的调用次数翻倍,其成本大约会变成四倍。
| 步骤类型 | 如果步数是平常的两倍 | 应留的余量 |
|---|---|---|
| 一次调用,不用工具 | 大约两倍成本 | 2 倍 |
| 带一两次检索的起草 | 大约三倍半 | 3 到 4 倍 |
| 重度用工具的调研或浏览 | 大约四倍 | 3 到 4 倍 |
不管哪种情况,实际结论都一样:「把最大迭代次数稍微调高一点」不是小改动,而是把上限大约变成四倍的决定。

来自真实运行的按智能体花费、token 与工具调用。这就是定预算的输入:你设的数字应当来自你自己的分布,而不是猜测。
迭代次数为什么不适合用来控钱
很多工具只允许限制循环轮数。它看起来像个限制,一算账就会发现几乎不是。
| 步骤 | 预期成本 | 触及 100 轮上限时的成本 |
|---|---|---|
| 多工具调研 | 约 0.27 美元 | 约 47 美元 |
| 浏览器步骤 | 约 1.67 美元 | 约 101 美元 |
一个允许六十倍预期账单的上限,保护不了任何东西。如果你唯一的控制手段是轮数,就把它设在真实工作实际需要的量级附近(简单查询几次调用,做一次比较十到十五次),而不是 100 这种整数。
便宜的步骤限输入,昂贵的步骤限金额
存在一个下限,低于它金额限制在物理上就无法生效。
预算只能拒绝下一次调用,所以在触顶之前必须还留得下几次调用的空间。经验法则:预算至少应为该步骤可能发出的最大单次调用的三倍。低于这个值,第一次调用就可能把上限撑破,预算永远轮不到出手。
对便宜的步骤来说,这个下限高于步骤本身的成本,所以金额限制只是做样子。那里真正有效的是限制输入:限定这一步能拿到多少文本、能写回多少内容。这样一来最坏的单次调用会下降一个数量级,下限也随之下降。
| 步骤类型 | 有效的控制手段 | 原因 |
|---|---|---|
| 分类、短查询 | 限制输入体量 | 步骤本身已受限,金额限制咬不住 |
| 长文档处理 | 限制输入体量 | 只有一次大调用,输入就是成本 |
| 调研、浏览、一切会重复的 | 限制金额 | 成本来自重复,只有金额能约束它 |
运行预算不是各步预算之和
精心设计的预算通常就毁在这里。
步骤会重复。位于遍历五十条数据的循环里的步骤会运行五十次;一个展开的分支每条分支运行一次。所以运行上限必须沿着工作流中最昂贵的路径来算,把重复计入,而不是把画布上画出的每个步骤各算一份加起来。
而当一次运行要展开时,请在开始前拒绝,而不是中途打断。半路砍断一次展开,留下的是一组随意完成的分支,谁能活下来取决于启动顺序。提前拒绝留下的是可以重试的东西。
怎么把数字定下来
- 收集几次真实运行。 每一步记下:输入 token、输出 token、工具调用次数、使用的模型,以及它是怎么结束的。
- 不要按平均值定。 成本分布是偏斜的:多数运行便宜、少数昂贵,所以平均值远低于风险的中位区间。按它定会掐掉大约三分之一的正常工作。
- 对样本量诚实。 要谈「最坏情况」而不脸红,需要几百次运行。低于这个量,就按结构性最坏情况(模型物理上能发出的最大一次调用)来定,而不要假装自己有一个分布。
- 留意叠加效应。 掐掉 5% 步骤的上限听上去可以接受,直到你有十个步骤:那就是 40% 的运行会在某处撞上上限。按步骤的上限必须比你在运行层面的容忍度宽松得多。
- 测试它。 故意给某一步喂过量输入,确认你会收到一个干净、点明具体限制的拒绝。没测过的上限只是加了个数字的直觉。
常见问题
一个智能体合理的起步预算是多少?
取它最贵那一步的预期成本,若使用工具就乘以三到四,按步骤设置。然后沿最长路径设一个运行预算,把所有会重复的部分算进去。
为什么不干脆设个宽松预算然后不管?
因为宽松的预算只在损失发生之后才触发。上限的价值在于它拒绝掉的那次运行,而设在预期成本六十倍的上限不会拒绝任何值得拒绝的东西。
我的智能体老是触及预算,该调高还是该修?
在调高任何东西之前,先看看什么变了。撞上限通常意味着输入变大了,或者智能体开始打转,这两件事都该修,而不是该出钱。
是按步骤设预算,还是每个智能体一个就够?
如果步骤性质不同,就按步骤。分类和浏览之间成本差一千倍,一个数字不可能对两者都合适。
这些数字多久复核一次?
每当你更换模型、改变提示词体量,或改变这一步被允许做的事时。这三者都会移动成本,而按上个季度形状设定的预算,不是漏水就是勒死。
下一步
只有当上限真能停下一次运行时,定预算才有意义。先检查这一侧:如何避免智能体超支 讲清了真正的天花板由什么构成,以及如何证明你的确实有效。