当前位置: 首页 > news >正文

AI多Agent协作系统实战(二十二):从6列到12列——任务监控报告的进化之路

系列第22篇 | 当你发现"能看到进度"和"能处理异常"是两回事

背景

我们的AI Agent多系统协作平台,每天都在跑任务。小虾写代码、小牛测试、小密复核。看起来很完美,但有一个致命问题——我看不到任务卡在哪里了

最早的报告长这样:

| 任务ID | 完善内容 | 开发 | 测试 | 复核 | |--------|----------|------|------|------| | DEV-001 | 修复xxx | ✅ | ⏳ | - |

6列,简洁明了。但用了一天就发现:测试卡了2小时,我完全不知道

问题1:超时是"黑箱"

现象

小牛测试一个任务,我等了2小时没动静。打开报告一看:

| DEV-001 | 修复xxx | ✅ | ⏳ | - |

只显示"⏳进行中",不知道卡了多久

原因

报告只记录了状态(进行中/已完成),没有记录时间维度。就像看外卖APP只显示"配送中",但看不到骑手离你还有多远。

修复

给每个阶段加上超时时间:

| 开发状态 | 开发超时 | 测试状态 | 测试超时 | 复核状态 | 复核超时 | |----------|----------|----------|----------|----------|----------| | ✅ | - | ⏳ | 120分钟 | - | - |

现在一眼就能看到:测试已经卡了120分钟。

问题2:重试次数是"黑洞"

现象

任务复核不通过,系统自动重试。但我不知道重试了几次,也不知道还能重试几次

就像打客服电话,只告诉你"正在转接",但不知道转了几轮、还要转多久。

原因

没有记录retry_count。系统默默重试,用户一无所知。

修复

给每个阶段加上重来次数:

| 测试状态 | 测试超时 | 测试重来 | 复核状态 | 复核超时 | 复核重来 | |----------|----------|----------|----------|----------|----------| | ⏳ | 120分钟 | 2 | ❌ | - | 1 |

现在能看到:测试重试了2次,复核失败1次。

问题3:报告"刷屏"

现象

任务完成后,报告每分钟都在发同一条消息。飞书被刷屏了。

【小密统筹报告 07-22 14:00】✅ 共1个任务全部通过 【小密统筹报告 07-22 14:01】✅ 共1个任务全部通过 【小密统筹报告 07-22 14:02】✅ 共1个任务全部通过 ...连续发了3小时

原因

没有"报告标志"机制。每次生成报告都显示所有任务,包括已完成的。

就像快递APP每5分钟通知你"您的包裹已签收",签收了100次。

修复

添加reported字段:

# 报告后设置reported=1db.execute('''UPDATE tasks SET reported=1 WHERE msg_type='new_task' AND reported=0 AND status IN ('verified','completed')''')

报告只显示reported=0的任务。完成后标记为1,不再重复显示。

问题4:空闲时"瞎忙"

现象

没有任务的时候,报告还是每分钟发一次空报告。飞书被空消息刷屏。

原因

没有"空闲暂停"机制。不管有没有任务,都按时生成报告。

就像冰箱里的便签纸,不管你有没有看,每小时自动换一张新的。

修复

添加空闲检测:

defcheck_idle_and_pause():# 检查是否有活跃任务active=db.execute('''SELECT COUNT(*) FROM tasks WHERE status NOT IN ('archived', 'cancelled', 'verified') ''').fetchone()[0]ifactive==0:# 空闲超过30分钟,暂停ifidle_seconds>=30*60:returnTrue# 暂停returnFalse# 继续

没有任务时,30分钟后自动暂停报告。

问题5:结论"撒谎"

现象

报告说"共6个任务,2个失败",但我明明只看到2个DEV任务在表格里。

原因

结论统计包含了TEST/RETEST任务,但表格只显示DEV任务。数字对不上。

就像超市小票显示"共10件商品",但袋子里只有2件——另外8件是赠品小样。

修复

结论只统计DEV任务:

# 只统计DEV任务ifnottid.startswith(('FIX-','DEV-','REDEV-')):continue

现在结论和表格一致。

最终形态

