给 AI 智能体设置支出上限和紧急停止开关
每个生产环境的智能体上线前都需要三道限制:每次运行和每天的模型支出硬上限、每次运行的最大步数,以及无需重新部署就能让它停下的紧急停止开关。没有这些,一个失控的循环就能在一夜之间花掉一个月的预算。
学习如何把 AI 智能体用于营销、销售和产品。每周我都会与 5,400+ 位读者分享我学到的东西。
✓ 请查收邮箱 — 点击确认链接以完成订阅。
✓ 订阅成功!
✓ 您已在订阅列表中。
没有限制的智能体,就像把信用卡交给一个从不睡觉、动作飞快的实习生。大多数时候都没事。但只要有一次,某个工具返回了智能体看不懂的错误,它就会重试、读取错误、再重试,一直持续到你的 API 余额耗尽。
我运行着很多智能体,我的规则很简单:没有支出上限、步数限制和紧急停止开关,任何智能体都不能上线。 这三样都不难加。省掉它们才是昂贵的选择。
智能体为什么会超支
普通脚本每次做的工作量都一样。智能体自己决定做多少工作,这正是用它的意义,也是风险所在。几乎所有失控的账单都出自四个原因:
- 重试循环。 工具失败,智能体换个略有不同的输入再试,又失败,如此反复。
- 上下文不断变长。 每一步都会加入对话,所以每次调用都比上一次更贵。40 步的运行成本远高于 1 步运行的 40 倍。
- 任务扇出。 智能体派生子任务,每个子任务又派生更多子任务。
- 触发器触发过于频繁。 定时任务或传入的 webhook 本该运行 5 次,结果运行了 500 次。
每次调用成本背后的数字,我在 AI agent cost math 里拆解过。本文讲的是上限,不是平均值。
限制一:硬性支出上限
为每个智能体设两个数字:每次运行的最高支出和每天的最高支出。
根据这项工作的价值来定。如果智能体帮你整理收件箱、每天省下二十分钟,就不该允许它单次运行花 40 美元。一个不错的起点是正常运行成本的五倍。如果一次典型运行花 20 美分,就把单次运行限制在 1 美元、每天限制在 10 美元。第一次因为上限而挡住正常工作时,你再提高它就行,这是个好问题。
可以在两个地方执行:
- 在服务商那里。 在 Anthropic 或 OpenAI 控制台设置每月支出上限。这是你的兜底防线,两分钟就能完成。即使你自己的代码有错,它也能挡住最坏的情况。
- 在你自己的代码里。 在一次运行中累计已用的 token,换算成美元,超过单次运行上限就停止。把当天的总额存到持久的地方,这样重启不会清零。
限制二:最大步数
步数上限是最简单的保护,能抓住美元上限发现得太晚的循环。先确定一次健康运行最多会走多少步,加上余量,然后在那里停下。
如果你最长的正常运行用了 12 次工具调用,就把上限设为 25。智能体触及上限时,别让它悄悄继续。结束这次运行,记录原因,并给自己发条消息。触及步数上限的运行就是一份错误报告,你需要读它。
同样的思路也适用于重复的相同调用:如果智能体连续三次用相同的输入调用同一个工具,就让它停下。那是循环,不是进展。
限制三:无需部署的紧急停止开关
凌晨两点出问题时,你不想改代码、重新构建、再部署。你想拨动一个开关。
紧急停止开关就是一个标志位,智能体在每一步开始时检查它,而不只是在一次运行开始时。标志位说停,智能体就停。它存在哪里不那么重要,重要的是你能用手机修改它:键值存储里的一个键、数据库里的一行,或者平台允许你不重新部署就能编辑的环境变量。
注意这些细节:
- 经常检查。 只在启动时读取的标志位,无法停止已经在进行的运行。
- 让停止是安全的。 智能体应该完成或回滚正在进行的操作,而不是留下发了一半的邮件或订了一半的预约。
- 失败时关闭。 如果智能体读不到标志位,就停下。标志位存储坏了,不应该意味着支出不设限。
- 测试一次。 在预发布副本上拨动开关,看着它停下。没测试过的紧急停止开关只是一种希望。
相关的另一道控制,审批环节,我在 human-in-the-loop agents 里讲过。审批拦住错误的操作,上限拦住错误的支出。两者都需要。
加上告警,让你第一个知道
限制保护你的预算,但你仍然需要知道它们何时触发。在达到每日上限的 50% 和 80% 时发消息,每当某次运行被步数限制或紧急停止开关切断时也发。然后去读。你已经习惯忽略的告警毫无价值,所以如果某个告警总是触发,就修复原因或调整限制。
如果你还用追踪 ID 记录每一步,就能准确看出是哪次运行烧了钱。这套做法我写在 how to debug an AI agent in production 里。
一次加上三道限制的提示词
你不必自己写。在放着智能体代码的文件夹里打开 Claude,粘贴下面这段:
Read my agent's code. Add three safety limits and show me every file you change:
1. A per-run and per-day spending cap, computed from token usage. Read the limits
from configuration, and stop the run with a clear logged reason when either is hit.
2. A maximum step count per run, plus a stop if the same tool is called with the same
input three times in a row.
3. A kill switch: a flag checked before every step that stops the agent safely.
If the flag can't be read, the agent must stop.
Then list what you assumed about where the flag should live, and give me a short
checklist to test each limit on a non-production copy.信任结果之前,检查三件事:美元计算是否用了你所用模型的当前价格(模型可能会瞎猜),标志位是否每一步都读取,以及每道限制你是否都亲眼看它触发过一次。模型很乐意写出一个永远不会触发的上限。
从你能接受的最严格数字开始
第一天就把限制设得严一些,再根据实际证据放宽。拦住一次正常运行的上限,只会让你花几分钟。缺少上限,则可能一夜之间花掉一个月的预算。在智能体接触任何真实内容之前,先把限制装上,其余的构建会安心得多。
学习如何把 AI 智能体用于营销、销售和产品。每周我都会与 5,400+ 位读者分享我学到的东西。
✓ 请查收邮箱 — 点击确认链接以完成订阅。
✓ 订阅成功!
✓ 您已在订阅列表中。
相关文章
将AI实战手册发送到您的邮箱
学习如何把 AI 智能体用于营销、销售和产品。每周我都会与 5,400+ 位读者分享我学到的东西。
请查收邮箱。
我们已向您发送确认邮件 — 点击其中的链接以完成订阅。如果一分钟内没收到,请检查垃圾邮件。
订阅成功。
欢迎 — 下一期很快就会送达您的邮箱。
您已在订阅列表中 — 每周三留意查收。