你的智能体刚刚重试了。它把工作做了两遍吗?

Reddit r/AI_Agents 工具

摘要

作者分享了一次因重试导致重复扣费的线上事故,并介绍其正在构建的 FetchSandbox 工具——通过确定性故障注入检查工作流重试时的幂等性是否真正生效。

凌晨 2 点,我收到了一条 PagerDuty 告警,原因是一次短暂的数据库错误导致后台任务重复执行。这个工作流此前已经稳定运行了好几周。测试通过了,CI 也全绿。第 2 步提交了一次数据库写入。CDC 捕获了这次已提交的变更,发布了一个事件,消费者处理了它。第 3 步在工作流到达持久化检查点之前失败了。编排器重试了第 2 步。又一次写入提交成功,CDC 再次发布事件,消费者再次处理。三个客户记录处于异常状态,还有一笔费用被扣了两次。仅凭一个 200 状态码,无法判断最终业务状态是否正确,也无法判断某个操作是否只生效了一次。后台任务、CRUD 工作流,以及任何重试已提交步骤可能产生第二次效果的场景,都会出现这种问题。智能体会让问题更严重,因为它们生成并运行这类逻辑的速度很快。幂等键、事务发件箱模式和去重机制,就是为防止这类问题而存在的。验证时要问的是:在这样的故障序列下,这些机制是否真的有效。我正在围绕这类问题的确定性检查构建 FetchSandbox。团队定义精确的规则,比如客户更新只提交一次。在受支持的执行路径上,FetchSandbox 会注入一个受控故障,你观察应用重试,然后读取实际保存的状态。结果会标明通过、失败或未测量。验证缺口会明确列出。工作流发生变化时,再次运行同样的检查。我们希望与设计合作伙伴一起,进一步完善这里涉及的数据库故障注入能力和 CDC 专用技术栈。如果你是工程负责人或工作流开发者,正在处理类似情况,你们团队目前是怎么发现这类问题的?
查看原文

相似文章

无需连接真实账户即可测试 agent 工作流

Reddit r/AI_Agents

开发者介绍 FetchSandbox——一个用于安全测试 AI agent 构建的工作流的沙箱环境,无需连接真实账户即可验证状态、回放 webhook 并捕获重复扣费/重复邮件等问题。

用智能体集群进行属性测试

Lobsters Hottest

作者展示了如何用 AI 编码代理(agent swarms)构建属性测试基础设施,在不消耗额外 token 的情况下自动发现真实开源项目中的正确性 bug,仅在 Codex、uv、Prometheus、Router 等项目中就发现了数十个已合并修复的缺陷。

@svpino:我构建了一个处理退款的简单智能体,结果它没能正常工作。我来给你看看我是怎么搞砸的,又是怎么修好的。

X AI KOLs Following

作者分享了自己构建退款客服智能体的失败教训:在单一智能体架构中,工具返回的仓库备注(存在提示注入风险)覆盖了用户的明确指令,导致错误退款。修复方案是将职责拆分给接待、订单核查和退款处理三个相互隔离的智能体,体现了多智能体架构中的职责分离原则。