按会话限制工具重试次数,帮我避免了失控的智能体费用

Reddit r/AI_Agents 工具

摘要

一位开发者分享了关于按会话而非按单次调用限制工具重试次数的教训,以防不稳定的端点导致费用失控,并建议为每个会话设定重试预算,一旦耗尽就果断报错。

这个教训我学得很头疼。有个智能体调用某个工具,P50 时表现正常,但 P95 时很不稳定。我的重试逻辑没有上限,任何失败都会重试——这在正常情况下很安全,直到一次降级会话遇到了一个频繁半失败的工具。有一次会话产生了大约 200 次工具调用,我后来才注意到,大部分都是重复调用同一个不稳定的端点。就这样,一次简单的超时悄然变成了一笔真正的费用。修复方法很平淡无奇:为每个会话设定重试预算,而不仅仅是按单次调用。一旦某个会话耗尽了预算,它会果断报错,而不是在后台默默消耗。上线第一周就又捕获了两次失控循环。为什么按调用次数限制不起作用?因为每次单独重试成本很低,所以按调用次数的上限永远不会触发。成本累积在一个坏掉的会话中,只有会话级别的预算才能发现它。各位是如何限制的?按工具、按会话,还是设定一个全局令牌/成本上限直接终止运行?我试图找到一个最不让人意外的默认方案。
查看原文

相似文章

代理的重试逻辑会随代理一起消亡

Reddit r/AI_Agents

作者分享了将一个具有写入权限的 AI 代理投入生产环境后的经验教训,指出当进程终止时,代理循环内部的重试逻辑会失效。他们主张将有副作用的工具调用视为带有幂等键的持久后台任务。