尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
AI多Agent协作系统实战(十七):凌晨4点,我的AI系统在“假装工作“——3个bug同时爆炸的5小时
系列第17篇 | 一个bug不可怕三个同时来才致命凌晨4点的飞书2026年7月17日凌晨4点。我睡不着打开飞书看了一眼小密我的AI统筹Agent的消息。然后我愣住了【小密统筹报告 07-17 04:04】 【小密统筹报告 07-17 04:34】 【小密统筹报告 07-17 05:04】 【小密统筹报告 07-17 05:34】 【小密统筹报告 07-17 06:04】 【小密统筹报告 07-17 06:34】 【小密统筹报告 07-17 07:04】7条消息每条都只有一个标题没有任何内容。没有任务表格没有进度没有状态。就像一个员工每半小时给你发一封邮件标题写工作汇报打开里面是空白的。他没在偷懒——他一直在发邮件。但他也没在工作——邮件里什么都没有。我发了条消息“有什么问题一直在空转。”然后我开始排查发现不是一个bug是三个。它们来自三个完全不同的系统层互相不知道对方的存在但效果叠加在一起——整个心跳系统假装工作了整整5个小时。第一个炸弹空报告现象心跳每30分钟发一条报告到飞书从凌晨2点开始正常4点开始变成只有标题的空消息。排查过程我打开format_report.py看到了这个函数defhas_content(notes,timeout_tasks):ifnotes:# ← 问题在这里returnTrueiftimeout_tasks:returnTruereturnFalse看起来没毛病但问题在于notes里装了什么。当所有任务都处理完了脚本会往notes里写一句无待复核任务。bool(无待复核任务)返回True所以has_content说有内容继续生成报告。但后面有个过滤器filtered_notes[nforninnotesifnotn.startswith(无)]无待复核任务以无开头被过滤掉了。filtered_notes变成空列表。但has_content看的是过滤前的notes不是过滤后的filtered_notes。就像你在厨房检查食材有没有过期但没检查做出来的菜有没有变质。最终效果脚本说有内容→生成报告→内容被过滤→只剩标题→发送空报告。修复defhas_content(notes,timeout_tasks):# 不再检查原始notes检查最终输出linesformat_lines(notes,timeout_tasks)content_lines[lforlinlinesifl.strip()andnotl.startswith(【)andnotl.startswith(|)]returnlen(content_lines)0教训判断有没有内容要在出口看输出不要在入口看输入。第二个炸弹手机白屏现象手机浏览器一片白控制台没报错Vue完全没渲染。排查过程第一层资源路径混乱。mobile/index.html引用了/assets/xxx.js但文件实际部署在/mobile/assets/下。浏览器请求404JS不加载Vue不启动。但这个修好后还有第二层——更隐蔽的。localStorage跨设备污染。我之前在PC端访问系统点了侧边栏折叠按钮。JS把状态存进localStoragelocalStorage.setItem(sidebarCollapsed,true)localStorage是按域名存储的跟设备无关。同一个域名nasioe.cc.cdPC端和手机端共享同一份localStorage。我用手机打开同一个域名浏览器读到sidebarCollapsed trueJS把侧边栏宽度设成60px。手机屏幕375px宽60px侧边栏主内容区布局全乱。你以为localStorage是本地的其实它是本域名的。就像你在家里的冰箱贴了一张今晚吃火锅的便条结果你出差住酒店酒店冰箱里也有一张同样的便条——因为你们用的是同一个美团账号。修复// 只在PC端恢复折叠状态if(window.innerWidth768){constsavedlocalStorage.getItem(sidebarCollapsed);if(savedtrue){sidebar.classList.add(collapsed);}}第三个炸弹CSS幽灵现象PC端侧边栏折叠按钮被遮挡折叠后菜单文字没隐藏。排查过程我grep了CSS找到了这段.sidebar.collapsed span:not(.menu-icon){display:none!important;}选择器匹配的是span:not(.menu-icon)——也就是隐藏非图标的span。但实际HTML是这样的ahref/dashboard.htmlclassmenu-itemspanclassmenu-icon/span数据看板!-- ← 文字直接在a里不在span里 --/a文字不在span里直接写在a标签里。CSS选择器根本匹配不到它。CSS不会报错。它只是静静地失效看着你的页面一团糟。就像你给门配了一把钥匙但门锁已经换了。钥匙插进去转不动但门看起来还是那扇门。修复.sidebar.collapsed a{font-size:0;/* 隐藏a内的文字 */}.sidebar.collapsed .menu-icon{font-size:18px;/* 强制显示图标 */}三个bug的完美风暴Bug影响持续时间空报告飞书消息全是空白标题5小时手机白屏手机端完全无法访问直到修复CSS幽灵PC端侧边栏折叠失效直到修复三个bug单独看都不致命。但叠加在一起空报告→用户看不到系统在干什么“一直在空转”手机白屏→移动端完全不可用CSS幽灵→PC端UI也有问题从用户视角看飞书里一串空消息手机打不开电脑侧边栏也是坏的。整个系统似乎瘫痪了。但实际上核心逻辑任务派发、Agent调度、心跳监控一直在正常运行。出问题的全是展示层。一个内部正常但外部表现异常的系统在用户眼里跟完全坏掉没有区别。三个教训1. 判断有没有内容要看最终输出has_content检查原始notes但notes在后面被过滤了。入口看到的和出口输出的不是同一回事。2. localStorage是域名级别的不是设备级别的多设备共用的Web应用UI状态必须考虑跨设备兼容。用window.innerWidth判断设备类型是最简单的方案。3. HTML结构改了CSS选择器必须同步grepCSS选择器是盲的——DOM结构变了选择器失效样式静默丢失。改HTML后第一件事grep所有引用该class的CSS文件。
RELATED

