AI多Agent协作系统实战(三十四):我们完成了13个任务,系统说“今日共0个任务完成 📅 2026/8/8 7:02:25 凌晨00:30一条全部完成通知弹出来今日共0个任务全部完成。可就在过去的24小时里我们明明完成了13个任务——所有任务都复核通过了。一条荒谬的完成通知我们的派发系统每个任务都有唯一ID格式是DEV-日期-序号DEV-20260804-001 删除登录页两行文字 DEV-20260804-002 删除提示语输入框上移 DEV-20260804-003 整体上移 …… DEV-20260804-013 记住我/忘记密码点击修复13个任务全部复核通过状态verified。一切正常。然后凌晨00:30系统检测到没有待处理任务按规则发送全部完成通知✅ 本次所有任务已完成。 结论✅ 今日共0个任务全部完成13个已完成的任务统计结果是0。排查0是从哪来的统计代码长这样todaydatetime.now().strftime(%Y%m%d)# 现在是 20260805patternfDEV-{today}-%# 匹配 DEV-20260805-%totalSELECT COUNT(*)WHERE task_id LIKEDEV-20260805-%看明白了吗任务ID里的日期和系统统计用的今天不是同一天。任务IDDEV-20260804-xxx——派发那天是8月4日统计代码today 20260805——现在是8月5日凌晨刚过零点凌晨0点到1点之间系统用8月5日去匹配8月4日派发的任务——一个都匹配不上统计出来自然是0。13个任务干了整整一天跨过了零点然后被日期一刀切没了。为什么日期会骗人这是日期处理最经典的坑同一件事在不同地方用不同的日期口径。任务ID用派发日期DEV-20260804——什么时候派的统计代码用当前日期datetime.now()——现在几号。凌晨时分这两个日期必然错位任务ID: DEV-20260804-001 8月4日派发 统计: DEV-20260805-% 8月5日凌晨——匹配不到 结果: 0个任务8月4日晚上9点派发的任务8月5日凌晨0点10分完成——它到底算哪天的任务从派发角度是8月4日从完成角度是8月5日。系统选了第三条路按ID里的日期匹配然后一个都匹配不上。修复别用ID里的日期做统计任务ID里的日期是派发日的烙印但统计今日完成应该看完成时间——这是两个不同的维度。# 旧按task_id里的日期匹配凌晨必错位patternfDEV-{today}-%# 新按创建时间统计近24小时跨天任务也覆盖created_atdatetime(now,-24 hours,localtime)改成按created_at统计后凌晨跨天任务也能算进来修复前: 凌晨统计今日0个任务ID日期匹配不上 修复后: 近24小时统计 → 13个任务全部计入 ✅三条教训第一今天是个模糊概念。派发日、完成日、统计日——同一个任务可以有三个日期。写统计代码前先想清楚你统计的是哪个维度的今天。第二ID是标识不是数据。任务ID里的日期是为了让人一眼看出哪天派的——用它做统计条件是把展示用信息当成了业务数据。统计永远基于业务字段创建时间/完成时间不基于ID。第三凌晨是bug的黄金时段。跨天、跨周、跨月——边界时刻最容易出问题。0点和24点的行为不一样是所有日期逻辑的试金石。如果你的系统凌晨会出奇怪的结果先查日期口径。结尾修复后我特意在凌晨1点又跑了一次统计——13个任务全部正确计入。然后我把这条教训写进了代码注释任务的日期有两种ID上印的和数据库里记的。统计的时候请相信数据库不要相信ID。凌晨0点是日期逻辑的照妖镜。完本文是多Agent派发系统系列第34篇。前篇讲AI被截图噎死session卫生、0字节信任危机假反馈。这一篇讲时间口径假日期。技术事故的又一个规律边界时刻0点/跨天专治各种想当然。欢迎加入QQ频道共同交流。