凌晨三点十七分,主控室的灯还亮着。
我盯着屏幕,手指在键盘上轻敲,把最后一行数据归档。
窗外雨停了,可空气里还挂着湿气,像是整座城市刚从一场大梦里醒来,喘着粗气。
三天前,那场跨系统联动的成功,像一块石头砸进死水潭,涟漪还没散。
孙建国昨天深夜来了一趟,没进屋,就站在走廊抽烟,烟头一明一暗,像在等什么人看不见的信号。
“消防那边动了。”他吐出一口烟,声音压得很低,“‘老旧小区火灾预防专项行动’,市里督办的,但他们手里没数据,光靠人工排查,等于蒙眼走路。”
我靠在门框上,没说话。
他知道我在想什么。
“火种有记录。”他接着说,“过去一年,三十多次燃气报警,二十来次电路异响,还有那些半夜跳闸、电压不稳的预警……你们不是存着吗?”
我点头。
这些数据,是我们用黑匣子一点一点攒下来的。
不是为了炫耀,而是为了在关键时刻,能抢出那几分钟、几秒钟。
“他们想要一份清单。”孙建国说,“不点名,不追责,只看趋势——哪片楼老,哪户人孤,哪条线路随时可能炸。”
我沉默了几秒。
这不是第一次有人要我们的数据。
供电局之前也试探过,但我们只给模型,不交原始记录。
因为一旦脱手,就再不是“合作”,而是“依附”。
可消防不一样。
火灾面前,没有体制内外。烧起来的,是同一个屋顶下的命。
赵小胖听说这事时,直接从椅子上跳起来:“我们不是公安!也不是大数据局!凭什么把命脉交出去?”
他红着脸,手拍在桌上:“上次供电局签协议,已经是底线了!再这么下去,咱们迟早被拆干净!”
吴晓峰低头摆弄服务器,小声说:“数据可以脱敏……只留楼栋编号和风险类型,不涉及个人隐私。”
“可一旦开了口子呢?”赵小胖瞪眼,“今天给消防,明天是不是城管也要?后天教育局来查学生心理状态?”
林昭雪坐在角落,一直没说话。
她穿着浅灰卫衣,头发扎成马尾,眼神却比谁都清。
直到赵小胖说完,她才开口:“你想保护火种,没错。但你想过那些老人吗?”
她站起身,走到投影前,调出一张图。
“这是过去八个月,我们标记的‘反复高危’住户——十四户。平均年龄七十六岁,独居,子女不在本地,家中线路超期服役十年以上。”
她点开一段录音。
“……哎哟,屋里一股煤气味,我也不敢开灯,就蹲门口喘气……等消防来,四十分钟……人差点晕过去。”
那是上个月的事,系统预警后我们派人上门,才救下来的。
“119接警平均响应时间是6分43秒。”林昭雪声音平稳,“而我们的预警,平均提前42分钟。”
她顿了顿,看向我:“如果我们能换一个承诺——消防队对这些片区增加夜间巡逻,紧急情况直连主控台,算不算给老人加了双保险?”
房间里静了几秒。
赵小胖张了张嘴,没说出话。
我知道他在怕什么。
他也经历过亲人因延误救治而离开的痛。
只是他选择用强硬来掩饰软弱。
我走到电脑前,调出后台统计。
37次燃气报警,21次电路异响,14户反复高危。
每一行数据背后,都是可能发生的悲剧。
“我们不交原始数据。”我说,“只提供趋势分析报告——《高危家庭风险清单》第一期,脱敏处理,仅用于试点。”
我敲下第一行标题。
“合作草案也写清楚:火种共享预警逻辑,消防队则需在指定区域提升巡防密度,并开放紧急通道直连。双向验证,实时反馈。”
吴晓峰点头:“我可以做数据隔离,物理断开个人身份信息,只保留风险标签。”
“那谁去谈?”赵小胖问。
林昭雪抬头:“我去。”
她语气平静,却带着不容置疑的坚定。
“以学生社会实践调研的名义,联系消防支队宣传科。不提火种,不说系统,只展示结果。”
我看着她。
十六岁,却比很多成年人更懂如何在规则缝隙里种下改变的种子。
两天后,她带回消息:副支队长愿意见一面。
见面那天,她穿了校服,背了个帆布包,像极了普通高中生。
可当她把那张对比图投在会议室屏幕上时,整个屋子都安静了。
红蓝双线交错——一条是火种预警时间,一条是119接警时间。
差距,42分钟。
副支队长盯着看了很久,忽然问:“你们……到底是什么人?”
“只是关心社区安全的学生。”林昭雪说,“我们不想等火着起来才救人。”
对方沉默良久,终于点头:“报告我们可以收,试点也可以做。但必须有居委会背书——不能让学生‘越界’。”
我当晚就联系孙建国。
他第二天就出现在社区办公室,拿着退休证和志愿者登记表,以“老教师关心青少年社会实践”为由,正式牵线。
协议定在周五下午签。
主控室里,我们最后一次核对清单内容。
吴晓峰确认:“所有个人信息已剥离,仅保留楼栋编号与风险等级。服务器日志加密,访问留痕。”
赵小胖仍皱眉:“总觉得……太顺利了。”
我站在窗边,看着远处消防队大楼的轮廓。
“不是太顺利。”我低声说,“是有人,已经开始注意我们了。”
签协议那天,阳光刺眼。
消防支队会议室,副支队长坐在主位,孙建国代表社区,林昭雪作为“项目学生代表”,我和赵小胖列席。
笔刚落纸,门被推开。
一个穿深色夹克的男人走了进来,没穿制服,手里拿着相机。
他一句话没说,只是走到角落,开始拍照。
副支队长微微一怔,随即介绍:“这位是市里来的……陈干事,政法委综治办的,来了解情况。”
我目光落在那人脸上。
他不看我,只对着协议、屏幕、我们每一个人,一张张拍。
直到最后,他抬起眼。
那一瞬,我心头一跳。
那眼神,不像检查,不像监督。
更像……确认。
确认我们,是不是他等了太久的那股“火”。
签字笔落下的那一刻,阳光正好斜切过会议桌的边缘,像一道审判的光刃。
我盯着那份协议,纸面平整,字迹清晰,可心里却像压着一块刚从深井里捞上来的铁。
太安静了——安静得不像一场合作的开始,倒像某种更庞大程序的启动音。
那个穿夹克的男人,陈默的表哥,全程没说一句话。
他只是拍。
拍协议,拍屏幕,拍我们每个人的神情,甚至对着主控室角落的服务器指示灯都多按了两下快门。
他的动作不急不躁,带着体制内特有的冷静与审视,仿佛在收集证据,而不是参加一场学生社会实践的签约仪式。
林昭雪坐在我斜对面,神色如常,可我注意到她指尖微微收紧,指甲在帆布包边缘留下了一道浅痕。
她也感觉到了——这不单纯是“观察”。
签字结束,副支队长笑着起身握手,说“合作愉快”。
我点头回应,笑容标准,心里却已经在重演刚才那一幕:那人的镜头,为何刻意对准了黑匣子的接口位置?
为何在我们展示预警时间轴时,多拍了三张?
散会后,我故意落在最后,借着整理文件的名义多留了几分钟。
吴晓峰立刻会意,远程调出监控回放。
画面里,那人离开前,在走廊拐角处停下,低头看了眼手机,似乎在发信息。
时间是14:23,内容不可见,但发送对象的号码归属地——市局内网段。
我眼神一沉。
当晚十一点十七分,主控台警报突然亮起。
红光无声闪烁,屏幕上跳出定位:幸福里小区3栋502室,烟雾浓度异常,数值已达临界阈值,持续上升。
“自动推送消防值班终端。”我声音不高,但每一个字都像钉进木头里,“守夜人A、B组,立刻出发,带上破拆工具和呼吸面罩。”
赵小胖抓起对讲机就要冲出去,被我拦住:“你留下。这是实战,不是演练。”
他愣了一下,随即明白——我们要让消防队亲眼看到,什么叫抢在火之前。
七分钟后,消防车呼啸而至,云梯未放,现场已控制。
是厨房油锅起火,主人睡着忘了关火,浓烟已灌满半个屋子。
若再晚五分钟,电路短路引燃橱柜,整栋楼都可能被拖进火场。
可这一次,火没起来。
消防通报在凌晨两点发出:“本次响应从接警到扑灭仅用时8分12秒,创辖区小火‘零升级’最快纪录。”
他们没提的是——他们接到的,不是119报警,而是来自一个匿名系统推送的精准预警。
我坐在主控台前,看着黑匣子日志自动归档这次事件的全流程:预警时间、推送路径、响应节点、现场反馈。
数据链条完整得像一条咬住自己尾巴的蛇。
我敲下一行备注:
> 他们以为我们在求他们合作,其实我们是在教他们——什么叫‘未燃先防’。
屏幕微光映在墙上,忽然,黑匣子底层日志区自动浮现出一行新字,没有触发指令,像是某种自我觉醒:
> 桥不止一座,路已连成网。
我盯着那句话,心跳慢了半拍。
这不是我设置的提示。
也不是吴晓峰的代码风格。
可它出现了,且准确得令人心悸。
就在这时,手机震动。一条加密消息来自陈默:
> “我表哥回去了。他没交报告,但调阅了近三年全市火灾统计。他说……‘这种模式,得看看能不能复制’。”
我没回。
只是默默打开后台权限管理系统,将消防队的访问等级从“完整视图”降为“汇总报表只读”。
他们的终端,从此只能看到趋势图、风险区热力图、响应效率曲线——
但再也无法追溯任何一次预警背后的个体响应路径、黑匣子逻辑判断过程、以及守夜人出动记录。
赵小胖凑过来,看到权限变更记录,皱眉:“你信不过他们?”
我望着窗外,远处消防队大楼的灯还亮着,像一只睁开的眼睛。
“我不是不信他们。”我轻声说,“我是不信,那只眼睛后面,站着谁。”