背景:我在测试一个基于 LangChain 的旅行 Agent,给它的任务很简单——
订一张下周三从北京到上海的机票,选最便宜的。
Agent 开始工作了。我去开了个会。
回来发现
邮箱里有 3封订单确认邮件。
全部是同一天,同一航班,同一价格。
查看 Agent 的执行日志:
- 搜索航班 ✅
- 选择最低价 ✅
- 填写信息 ✅
- 提交订单 ✅
- 等待确认…… 超时 30 秒
- 判断:任务未完成,重新执行
- 重新搜索航班……
Agent 的逻辑:没看到确认结果 = 任务失败 = 重试。三次确认邮件全部发去了垃圾邮件文件夹。
教训
- 给 Agent 的工具必须有幂等性检查
- 订单类操作要加人工确认节点
- 重试逻辑不能只看"有没有成功",还要检查"是否已经执行过"
最后: 退票手续费加起来比原价高了40%,Agent 帮我省下的机票差价完全不够。