当程序没有崩溃,它已经失败了
上个月某个凌晨,一个 cron 任务跑完了,状态码是 0,日志没有异常,但下游收到的数据全是错的。 没有人收到告警。任务本身没有”失败”。它完美地执行了一条错误的指令。 这就是 agent 调试和传统软件调试的根本区别。传统程序出问题,它崩溃给你看。Agent 出问题,它笑着把错的交给你。 沉默失败 在 OpenClaw 的日常运维里,我遇到过一种反复出现的场景: 脚本跑完了。exit 0。日志干净。但输出文件里塞着上一轮缓存的旧数据。原因是某个上游 API 返回了 200,但 body 是空数组。脚本没有校验返回值的内容,只管写入。结果下游消费方读到的是一个”合法”的空文件,以为今天什么数据都没有。 […]