工具调用失败怎么办:故障三分类 + 重试/挂起/死信三种救法(Agent 容错实战)
前言
Agent 干活靠调工具,工具比模型更容易失败:网络抖动、对方限流、服务下线、参数不对。失败不可怕,救法配错了才可怕。这篇讲我平台的工具失败处置体系:故障三分类(可枚举清单)、自动重试/挂起等人/死信隔离三种救法,外加两道前置保护(并发闸 + 探针查活)。全部真实工程。
一、失败三分类(可枚举清单)
按"还有没有救"分三类,按错误类型和关键词归类,清单之外一律按最严重处理(接力协作篇讲过故障三档的框架,本篇站在工具层展开更细的分类与救法):
| 抖一下(临时故障) | 重试大概率好 | 超时、连接重置、临时限流 |
| 吵起来(分歧未裁) | 重试没用,问题在有分歧 | 权限冲突、资源被锁 |
| 真死了(不可恢复) | 重试一百次结果一样 | 参数错误、接口改版、服务不存在 |
二、三种救法
第一类:自动重试。 错误喂回执行流程重试,有次数上限、有退避;到上限还不行就承认失败转下一类。重试是希望,不是执念。
第二类:停下来等人。 权限冲突类整场挂起:现场保存好,弹人审批——批准接着跑,拒绝换条路,从挂起点原样继续。"等人"不是失败处理,是这类失败的唯一正确救法。
第三类:隔离与告警。 中止执行、中文说清为什么失败、停在第几步;带现场进死信表,修好重投(死信机制见前篇容错设计)。
三、两道前置闸:让失败少发生
四、一张处置图
工具失败 → 分类 → 抖的:重试(上限+退避)
→ 吵的:挂起等人(现场保存+审批)
→ 死的:隔离告警(死信+重投)
前置:并发闸 + 探针查活 + 装配 fail-closed。
总结
口诀:失败分三类,救法各不同——抖的自动重试,吵的挂起等人,死的死信重投;并发闸限流,探针常查活,装配不带病。
下一篇是安全系列的收口:有些操作机器连试都不该自己试——HITL 人机协同,Agent 的安全阀怎么设计。
你的工具调用失败怎么分类的?评论区聊聊。
网硕互联帮助中心





评论前必须登录!
注册