测试全绿却双倍退款:一次 Agent 幂等事故暴露输出层测试盲区

tom_mathews · reddit · 2026-11-15

作者自建了一个合成客服 agent(查订单、退款、发邮件)来压力测试「agent 测试」本身,植入了一个真实支付系统的典型故障:支付 API 先提交退款、再在响应前超时。agent 看到超时后不带幂等键重试,导致客户被退款两次——而它回复客户「您的 $84.00 退款已处理」,金额正确、语气得体。

核心发现:所有测试都通过了,因为它们只断言回复内容,而回复没问题;bug 藏在工具调用和支付账本里,没有任何测试去看。

最终抓住它的方法:

作者还提出三个开放问题:是否断言副作用(数据库行、工单、支付)而非仅输出?重试与幂等放在 agent、工具还是两者?CI 如何保持确定性且便宜?文末注明作者维护一个基于此方法的开源框架。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →