Agent 卡死的 5 种模式
上一节那条漂亮的 ReAct 链路是“样板间”。真上线跑三个月,你会把这五种翻车姿势看个遍——先认识它们,才不会半夜被客服群炸醒。
1死循环:查了八遍库存还在查▶
🎬 现场:客人问“什么时候有货”,Agent 反复调 check_inventory,每次结果都是缺货,每次都想“再查一次确认下”——Token 账单在燃烧,客人干等。
药方:循环上限(单任务最多 8 轮)+ 重复检测(连续两次同样调用直接打断)+ 缺货就给替代方案或到货提醒。
2幻觉工具:调用根本不存在的功能▶
🎬 现场:Agent 想取消订单,调用了 cancel_order——但你根本没给它接这个工具。它以为办了,其实什么都没发生,还回复客人“已为您取消”。
药方:工具白名单(只认注册过的工具名)+ 未注册调用直接报错注回 + 高危动作强制人工确认。
3参数格式错:尺码传成“中码”▶
🎬 现场:工具要求 size 取 S/M/L/XL,Agent 传了“中码”或“M码”,系统查无结果,Agent 误以为“没货”,瞎编一个补货日期。
药方:工具描述写清取值范围 + 参数校验失败时返回人话错误(“尺码只接受 S/M/L/XL”),让 AI 自我修正。
4信息不足硬答:没有数据就编▶
🎬 现场:客人的订单号输错了一位,系统查无此单,Agent 不好意思说查不到,开始凭“语气”安抚客人,越描越黑。
药方:店规写明“查不到就老实说查不到,请客人核对信息“——把”承认不知道”变成规定动作(呼应第一篇章幻觉三兄弟)。
5系统异常没兜底:API 挂了 AI 疯了▶
🎬 现场:ERP 接口超时返回 500,Agent 收到一堆报错码,把它当成“数据”读给客人听,或者崩溃沉默。
药方:超时控制(10 秒)+ 异常翻译层(500 → “系统繁忙,稍后回复您”)+ 连续失败自动转人工。
五种翻车对应的护栏,其实就五条,加进 Agent 的运行框架里:
护栏防什么怎么设(参考值) 循环上限 死循环 单任务最多 8-10 轮,超限强制收口或转人工 输出截断 话痨跑偏 单次回复限 300 字,超限截断重来 超时控制 系统卡死 单次工具调用 10 秒超时,整单 2 分钟封顶 中断恢复 半路崩盘 每步结果落库,崩了从断点续跑,不从头烧 Token 转人工闸口 一切兜不住的情况 连续 2 轮无进展 / 客人情绪激烈 / 涉及钱,自动转
- 五种翻车:死循环、幻觉工具、参数格式错、信息不足硬答、系统异常没兜底。
- 根因都指向脚手架:翻车不怪模型怪框架——护栏是工程问题,不是算法问题。
- 五道护栏:循环上限、输出截断、超时控制、中断恢复、转人工闸口。
- 转人工不是失败:它是设计的一部分——好 Agent 知道自己什么时候该认输。