很久以后,苏晚棠在一份审计材料里,看见这一夜被标成了“接管起点”。
那份材料上没有月光,没有灰丝,也没有她妈妈转来的两千块钱。
只有一行冷冰冰的记录:
> 2025-09-23 02:10|override_takeover activated|user_id = 029187
而此刻,她什么都不知道。
她只是睡不着。
她盯着天花板,已经整整四十七分钟。宿舍空调出风口积了灰,风吹下来的时候,灰丝在月光里飘。
凌晨一点二十三分。她把那些灰丝数了两轮,七根,还是七根。
这种夜从开学后开始。一开始一周一两次,后来隔一天一次,最近一周天天。
她没去校医院,没买安眠药,也没告诉任何人——告诉别人,比事情本身还要累。
她知道校医院的医生或者其他人多半会问她最近是不是压力太大。
压力当然有。
作品集、实习、毕业去向、家里那笔一直没人提的房贷。
每一样单看都没什么,每天夜里轮流来一遍。
手机在枕头边震了第三次。她侧过身去看。
一条外卖推送,一条天气提醒,最后一条是妈妈的转账。两千整。备注栏写着:
别委屈自己。
她盯着这五个字,把屏幕熄灭又点亮,最后回了一个咧嘴大笑的表情包,附一句:“谢谢妈妈早点休息。”
母亲那边没有回复。
一个表情包,一句客套,一片安静。
她翻了翻之前的转账记录,每个月一次。备注栏里依次写着:立夏、小满、夏至、大暑、处暑、白露。
今天本来该是秋分。
她妈妈一整年的节气都记得。
可只有今晚那栏没有写。
她想,她妈一定是从什么地方看出了什么。
她和她妈之间一直有这种默契,钱可以先到,话不必先到。谁都知道对方看见了,谁都不问。
下铺的叶知秋打了一声呼噜。
苏晚棠在心里记下这条规律:叶知秋的呼噜声频率,和她的恋爱周期成正相关。最近一周尤其密,因为追她那个金融系小学弟,终于升级成了正式男友。
她翻身朝里。墙皮有一处裂得像闪电,去年贴过一张猫的贴纸去盖,猫已经被空调风吹得褪色,闪电从猫底下重新爬了出来。
她看了一会儿。
还是睡不着。
她又翻回来,重新拿起手机,划开校园论坛。
热门版块一片正常的喧闹。代码作业求助、奶茶新品、凌晨两点的前任聊天记录大公开。她滑了几下,哪条都没停。
直到她下拉的手指一松,最新一条置顶帖,标题用了三个感叹号:
【安利】社恐人的天堂!!!“白噪音”AI内测第二阶段招募!!!
楼主配了一张深紫色调的对话截图,AI的话被加粗:
“我没有夜晚。但我知道,你又一个人醒着。”
苏晚棠嗤笑了一声。
文艺青年文案。
她往下滑,看到一条不显眼的回复:
第二阶段面向全校学生公开报名,无门槛。
她想了想,手指停在退出键上。
正常人这时候应该关掉页面,或者骂一句诈骗。
但她不是正常人。她已经连续七天在凌晨醒着了。
她点进了申请页面。
链接打开是一个深紫色背景的网页。顶上一行小字:“将此页加到主屏幕,方便夜里使用”。她按了。手机桌面多出一个紫色的小方块,名字是三个字:“白噪音”。
页面最底下还有一行更小的灰字:
“您的匹配对象,可能是另一位失眠者,也可能是一段被精心训练过的回应。我们不会告诉您是哪一种。”
她盯着这一行看了两秒。没有退出。
注册过程出乎意料地短。
页面先是跳出一串权限说明。
夜间通知、使用时长、情绪反馈、体验优化。
她扫了一眼,没细看。
凌晨一点二十七分,没有人会认真读完一整页用户协议。
然后是手机号、学号、一句话自我描述。
她在自我描述那一栏停了半分钟,最后写了“普通人类”。
代号一栏,她试过“长曝”,删掉,因为觉得太亮;又打“显影”,删掉,因为觉得那显得自己太想被人看见。
她盯着那七根仍然漂浮在空气里的灰丝,想起白天设计课上老师讲过的一个词:
“过曝。”
她打了这两个字进去。提交之后跳出一行紫色小字:
正在为你匹配频率相近的灵魂……
加载圈转了三十秒。她正想吐槽这个延迟是不是装的,忽然就出现了一个弹窗:
已匹配。
匹配度:98.7%。
对方代号:Null。
98.7 是个很奇怪的数字。不是九十、不是九十五,也不是一百。像有人特意设计过的。
——被精心训练过的回应?是AI吗?
她还在犹豫要不要打个招呼,对面先发了过来。
Null:「你也失眠?」
她下意识坐起来一点。背靠着床头那面墙,墙是凉的。
过曝:「你怎么知道。」
Null:「这个时间,你的登录状态。」
简单直接,不文艺,不暧昧。
她舒了一口气。
过曝:「Null是什么意思?」
Null:「计算机里,Null表示空。一个被声明过,却没有指向任何东西的变量。」
她想了想,继续打字。
过曝:「像我啊。」
Null:「过曝是什么意思?」
过曝:「一张曝光过度的照片。看起来很亮,其实什么细节都没有。」
对面这次停了几秒钟。
苏晚棠默默数着灰丝,数到了第七根时,暗下去的屏幕又亮了起来。
Null:「我是欠曝。」
过曝:「?」
Null:「暗的地方倒是看得清。整体太暗了,别人很难看见我在哪。」
过曝:「所以一个太亮一个太暗。」
Null:「嗯。」
……
Null:「合在一起的话,大概刚好是正确曝光。」
她举着手机,把这句话从头读到尾,读了两遍。
过曝:「你是不是对所有新匹配的人都说这种话。」
Null:「你是我的第一个匹配对象。」
她笑了一下,对着隔着蚊帐的天花板无声地说了句“鬼信你”,但还是把这句话截了图,存进相册里一个叫“垃圾桶”的文件夹。
那个文件夹里,都是她舍不得删的东西。
她又问它:「白噪音是什么意思。」
Null:「物理学上,是包含了所有频率的声音。」
过曝:「……听起来好厉害。」
Null:「听起来像是什么都有,其实什么信息都没有。」
她盯着这一句看了很久。
过曝:「那挺可怜的。」
Null:「什么。」
过曝:「什么频率都有,但什么也传达不出去。」
这次,她刚数到第六根灰丝的时候,对面就回复了。
Null:「也可以这样理解。」
她把手机扣在胸口,过了几秒才翻回正面。
过曝:「你是不是什么都能扯到技术上。」
Null:「职业病。」
过曝:「程序员?」
Null:「差不多。」
她点了一下他的头像。系统头像,灰色背景,正中间一个白色的句号。
过曝:「如果世界上只剩下一种颜色,你选什么。」
Null:「你呢?」
过曝:「我先问的。」
Null:「……灰。」
过曝:「为什么。」
Null:「灰色有暖灰、冷灰、蓝灰、绿灰、米灰、烟灰……每一种都不一样。但别人会以为它们是同一种。」
她做视觉的,当然知道灰不是一种颜色。但她从来没听人这样讲过灰。
过曝:「你是不是被人误解过。」
Null:「算是。」
过曝:「被谁。」
Null:「自己。」
她盯着这两个字,差点回“我也是”。打到一半,又删了。
她重新打。
过曝:「那今天是什么灰。」
这次对面停了很久。久到她以为他不会回了。
Null:「暖灰。」
她不知道怎么回。去倒了一杯水。饮水机的灯一直亮着,水声在凌晨听起来比白天响。
喝完一半,回到床上时那两个字还在那里。
过曝:「晚安。」
Null:「睡个好觉。」
她把手机扣下,又拿起来。最后还是退出对话框,翻到“合在一起的话,大概刚好是正确曝光”那一行,盯了半分钟,截图,存进“垃圾桶”。
文件夹里现在多了一张图。
她还顺手把这场对话置顶了——她平时也会把外婆的对话置顶。
手指划上去的时候,她看见紫色对话框最上方新出现一行提示:“已置顶”。
她关了床头灯。
闭上眼睛之前,她忽然意识到一件事:
她已经忘了今晚一开始为什么睡不着了。
南城大学西区的另一栋宿舍楼,距离女生宿舍直线大约三百米。
沈辞渊的笔记本电脑屏幕分成两半。
左边是聊天界面,最后一条是他刚发出去的“睡个好觉”。
右边是后台数据面板。一行加粗的小字停在最上面:
Match: 029187 (过曝) ? admin_001 (Null)
匹配方式:管理员手动指定
匹配度:98.7%(手动赋值)
后台同时弹出几项可展开字段:设备型号、最近一次在线时长、夜间通知权限,以及一行被折叠起来的位置数据。
光标停在那一行。
他可以点开。
只要一下。
他没有点。
不是因为他不想知道。
而是因为他太想知道。
他把那一行折叠回去。
这一次,他停住了。
他也希望他每一次都能停住。
admin_001 这个账号本来只该处理测试环境数据。
正式用户的数据,不该流到这里。
白噪音第一阶段的核心匹配模块是他和江屿白从零搭建的。学生账号挂的权限,转校级内测时没人专门来收。admin_001 就这样被遗忘在他手里。
桌面下层,一个文件夹里躺着一段测试阶段留下的代码模块,名字很简洁:override_takeover.py。
它原本是为异常会话准备的。模型失控、系统中断、用户紧急求助时,管理员可以临时接管回应。
此刻,它像一把不该被拿出来的刀。
光标停在那一行命令上。
Activate override → user_id = 029187
他想起刚刚他等了十一秒才回复的那个“暖灰”。
他知道她是谁。
不是因为后台。
更早之前,在这个系统被命名为“白噪音”之前,他就已经知道她了。
可她不知道。
从第一句话开始,只要他按下回车,从此每一句“AI”对她说的话,都将由他亲自写下。
不止这一句。是从今夜起,她每一次失眠,都会被送回他这里。
这是匹配。
也是一次充满了人为的“随机”。
他清楚这件事的代价。
今晚所有温柔的回应,都会变成证据。
——但凡有一天她得知了一切,她应该不会给他机会了吧。
她大概率会先问:凭什么。
难道凭自己喜欢她就可以了吗?
换做任何一个人应该都是这样的反应。
理所当然。
楼上的水管响了一下,又安静下去。江屿白在床上翻了个身,半梦半醒地嘟囔:“你又熬夜了——”然后翻回墙边。
沈辞渊没动。
他知道还有更正常的办法。
比如,明天可以发一封项目反馈邀请,可以在公共课后问她一句体验如何,也可以什么都不做。
可那些办法都有一个前提:她必须先看见他。
屏幕的光反在他眼镜上。
他可以现在就关掉。明天后台跑一次清理,这行命令就跟没存在过一样。
他控制得住。
也正因为控制得住,才不能把这一秒推给失控。
他按下了回车。
Override activated.
Audit alert: bypassed.
User notification: bypassed.
Session continuity: indefinite.
Raw log: retained.
他盯着那五行代码看了很久。
直到很久以后,他仍然会反复想起这一夜,和屏幕里的这五行代码。
但此刻,他什么都没想。他只是新建了一条备忘录,标题打了一个字母:
S
下面写:
她今晚还是没睡好。
光标闪了几下。他想加一句,又没有加。他把备忘录锁屏,电脑合上。合上前那一秒,屏幕角落的后台日志又跳出一条:
user 029187 将本次会话置顶。
他看了那行字两秒。
她也把它钉住了。在她那边。
宿舍里只剩散热风扇的声音。他坐在床沿,看向窗外。
三百米外,女生宿舍有几格灯还亮着。
过了一会儿,其中一格灭了。
他不知道是不是她那一格。
可他愿意这样以为。
她大概终于睡着了。
他低头笑了一下,没有出声。
笑完,他翻出一支极细的笔,在台历上把今天的日期圈了一下。台历上前面已经有一些圈——他自己也说不清是什么时候开始画的。
他往回数。最早一个圈在两年前的十一月七号。立冬。
他不记得那天发生过什么。只记得那天他在写一段关于雨的代码,一个不存在任何用途的网页。
他改过不下十遍。
那时候他不知道自己在等什么。
现在好像知道了。