failure modes & fallback
"失败"不是一个统一概念——把所有失败都重试,是最常见的错误。失败至少分四类,每类处理方式完全不同:
下面给一个失败场景,你判断属于哪类、该用哪种回退,提交看选对没有。
确定了失败类型,回退还要按"代价从小到大"分级,别一上来就终止,也别死磕重试:
| 级别 | 动作 | 适用 | 代价 |
|---|---|---|---|
| L1 重试 | 指数退避后重试 | 瞬时失败 | 低(多烧点 token) |
| L2 换路 | 改输入/换工具/换子任务 | 逻辑失败 | 中(重新规划) |
| L3 降级 | 返回简化结果/部分完成 | 资源失败、超时 | 中(结果不完整) |
| L4 终止 | 停止并告警,留 trace | 安全失败、死循环 | 高(任务失败) |
关键:每级有最大尝试次数,L1 最多 3 次,L2 最多 2 次,到了上限就升级,别在低级死磕。死磕是 Agent 烧 token 的头号原因。