工作流系统报错不抛异常导致静默失败,作者设计 Matrix 方案:读取权威系统(邮箱、数据库)验证「执行日志」声称的结果是否真实,共三种判定:矛盾、确认、不确定。
那些数字不是我的。它们来自社区里一位帮人善后的顾问。他还说了一句扎心的话:诊断时间是收不了费的,你自己扛。
这个月有三个帖子,说的是同一类问题:
一个工作流连续 28 次失败,三天后才有人去看。一个评分工作流连续六周把每条线索都打成零分。一个 Agent 跟客户说"我看到您被扣费了",实际上两次查询都返回了 403——运行状态却是 COMPLETED。
这些没有一条是红色的。这就是全部问题所在。你的错误工作流是在异常时触发的,而这些根本不抛异常。
发现时间:48 小时到 3 周。通常是客户告诉你的。诊断时间:6–15 小时翻执行记录,无法计费。事故本身的损失:$2,500–8,000。
每一次事故。按每年四次算,就是 $10,000–32,000,外加 60 小时没法收钱的工时。
Matrix 拿到运行声称的结果——"邮件已发送"、"记录已更新"——然后去读权威系统来验证是否真的发生了。不是运行自己写的执行日志,而是真正的邮箱。
三种判定:矛盾、确认、不确定。每种判定都附有证据。
三种检查中有两种不需要访问任何外部资源:
声明说调用了工具但实际上从未调用过——没有调用本身就是证据。查询返回了 403,然后运行却陈述了如果查询成功会显示什么。调用完成了,结果是被拒绝。大多数包装器会把这种情况吞掉。
第三种需要一个连接的邮箱:工具被调用了,返回了 200,但记录并不在那里。
如果 Matrix 无法证明这条追踪是完整的,或者某个工具的名字它不认识,它会拒绝判定,而不是把你的正常工作流说成骗子。在紧要关头,一个对自己的不确定性过于乐观的监控没有任何价值。
Gmail 是唯一的外部适配器。它抓不到"调用正确但参数错误"的情况——收件人格式正确但收件人错了,真正发了邮件,Gmail 也认可。而且如果某段文字从未被发送出去,里面包含的虚假声明也没有任何结果可以回头对照。
一行代码粘贴到 Cursor 或 Claude Code,它就会自己完成配置。或者手动调用四次,支持 TypeScript 或 Python。
matrixverify.dev — 免费,已有 20+ 用户,我宁愿它被人用坏也不想被人无视。
乐意拿你的一条执行记录跑一下,告诉你在里面发现了什么,包括没发现什么的情况。