写 Agent 的人几乎都遇到过同一种场景:任务报错 → 重试 → 又报错 → 换个写法重试 → 还是错……一小时后回来看,它还在原地打转,token 烧掉一大堆,问题纹丝不动。
这不是模型笨,是「重试策略」没设计。我给手头几个 Agent 装了三道止损阀,效果立竿见影。
第一道:同一种方法最多试 3 次。关键在「同一种方法」。很多 Agent 的失败循环不是因为没重试,是因为它每次都用几乎一样的方式重试——改个措辞、加个提示、换个问法,本质没变。我定死规则:同一思路连续失败 2 次,第三次之前必须强制换思路;不换思路就不许重试。
第二道:失败要「降级上报」,不是「死磕到底」。让 Agent 在卡住时主动停下来,把「卡在哪一步、已经试过什么、下一步想怎么试」整理成一句人话交回来。很多时候真正该做的不是继续跑,而是等人给一个决策。死磕一小时,不如停 30 秒问一句。
第三道:外部副作用必须回读验证。这条最隐蔽——工具明明返回「成功」,实际啥也没发生。比如「已发送」「已写入」「已部署」,这些都不能只信返回值。设计 Agent 时就把「回读确认」写进流程:发完查一下、写完读一遍。返回 200 不等于任务成功。
止损阀的本质,是承认 Agent 会犯错,然后用工程手段把「犯错的成本」压到最低。省钱省时间是一方面,更重要的是:你不用再盯着它了,它自己知道什么时候该停下来。