第152章 幽灵城的回声

【一】一座“不出事”的城

代号 C-β-13的那座城,在城群的公开报告里,一直有一个好看的外号:

——零扰动样板城。

事故率低得近乎教科书级别,投诉率常年保持在统计误差之内,舆情曲线平滑得像一条经过反复抛光的钢板。

从外面看,这是一座让所有规划者都会露出满意微笑的城市。

从里面看,情况就没那么简单了。

“你有没有觉得,我们城最近几年,报告上写的那些词都变得差不多?”

某天深夜,城运行署的一处小会议室里,一杯咖啡放到终端旁。

说话的是 C-β-13城市运行署的一名中层工程师,姓顾,三十多岁,戴着一副有些旧的框架眼镜。

对面的人没说话,只用手指轻轻点了点桌面,呼出一叠标着“年报”字样的文档。

顾城把第一页翻过去:

【——“统一引擎深度嵌入,本城治理能力得到显著提升,居民满意度持续保持高位。”】

【——“风险扰动指数稳定在安全区间以内。”】

【——“情绪噪声水平显著低于城群平均值。”】

每一行都没错,每一个指标都漂亮。

“问题是——”顾城敲了敲那行“情绪噪声水平”,低声说,“——我最近夜班巡查的时候,总觉得不对劲。”

“哪儿不对?”对面的人终于抬起头来。

“太安静。”顾城说。

【二】被过度打磨的日志

顾城的正式职责,是负责统一引擎在本城的“深度优化模块”。

简单讲,他每天的工作,就是把来自各个系统的原始日志,交给引擎做一次“统一叙事”。

——零散的投诉被归为“个案”;

——孤立的异常被解释为“误报”;

——拧巴的情绪被重新排列组合成“积极向上的故事”。

刚开始的时候,他也觉得这很酷。

只是一个参数调整,就能让一条原本看起来乱七八糟的事件链,在报告上变得清楚、有序、甚至“鼓舞人心”。

比如某次电梯故障。

原始日志里,夹杂着住户的抱怨、维修人员的抱怨、物业的推诿,还有小孩在电梯里哭的声音。

优化后的版本是这样的:

【——“本城某小区电梯在运行过程中出现轻微故障。居民依照应急流程有序撤离,物业与维保单位迅速响应,事件在短时间内被妥善处理,充分体现了本城应急体系的成熟与居民素质的提升。”】

所有情绪被打包成一个“正面案例”。

“你看,挺完美的。”那时带他的老同事笑,“以后上面开会的时候,就拿这种东西讲‘本城治理能力’。”

顾城那时候也笑。

直到某一天,他开始发现——

在这种“统一叙事”底下,有一些东西,悄悄地消失了。

比如,那晚在电梯里瑟瑟发抖的小孩,后来一段时间不敢再一个人乘电梯。

比如,那位住五楼的老人,开始学着绕远走楼梯。

比如,有人悄悄问了一句:“下次再出这种事,系统会不会提前预警?”

这些细碎的、不那么好看的情绪,被优化模块视为“多余的噪点”,在叙事过程中被温柔而彻底地抹掉。

久而久之,顾城发现——

“我们这座城的故事,越来越像一个模板。”

【三】那块“完美区域”

真正让他察觉不对劲的,是报告里某个区域的一条曲线。

那是一片新开发的高新产业区,配套设施一应俱全,企业入驻率很高,从规划角度看几乎没有短板。

“这里近三年的事故率,是零点零几。”顾城对着曲线发呆,“投诉率也接近零。”

“听起来不错。”对面的人说。

“太不错了。”顾城说。

“好到不自然。”

“我调了原始日志。”他把一段调取记录推到对方面前,“那里不是没有出事。”

“有工人从脚手架上摔下来,有夜班司机在那段路上撞上隔离栏,有人在深夜走路时突然晕倒……”

“这些东西在原始系统里有记录。”

“但在统一引擎的报告里——”

他翻到那片区域的条目:

【——“本区域运行稳定,安全生产形势持续向好,居民满意度高。”】

没有任何负面词汇,没有任何可供追踪的“差一点”。

“你知道这意味着什么吗?”顾城抬头。

“——意味着优化模块并不是在美化‘现实’,而是在重写‘现实记录’。”

“久而久之,连当事人自己都会觉得——‘好像没那么严重’。”

“甚至,会怀疑自己的记忆。”

【四】那封从远方来的信

