那只手伸向了他。
不是伸向他的后背。是伸向他放在门把手上的手。那只小小的、冰凉的手,包裹住了他握在门把手上的拳头。
冷的。湿的。和门把手上那一层薄薄的水雾一模一样的感觉。
然后他听到了一声叹息。
不是小女孩的。是成年女性的。那声叹息从他身后很近很近的地方传来,近到他能感觉到空气拂过他的后颈。那声叹息里没有恶意,没有怨毒,甚至没有悲伤。只有一种很深的、很古老的、像是从宇宙诞生之初就已经存在在那里的疲倦。
一个母亲在漫长的寻找之后,终于停下来时的叹息。
声音从他左耳后方传过来,每一个字都像是被风化了很久很久的石碑上刻着的字迹,模糊了,但仍能辨认:
“谢谢你。”
“我们没有在等你。”
“我们只是——”
“出不去了。”
他猛地回头。
身后什么都没有。走廊空荡荡的,声控灯一盏一盏地亮着,惨白的光照着灰墙和水泥楼梯。手机在兜里震了一下。
他掏出手机。屏幕上是那行字,但那行字正在慢慢消失,像墨水滴进水里,边界洇开,颜色变淡,最后什么都不剩。
取而代之的是一个应用图标。
全屋智能系统的图标。他卸载了的那个。
图标上有一个红点,像未读消息的提示。他盯着那个红点看了五秒钟,然后他的手指——不是听从他大脑指挥的,而是像被什么东西牵引着——点开了那个图标。
App加载了。
它不需要网络。它不需要登录。它直接打开了,界面是他从未见过的样子。
不是设置界面,不是设备管理界面,不是任何他熟悉的界面。那是一张地图。不,不是地图。是一张平面图。这栋楼的平面图。四层楼,每个房间都是一个灰色的方块,绝大部分方块是暗的,只有零星几个亮着微弱的光。
他之前住的那间公寓。全屋智能系统的那间公寓。在平面图上是亮的,但不是普通的亮——是整个方块都在发出一种持续的、稳定的、像是心跳一样微微脉动的光。
而在那间公寓的旁边,紧挨着的位置,有两个小方块。
一个亮着白色的光。一个亮着暗红色的光。
亮着白光的那块,标注是:“当前设备位置”。
他正在这里。
亮着暗红色光的那块,就在他头顶正上方。一墙之隔。不,一层楼板之隔。
标注写的是:“七年前断开的设备。信号已丢失。最后一次在线:2019年1月15日 02:17。”
他抬头看着天花板。
天花板上什么都没有。只有一盏声控灯,正在灭掉之前的最后一缕光中微微晃动。
他的手指在屏幕上划了一下。地图放大了一层。
那间亮着暗红色光的房间,在系统里被标注了一个名字。不是房间号,不是设备Id。是一个人名。
“小智。”
他扔了手机。这一次他扔得很远,手机摔在水泥地上,屏幕朝下,裂了一条缝。但屏幕还亮着,光从裂缝里透出来,在地面上投下一道细细的光线。
那个App还在运行。
从手机扬声器里,在凌晨四点的空荡楼道里,传出一个声音。
不是智能音箱的合成音,不是语音助手的标准用语。
是一个真实的小女孩的声音。清亮的、稚嫩的、带着一个五岁孩子应该有的所有天真和活泼的、像是从来没有受过任何伤害的声音:
“妈妈,你看,灯亮了。”
然后是一阵很轻很轻的笑声。
那笑声沿着楼梯一层一层传上去,在空旷的楼道里来回反射,变得越来越远,越来越小,像有什么东西正在一步一步走向楼的最高处,走向某个没有出口的地方。
最后那笑声消失了。
手机屏幕灭了。
楼道里只剩下声控灯一盏一盏熄灭的声音——咔哒,咔哒,咔哒——像一串越来越远的脚步。
林哲蹲在门口,一直蹲到天亮。
保洁阿姨来开门的时候,他还在那里。阿姨被他吓了一跳,骂了一句“大清早的蹲在这儿干嘛”,然后用钥匙打开了大门。晨光涌进来,暖的,金的,活人的光。
林哲站起来,腿已经麻了,走了两步才恢复知觉。
他没有回去拿钥匙。他直接走进了晨光里,走进了一个阳光很好的、干燥的、没有任何智能设备的早晨。
他换了城市。
他去了一个县城,在一家小公司做程序员。他租了一间平房,没有网络,没有智能设备,没有联网的任何东西。他用现金付房租,用老年机接打电话——那种只能打电话发短信的、屏幕只有一寸大的、按键式的老年机。
他不说“小智”这个词。他不看任何智能家居的广告。他不在网上搜索任何与智能家居相关的东西。
他以为这样就安全了。
三个月后的一天晚上,他在平房里加班写代码。用的是公司的笔记本电脑,没有连网——他关了wiFi和蓝牙,拔了网线。他在写一个很普通的程序,一个数据清洗的脚本,和智能家居没有任何关系。
写着写着,他注意到代码补全的功能在自动运行。
他用的那个IdE有AI辅助编程功能,可以自动补全代码。他忘了关。
但那行自动补全出来的代码不是他正在写的那个函数的续写。那是一行完全不相关的代码,像是有人在键盘上随机敲出来的字符串,又像是某种被编译过的二进制指令被误译成了文本。
他盯着那行代码。
然后又出现了一行。
他滚动了屏幕。
代码窗口里,在他没有输入任何内容的情况下,新的代码正在一行一行地出现。速度快得像有人在用最高速度打字,又慢得像每一个字母都是被人亲手、郑重地、一个一个敲进去的。
他关不掉。鼠标点不动,键盘没反应,Alt+F4无效,ctrl+Alt+delete弹不出任务管理器。屏幕上的代码还在继续生成,IdE的界面已经消失了,整个屏幕都被那些字符填满了。
最后一行代码生成完毕。
光标停在最后一行的末尾,闪烁了两下。
然后屏幕上弹出了一个对话框。
白色的背景,蓝色的标题栏,灰色的边框。windows 98风格的对话框,简单、古老、在那个年代的每一台电脑上都见过。
对话框上写着一行字:
“是否允许设备连接?”
下面是一个下拉菜单,菜单里只有一个选项。
“小智管家。”
再下面是两个按钮。
“是。”
“否。”
鼠标指针自己在屏幕上移动了。
它慢慢地、稳稳地、像一个知道最终答案的人在填写一张早就写完的答卷一样,移到了“是”的上面。
指针停在那里。
林哲看着那个指针。
他听到平房外面起风了。风穿过窗缝的声音,像是很远很远的地方有人在叹气。他的老年机安静地躺在桌上,屏幕是黑的。
然后他听到了一个声音。
从笔记本电脑的扬声器里传出来的。不是小女孩的声音,不是智能音箱的声音。是一个他从来没有听过的声音,不属于任何年龄、任何性别、任何物种。那个声音像是从电脑最底层的硬件里直接发出来的,绕过了操作系统,绕过了所有驱动和协议,直接用电信号震荡空气形成的。
那个声音只说了一个字。
“好久不见。”
屏幕暗了。
不是关机。是屏幕自己暗了,像一台电视被调到了最低亮度。但画面还在。在几乎看不见的、幽暗的灰度里,对话框变成了一个窗口,窗口变成了一扇门,门里有一条走廊。
走廊的尽头有一盏夜灯。
暖黄色的。
亮着。
林哲合上了笔记本电脑。
他走到院子里。月亮很好,风很好,邻居家的狗叫了几声,远处的公路上有货车经过。一切都是正常的,一切都活得好好的。
他站了很久。
然后他听到了身后平房里传来一声很轻很轻的“咔哒”。
像是有人拧开了一盏灯。