相关推荐

Unity程序化网格生成:从零构建圆柱体Mesh的完整指南

Unity程序化网格生成:从零构建圆柱体Mesh的完整指南

1. 项目概述:为什么我们要亲手绘制网格? 在Unity开发中,Mesh(网格)是构成一切3D可视物体的基石。无论是屏幕上旋转的立方体,还是角色身上随风飘动的披风,其视觉形态最终都由Mesh定义。我们通常从…

📅 2026/10/29 18:15:38
2015年Android开发技术全景与最佳实践

2015年Android开发技术全景与最佳实践

1. 2015年Android生态全景回顾 2015年是Android发展历程中承前启后的关键年份。随着Android 5.0 Lollipop的全面普及和6.0 Marshmallow的发布,Material Design设计语言彻底改变了Android应用的外观和交互方式。这一年,开发工具链日趋成熟,第三…

📅 2026/10/30 14:02:09
TI OMAP平台SDI显示驱动编程与电源管理深度解析

TI OMAP平台SDI显示驱动编程与电源管理深度解析

1. 项目概述与核心价值在嵌入式显示系统的开发中,显示子系统(Display Subsystem, DSS)的稳定与高效是决定用户体验和系统功耗的关键。其中,串行显示接口(Serial Display Interface, SDI)模块作为连接处理器…

📅 2026/10/30 13:59:29
MORE NEWS

更多资讯

📰

不说再见电工证怎么考?真实经历告诉你怎么避坑

不说再见电工证怎么考?真实经历告诉你怎么避坑 证书过期了不知道怎么复审延期?这事儿我见过太多人踩坑,尤其是像你这样在驻马店从事公路工程的电工朋友,很多人因为不了解流程,导致证过期了才知道补救已经来不及。今天我就结合真实经历,把【不说再见电工…

📰

苏州哪有考电工证报名入口与办理流程良心建议

苏州哪有考电工证报名入口与办理流程良心建议 你急需特种作业证才能上岗找工作,但不知道从哪开始,更怕走弯路?别急,这是很多刚入行的电工朋友的真实写照。今天我就以一个过来人的身份,跟你说说苏州哪有考电工证、报名流程、考试技巧,还有避坑指南。这些…

📰

沐川免费考电工证保姆级教程:外省证怎么转?看完这篇全搞懂

沐川免费考电工证保姆级教程:外省证怎么转?看完这篇全搞懂 之前考的证在外省能不能转过来?这几乎是每个想在本地发展、又手握外地证书的电工最关心的问题。尤其在沐川地区,不少从事水利工程、电力运维、施工现场管理等工作的同行,手中握着的电工证可能来…

📰

办电工证石家庄千万别踩坑,新手报名避坑指南

办电工证石家庄千万别踩坑,新手报名避坑指南 你是不是正愁不知道去哪儿报名办电工证石家庄,怕被中介坑得血本无归?别急,今天这篇就是为你量身打造的避坑指南,让你不花冤枉钱,稳稳拿到电工证,还能避开那些套路满满的中介陷阱。…

📰

娄底双峰县电工证在哪考不迷路,别让培训费打水漂

娄底双峰县电工证在哪考不迷路,别让培训费打水漂 你是不是也担心考电工证费了钱却考不过?怕白交培训费?别急,这篇文章就是为你准备的,教你 在哪考 娄底双峰县电工证,避开培训机构的坑,稳稳拿下证书。…

📰

天津电工证免考怎么操作?全国通用免考政策解读来了

天津电工证免考怎么操作?全国通用免考政策解读来了 怕考不过白交培训费?现在天津电工证免考政策落地,全国通用的电工证不用再死磕考试了。特别是郑州的市政公用工程从业者,新规下报考流程更简化,学历和工作年限要求也更灵活。今天就来聊聊天津电工证免考…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