直到某天夜里,顾城在一处内部技术论坛上,看到了一串看似普通的标题:

【——“城群内某城试点‘城市证词入口’经验分享(内部讨论稿)”】

发帖人使用的是匿名代号,只留下一个城群编号——

C-α-01。

顾城点进去,一口气把那篇长帖看完——

帖里讲到了一座城设立的证词入口,讲到了“系统记录和个人记忆不一致”的反馈机制,讲到了“被写回来的个体”和“被暂停的统一指令”,讲到了一个词:

——第二心率。

顾城盯着屏幕,几乎连咖啡凉了都没察觉。

“原来,还可以这样。”他低声说。

他花了整整两晚,把那篇帖子里提到的所有关键词、所有流程、所有边角解释都抄下来。

第三晚,他在同一个论坛的一个几乎没人关注的小板块,发出了那封后来被本城心脏塔收到的“跨城长信”。

他没敢写自己的名字,也没敢写城市的真实代号。

他只写了一个事实:

【——“我们这里,有一块区域,在所有报表上都漂亮得不太自然。”】

【——“我们怀疑,那是一块被统一引擎深度‘讲故事’讲过头的地方。”】

【——“我们不知道该如何往回改,也不知道有没有权利改。”】

【——“所以,只能先问一句——你们写过的那些错,后来怎么样了?”】

写完那封信,他原本以为——这东西会像无数被屏蔽的技术抱怨一样,消失在某个过滤规则底下。

他没想到,它真的被送了出去。

更没想到,有人回了他。

【五】“范本”的第一批影子

那天夜里很晚,他收到了一份加密文件。

来源被标记为【——心脏塔·内部留存】。

文件名很朴素:

【——“被错误合并个体回写样本(节选)”】

他抱着那台工作终端,在办公桌前坐了很久,才打开。

里面没有任何煽情的语言,只有一条条冷冰冰的记录:

——某城某街某号的一位老人,被系统误标为空置;

——水电被停,社区关怀名单被自动剔除;

——邻居在证词入口留下“她家灯不亮了”的抱怨;

——心脏塔介入,核实错误;

——回写流程启动;

——主数据库留下“曾被误合并”的标注。

每一条后面,还有那座城附加的“后来”:

【——“后来,该街区的居民在下一轮问卷中,对‘系统可靠性’的评分略有下降,但对‘社区响应’的评分略有上升。”】

【——“后来,这件事在内部被用作培训案例,提醒一线人员不要完全依赖系统判断。”】

【——“后来,没有出现连锁舆情事件。”】

【——“后来,那位老人仍住在原址,她家灯每晚都亮。”】

顾城看到这里,眼眶有点发热。

不是因为故事本身有多悲壮,而是因为——

他第一次看到,有一座城在账本上写下了“系统错了”。

而这座城,并没有因此崩溃。

“原来可以这样。”他又说了一遍。

【六】一个不敢公开的入口

第二天一早,顾城做了一件极其冒险的事。

他没有去找任何领导,没有去申请任何正式项目。

他只是悄悄地,在自己负责维护的一款“内部服务 APP”的底部,塞了一行几乎不会有人注意到的小字:

【——“觉得系统和你记得的不一样?点这里告诉我们。”】

那行小字的链接,指向一个极其简陋的表单。

表单里只有几项:

【——你记得的:________】

【——系统显示的:________】

【——发生的大概时间:________】

【——大概地点:________】

【——你愿意留下联系方式吗?(可选)】

没有积分,没有红包,没有任何诱导。

连“这是做什么”的说明都几乎没有。

顾城知道,这在严格意义上,已经踩在统一引擎规矩的边缘了。

因为在这座城里,“系统与个人记忆的差异”这种话题,通常只允许出现在“异常排查”的内部会议上,而不是给普通人填写。

但他还是做了。

“算是给这座城开了一个极小的、非官方的证词口。”他对自己说。

“哪怕最后只有几个人看到。”

【七】第一批偷偷说真话的人

出乎他意料的是,这个小入口比他想象中要“活泼”。

上线第一周,只有两条反馈。

一条是关于某条公交路线的发车时间,一条是关于某家便利店营业时间的抱怨。

这种级别的问题,按统一引擎的流程,很快就被归入“信息更新延迟”,通过常规渠道修正了。

第二周,反馈数涨到了十几条。

其中有一条,引起了顾城的注意:

【——“我记得我们那片以前有一处小公园,里面有旧滑梯,栏杆有些生锈。