从6列进化到12列:

| # | 任务ID | 完善内容 | 开发状态 | 开发超时 | 开发重来 | 测试状态 | 测试超时 | 测试重来 | 复核状态 | 复核超时 | 复核重来 | |---|--------|----------|----------|----------|----------|----------|----------|----------|----------|----------|----------| | 1 | DEV-001 | 修复xxx | ✅ | - | - | ⏳ | 120分钟 | 2 | ❌ | - | 1 |

每个阶段都有:状态(做什么)+超时(卡了多久)+重来(重试了几次)。

一眼就能看出:任务卡在测试阶段,已经120分钟,重试了2次还没过。

规范驱动

这个进化不是拍脑袋想的,而是来自用户定义的规范文件:

/vol1/1000/workspace/file/规范/ ├── agent工作内容.jpeg # 谁做什么 ├── 统筹内容要求.jpeg # 报告要包含什么 ├── 统筹报告格式.jpeg # 报告长什么样 └── 脚本编制要求.jpeg # 脚本怎么写

用户说"对标规范",我就去查这些文件,然后对照当前实现纠偏。

规范是权威来源,不是参考意见。

经验总结

  1. 状态≠进度:只知道"进行中"不够,还要知道"卡了多久"
  2. 记录时间维度:每个阶段都要记录超时时间和重试次数
  3. 报告标志防刷屏:已完成的任务标记reported=1,不再重复显示
  4. 空闲暂停:没有任务时自动暂停,避免空消息刷屏
  5. 结论要对得上数字:统计范围要和表格显示范围一致
  6. 规范驱动开发:先定义规范,再实现,最后对标检查
http://www.jsqmd.com/news/1380511/

相关文章:

  • 2026洛阳外墙漏水避坑指南 - 伶鹿到家
  • 第50篇-多数据源集成
  • 从CTF到企业实战:构建分层日志分析框架与ELK/SIEM工具链
  • C++形参默认值:语法规则、编译器实现与实战避坑指南
  • VMware ESXi虚拟机CentOS 7系统盘扩容实战:从VMDK到LVM全流程详解
  • 计算机保研预推免笔面试全攻略:从算法真题到项目深挖
  • LeetCode最长连续序列哈希表解法详解
  • 自我认知重构:从系统思维到行为调试的工程化实践
  • Excel专业修约:四舍六入五成双的VBA与公式实现
  • VC6.0工程文件修复工具:解析、诊断与自动修复.dsp/.dsw文件
  • AI编程助手上下文管理:从Token原理到实战解决Claude Code“失忆”问题
  • 【非标自动化】2、认识元器件(固态继电器)
  • CS:S武器手感调优指南:从视图模型到网络参数的全面配置
  • 福州大学控制类考研专业深度解析:学硕、专硕与交叉方向如何选择
  • Agent Harness框架:构建生产级AI Agent的工程化实践指南
  • DeepSpeed ZeRO-3保存Checkpoint后OOM:原理、诊断与解决方案
  • 兼容适配:M-Robots 如何实现 ROS 生态无缝迁移,降低替换成本
  • AI术语解析:从Agent到向量数据库,穿透技术黑话迷雾
  • 芯片测试:从DFT设计到量产良率管理的系统工程实践
  • RCE漏洞挖掘实战:从原理到Payload构造与绕过技巧
  • 利用ShellcodePack实现DLL与COM劫持:高隐蔽性Shellcode加载与持久化技术详解
  • Logo 设计工具记录:多款智能 Logo 生成工具能力边界整理
  • Python读取TIF文件全攻略:从Pillow到rasterio的实战选型
  • Oracle 19c Linux静默安装实战:从系统调优到建库配置全解析
  • 2026模板小程序开发服务商哪家更新快?运维有保障才是真的好!
  • 2026贵阳外墙漏水避坑指南 - 企业资讯
  • Micrometer 系列【41】链路追踪:Micrometer Tracer 接口
  • STM32输入捕获功能详解:从原理到实战的频率测量指南
  • vue基础(第四章 Pinia)
  • 基于Kimi Work构建300并发AI Agent系统,实现就业市场智能侦察