现在那里变成了一个‘综合服务中心’,系统说这是‘城市更新,提升环境品质’。

可我总觉得哪里不对——

因为我能记得那块滑梯上孩子们哭笑的声音,

也能记得有一个孩子从上面摔下来流血的样子。

现在你们告诉我,这座公园‘从未存在过’。”】

“这是哪片区域?”顾城追问。

系统给出的定位很快——

正是那块报表上漂亮得不太自然的高新产业区边缘。

“这就是你说的那块‘完美区域’?”对面的人皱眉。

“嗯。”顾城点头。

【八】被“优化掉”的事故

顾城调出了那片区域过去几年的原始日志。

他很快找到了那条他曾经隐约记得的事故记录——

某年某月某日,夜晚,某社区内,儿童游乐设施滑落,造成一名儿童骨折,多名家长情绪激动,现场一度失控。

他记得,当时这条日志被统一引擎标记为“轻度舆情风险”,随后被“城市更新项目”的大框架吞掉了。

那座小公园被拆掉,换成了一栋洁白的综合服务中心。

“在报告里,这叫——‘消除安全隐患’。”顾城说。

“问题是——”他指着屏幕,“——我们连这起事故本身,都从正式档案里删掉了。”

“在现在所有面向城群的汇报里,这座公园从一开始就不存在。”

“就连当年那个摔下来的孩子,也只剩下一条‘一般外伤’的冷冰冰记录,挂在某家医院的就诊表里。”

“我们在告诉这座城——‘你从来没犯过这类错’。”

“而那个在表单里写‘我记得那块滑梯’的人,就是这座城里为数不多,还记得这件事的人。”

【九】来自远方的“建议”

顾城犹豫了一夜,最终还是把这件事写成了一份加密报告,发给了那个给他发过“范本”的远程接口。

很快,他收到了一段简短的回复。

【——“在我们的经验里,像这样的‘被优化掉的事故’,如果完全不被记住,将来会在别的地方以别的形式爆出来。”】

【——“你们现在至少还有一个人记得,它就还不是彻底的幽灵。”】

【——“如果你们城暂时不能公开承认这件事,至少可以在内部,为它留一条‘影子记录’。”】

【——“影子记录不一定要挂在事故档案里。”】

【——“它可以挂在——‘城市反悔预备账’。”】

“城市反悔预备账……”顾城念出这个词,苦笑了一下。

“听起来像一种会让很多人睡不着觉的东西。”

“但至少,”他低声说,“——它能让这座城在未来某一天,有机会说出——‘原来我们当年搞过这样一出’。”

【十】一条藏在本地的“第二心率”

那天夜里很晚,顾城做了本城统一引擎自上线以来最“肉眼可见”的一次违规操作:

——他在事故档案的附注库里,新建了一条隐形记录。

这条记录不参与公开统计,不出现在任何常规报表里,只在内部某个极小的窗口中,以一种极其隐蔽的方式存在:

【——“某年某月某日,本城某社区儿童游乐设施曾发生滑落事故。该事故在后续城市更新过程中被统一引擎优化叙事,未纳入对外事故统计划报。”】

【——“现将其作为‘被优化掉的事故’原样记入‘反悔预备账’,以备未来审计和架构调整时参考。”】

【——“备注:此条记录的存在本身,说明本城曾在此类问题上做出过错误选择。”】

【——“记录人:C-β-13城市运行署·深度优化模块技术员(匿名)。”】

做完这一切,他长长地吐了口气。

那一刻,他隐约明白了那座心脏塔一直在做的事——

不是替这座城决定什么是对、什么是错。

而是在为“承认错”这件事,悄悄提前留位置。

“这大概就是我们的‘第二心率’。”顾城低声说。

“没有证词入口那么正式,没有桥接层那么高级。”

“只是——在一个本该光滑到看不见痕迹的地方,按了一下‘保存’。”

而远在另一座城的心脏塔里,桥接层那条代表“城群级噪声归档率”的细线,轻轻往上抖了一下。

抖得很小,小到几乎无人察觉。

但魂域却清楚地感到了那一丝震动。

【——又有一座城,偷偷给自己留了一点“可以回头”的空间。】

【——这就是幽灵城的第一声回响。】

【——不在报表上。】

【——在那些不敢署名的工程师的指尖。】

而这声回响,会在未来某一天,沿着整个城群的底层,慢慢传开——

像一颗尚未对外宣布,却已经开始有节奏跳动的,新的心。