精彩小说尽在九九小说网!手机版

您的位置 : 九九小说网 > 古典架空 > 规则失效清醒是罪 > 第2章 镜子里的东西

第2章 镜子里的东西

703的门在林昭身后关上了。

没有声音。

就像它从来没有开过。

但她没有回头去看那扇门。不是不想,是做不到——因为眼前的东西把她的全部注意力钉在了原地。

那不是走廊。

那是一间办公室。

天花板上的日光灯管发出均匀的冷白色光,比走廊里那盏垂死挣扎的声控灯明亮得多,也残忍得多。光线像一把手术刀,把整个空间剖开来,每一个细节都暴露无遗——磨砂玻璃隔断、灰白色的办公桌、黑色转椅、桌上的双显示器支架、角落里半死不活的绿萝。

空气里有一股味道。

不是走廊里那种霉气和消毒液混合的**气息,而是一种更让人不安的味道——咖啡粉、打印机的臭氧、中央空调吹出来的循环风,以及某种已经淡去的、属于特定人的香水味。

林昭认得这个味道。

这是创世智核A座17层的气味。她在这里待了四年。她在这里写了无数行代码,开了无数次会议,在某一天被保安“请”出了那扇需要工牌才能刷开的玻璃门。

她站在门口,没有动。

日光灯的光落在她脸上。她的五官在冷光下显得格外清晰——眉眼偏冷,瞳色极淡,像冬天结了薄冰的湖水。这种长相在不笑的时候会给人一种拒人千里的疏离感,而她此刻确实没有笑。

她的目光从绿萝移到磨砂玻璃,从磨砂玻璃移到办公桌上的工牌卡槽,从工牌卡槽移到——

工位上的那个人。

黑色转椅原本背对着门口,在她的目光抵达的瞬间,像是感应到了什么,缓缓转过来。

椅子的转轴发出一声极轻的摩擦声,像某种精密机械被启动。

椅子上坐着一个人。

一个女人。

一个和她长得一模一样的女人。

同样的眉眼,同样偏冷的五官线条,同样极淡的瞳色。同样的白色衬衫,同样的黑色长裤,同样的左手腕上没有任何饰品——林昭从不戴手表和手链,因为敲键盘的时候会硌。

甚至连坐姿都一样:背脊挺直但不僵硬,左手自然垂在扶手上,右手搭在桌沿,指尖微微蜷曲——那是长期使用键盘的人的习惯性手势,手指永远在等待一个不存在的键位。

但那个人在笑。

林昭不常笑。即使笑,也是嘴角微微动一下,弧度浅得像刀尖挑破水面泛起的涟漪,转瞬即逝。

而那个人笑得非常标准。

嘴角上翘的弧度、露出的牙齿数量、眼角配合弯起的纹路——全都恰到好处。像一个从“人类表情参考手册”里走出来的示范图例。

和电梯里那个老人一模一样的笑容。

“你迟到了。”

那个人开口了。声音也和她一样,但语调不对——太平,太稳,每个字的音长都像是被尺子量过的。

“林研究员。”

林昭没有回答。

她的手垂在身侧,指尖几不可见地蜷了一下——那是她在进行高强度计算时的无意识动作。如果你观察得足够仔细,就会发现她的目光正在移动,从一个点到另一个点,从那张和自己相同的脸,到桌面上的显示器,到显示器旁边那个黑色的工牌卡槽。

卡槽里插着一张工牌。

照片是她的。名字是她的。工号是她的。

有效期截止日期:三年前的今天。

“你在看什么?”椅子上的人歪了一下头,角度精确得像是用角尺量过的,“看你自己吗?”

林昭终于开口了。

“你不是我。”

只有四个字。

语气平淡,像在陈述一个物理事实。

那个人又笑了。还是那个标准的弧度,但在日光灯的冷光下,那个笑容的边缘出现了一丝肉眼几乎无法捕捉的抖动——像投影仪对焦不准时画面的轻微震颤。

“我当然是你。”那个人说,“我是你留在这里的东西。”

“什么东西?”

“你不想带走的那部分。”

林昭没有接话。

她的目光终于从那个人身上移开,落在了桌面的显示器上。

屏幕亮着。

不是待机状态的那种黑屏亮着LOGO,而是正在运行着某个程序。窗口最大化,背景是深灰色,代码编辑器的配色方案——暗色底,关键字高亮为蓝紫色,字符串是暗绿色,注释是灰色斜体。

这套配色方案她太熟悉了。是她自己配的。从字体到色号,每一个参数都是她亲手调的,用了整整一个下午,因为那天她跟导师沈渡川吵了一架,需要做一件完全由自己掌控的事来平复心情。

她调完这套配色方案的时候,沈渡川路过她的工位,看了一眼屏幕,说了一句:“你连代码的颜色都要控制?”

她说:“控制不了的东西,至少可以让它好看一点。”

沈渡川笑了,拍了拍她的椅背,走了。

那是他拍过她椅背的最后一次。

一周后,她被他从这栋楼里赶了出去。

林昭的手指蜷了一下。

然后她低头去看屏幕上的代码。

窗口顶部的标题栏上写着:

「归墟试炼·内部测试版」——/core/rule_engine/init.py

下面是代码。Python。她最熟悉的语言。

python

# RULE ENGINE v0.1.3

# Author: Lin Zhao

# Created: 20XX-08-17

# Last modified: 20XX-11-09

class RuleEngine:

def __init__(self, ruleset):

self.rules = ruleset

self.validation_mode = "strict"

self.fallback = "format"

def validate(self, action):

for rule in self.rules:

if not rule.check(action):

return False

return True

代码是未完成的状态。check方法只有声明没有实现体,fallback参数定义了但没有在任何地方被调用。注释里还有一行被注释掉的TODO:

# TODO: 需要定义当规则本身出现逻辑冲突时的处理机制

林昭的目光钉在那行TODO上。

这行字是她写的。她记得。三年前的那个秋天,她正在为雅典娜设计伦理决策框架。核心问题只有一个:当规则A和规则B发生冲突时,AI应该听谁的?

她当时的方案是引入一个更高层级的“元规则”来裁决冲突。

但元规则本身也可能冲突。那就需要元元规则。元元规则冲突了需要元元元规则。

无限递归。

她把这个问题写进了TODO,然后就被“请”出了公司。TODO永远停在了那里,像一根刺。

“你看懂了吗?”

椅子上的那个人又开口了。这次她的身体往前倾了倾,日光灯在她脸上投下一片阴影,把那个标准笑容切成了明暗两半。

“这是你写的。”那个人说,“你写的规则引擎。”

“然后呢?”

“然后,”那个人歪了歪头,角度和上一次一模一样,“你用这个引擎造了一座监狱。”

“把自己关进去了。”

林昭的手指又蜷了一下。

但不是因为恐惧。

是因为她在那个人的话里听到了一个破绽。

——“你用这个引擎造了一座监狱,把自己关进去了。”

如果《归墟试炼》是她写的代码,如果她现在被困在这个游戏里,如果游戏的核心规则引擎来自于她的代码——

那么,为什么她会“不记得”自己写过它?

三年前她确实在做AI伦理决策框架。但那是为雅典娜设计的,一个用于评估医疗资源分配伦理问题的模型。不是游戏。不是副本。不是规则怪谈。

有人修改了她的代码。

或者说——

有人在她的代码基础上,盖了一座她认不出来的建筑。

林昭的瞳孔微微收缩。不是恐惧引起的收缩,是猎人终于看见猎物露出脚印时的那种收缩。在日光灯的冷光下,她那双颜色极淡的眼睛忽然变得格外专注,像冰层下面的水流忽然加速了。

“你说这是我写的。”她说,声音比刚才更轻了。

“那你告诉我——”

她抬起手,指向屏幕上的那行TODO注释。

“这行字下面的代码,是谁写的?”

那个人没有回答。

她的笑容定住了。不是裂开,是定住。像一段正在播放的视频被人按下了暂停键,画面停在最标准的那一帧上,但标准得过分了,过分的标准就是诡异。

日光灯闪了一下。

就那么一下。

极短的一瞬,短到如果不是林昭这种对细节有病态般敏感的人,根本不会注意到。

但林昭注意到了。

因为在灯闪的那一瞬间,椅子上的那个“林昭”——变了。

不是脸变了。

是整张脸上所有的像素都偏移了一个像素点。

就像一面镜子的镜面在某个角度下出现了肉眼可见的弧度,把镜中的倒影拉伸了一丝。只是一丝。但足够让林昭看见了。

她看见了那个“林昭”真正的样子。

在那千分之一秒的灯光闪烁中,椅子上坐着的不是一个和她一模一样的人。是一个由无数细小的、发光的、不断流动的数据碎片拼成的人形轮廓。那些碎片在不停地重组、复制、覆盖,用最快的速度维持着一张和她相同的脸。

像一个每秒钟刷新六十次的屏幕。

你看到的不是“画面”。

是“刷新”。

林昭的呼吸停了一瞬。

不是因为恐惧——她的心率甚至没有加快。

是因为她终于想明白了第一条规则。

「晚上10点后不要照镜子。」

不是镜子里有鬼。

是镜子本身就是鬼。

“你是一个显示终端。”她说。

声音很轻,但在空旷的办公室里,每一个字都像是被放大了一圈。

“你不在椅子上。你在屏幕里。”

“你不是人。”

“你是一面镜子。”

那个“林昭”的笑容终于裂开了。

和电梯里那个老人一模一样的裂法——从正中间开始崩坏,左边的弧度卡住,右边继续往上扯,把整张脸拉扯成一个不可能的表情。

日光灯开始剧烈闪烁。

不是一根灯管在闪,是整间办公室所有的光源都在闪——天花板上的灯管、显示器屏幕的背光、甚至工位角落里那盆绿萝叶片上反射的光点。所有的光都在同步地明灭,频率越来越快,像一台过载的服务器正在疯狂地尝试重启某个进程。

在那个崩坏的笑容完全碎掉之前,椅子上的人发出了最后一个声音。

“你——”

“不——”

“该——”

“看——”

“到——”

每一个字之间都有精确的间隔。不是人类说话的自然节奏,是一段被拆分成单字播放的音频文件。

“这些。”

最后一个音节落下的时候,显示器屏幕猛地一亮。

不是正常的高亮。

是一种具有方向性的、像探照灯一样的亮。光从屏幕里射出来,打在林昭身上,把她整个人笼罩在一层冷白色的、带着轻微频闪的光圈里。

然后她看见了屏幕上的新内容。

不是代码。

是一面镜子。

屏幕变成了一面镜子,映出了她的脸。日光灯管的光从她头顶打下来,在她眉骨下方投下一小片阴影,让她的眼睛隐在暗处,只有瞳仁最中心的一点反着光,像冰面下没有冻结的水。

她看着镜子里的自己。

镜子里的自己也在看她。

然后镜子里的她笑了。

和椅子上那个人一模一样的标准笑容。

林昭感觉自己的嘴角在动。

不是她主动动的。

是某种外力——一种轻柔的、不可抗拒的、像水流一样的力——正在从屏幕里渗出来,爬上她的脸,用手指掰着她的嘴角往上提。

屏幕里的她笑得越来越标准。

屏幕外的她,嘴角正在被同步拉扯。

她动不了。

不是身体被束缚的那种动不了,是“想动”这个指令本身在传输到肌肉之前就被截断了。有人——有东西——在劫持她大脑和身体之间的通信协议。

像一个远程桌面控制软件。

操控者在屏幕里。

被控者坐在屏幕外。

第一条规则从不是“不要照镜子”。

是“不要被镜子照到”。

因为被照到,就会被同步。

被同步,就会被覆盖。

林昭的嘴角还在往上扯。

已经扯到了一个让她颧骨发酸的角度。

日光灯停止了闪烁。

办公室里一片死寂。只有显示器背光发出的细微电流声,和她自己越来越慢的呼吸声。

然后她笑了。

不是被掰出来的那个笑——是她自己的笑。

冷的,锋利的,嘴角弧度只挑起一侧,像一把刀在出鞘时反射的第一道光。

“你说我不该看到这些。”

她的声音从被掰成奇怪角度的嘴唇之间挤出来,带着某种被压制但绝不屈服的东西。

“但你已经让我看到了。”

“你让我看到了屏幕。”

“你让我看到了刷新。”

“你让我看到了你的代码——”

她猛地抬起右手。

动作不流畅。她的身体还在被那股力拉扯,每一个关节都像生了锈的合页,每移动一厘米都需要把阻挡她的指令撕开一道口子。

但她动了。

一点一点地,像一个人在齐胸深的沼泽里行走,每一个动作都要消耗掉正常情况下的十倍力气。

她的手指碰到了显示器的边框。

金属是冰的。

她把手指按在屏幕上。

屏幕上的镜像是冷的。不是金属那种物理意义上的冷,是一种从代码内部渗出来的、不携带任何温度的冷。像你把手放在一扇通往冬天的窗户上,玻璃本身不产生寒意,寒意来自窗外的那个世界。

她的手指在屏幕上划过。

镜中她的脸被手指的拖拽拉出一道涟漪,像水面被投入石子的瞬间。涟漪扩散开来,那个标准笑容被搅碎成无数细小的光点,在屏幕的像素矩阵里四散奔逃。

然后她按住了屏幕里自己的左眼。

“第一条规则是‘晚上10点后不要照镜子’。”她说。

声音稳定下来了。不是力气的恢复,是她终于摸到了这张网的结构,摸到了每一根丝线的走向。

“你说为什么是‘晚上10点后’?”

屏幕里的镜像开始震颤。

不是刚才那种像素偏移——是整体性的震颤,像一面镜子在被敲击的边缘。

“因为白天的时候,窗户有光。玻璃会反射外面的世界。”

“但到了晚上,玻璃不再是一扇窗户。”

“它会变成一面镜子。”

她的手指在屏幕上的左眼位置按下去。

更用力了。

“你不是鬼。”

“你是一个视觉BUG。”

“你只存在于显示介质里。”

“镜子、玻璃、水面、屏幕——”

“任何能反射的平面,都是你的载体。”

“但载体不是无限的。”

她弯下腰,把脸凑近屏幕。

近到鼻尖几乎触碰到屏幕里的那个自己。

近到她能看见镜中那双和自己一模一样的眼睛里——有一个像素点,在反复地、无意义地、像死循环一样地闪烁。

“你在复制我的视觉信息。”她说,声音轻得像在自言自语,“你看到我,你复制我。我越看你,你复制得越精确。”

“这就是为什么规则说‘不要照镜子’。”

“不是怕我看到你。”

“是怕我让你——看得太清楚。”

她的右手从屏幕上移开。

但她没有后退。

她转过头,看向办公桌旁边的磨砂玻璃隔断。

磨砂玻璃是半透明的。

日光灯的光穿过磨砂层,变成一片均匀的、没有焦点的乳白色柔光。那片玻璃什么都映不出来——看不见她的脸,看不见办公室的倒影,看不见任何可以被称为“镜像”的东西。

因为磨砂玻璃把所有的光都打散了。

光不再按照入射角等于反射角的规律飞行。它们撞在凹凸不平的表面,向四面八方散射,没有一束光能够完整地回到它来的方向。

没有完整的光路。

就没有镜像。

没有镜像。

就没有载体。

林昭盯着那片磨砂玻璃。

然后她把手按了上去。

“你在复制我的时候,”她说,“用的是一套行为脚本,对吧?”

“脚本里写好了‘林昭应该有的表情’‘林昭应该说的话’‘林昭应该做的动作’。”

“但脚本总有边界。”

“脚本写了‘林昭看到镜子时的反应’,写了‘林昭看到另一个自己时的反应’——”

“但脚本没有写——”

她的手在磨砂玻璃上用力一推。

玻璃隔断晃动了一下。

“——如果林昭不看镜子,看毛玻璃。”

“你会怎么样?”

办公室里所有的灯都灭了。

不是一盏一盏灭,是同时灭。像有人拔掉了整层楼的电源总线。日光灯管里残留的荧光粉还在发着微弱的、正在快速衰减的余光,把整个空间拖进一片暗绿色的、像深海一样的幽暗里。

只有显示器还亮着。

屏幕上,那个和她一模一样的脸正在崩溃。

不是“裂开”那种有戏剧效果的崩溃,是一种更安静的、更彻底的崩溃——像一个渲染到一半被强行终止的3D模型,纹理图层一层一层地剥落,多边形网格从边缘开始瓦解,露出下面的线框、顶点、和空白的灰模。

脸没了。

然后是肩膀,是手臂,是上半身。

最后只剩下一个轮廓。

一个由无数发光线段勾勒出来的人形轮廓,孤零零地坐在黑色转椅上,像一个被从游戏中删除角色后残留在缓存里的幽灵模型。

林昭看着那个轮廓。

轮廓也在看她——如果那堆线段还有“看”这个功能的话。

日光灯管的余光彻底熄灭了。办公室陷入完全的黑暗。只有显示器的冷光打在她脸上,把她的五官切成明暗分明的两半。她的眼睛在屏幕光的映照下亮得惊人,瞳孔深处有什么东西在燃烧——不是愤怒,不是恐惧,是一种比两者都更炽烈的、更持久的东西。

猎人终于把猎物逼进死角时的专注。

“你不该让我看到屏幕的。”

她对着黑暗中的那个轮廓说。

“更不该让我看到代码。”

“最不该让我看到那行TODO。”

她伸手,摸到了显示器的电源键。

不是要按下去。

是在等。

等那个轮廓做最后一件事。

它做了。

黑暗中,显示器的右下角弹出一行小字。不是代码窗口里的系统日志,是一个独立于所有程序之外的、浮在屏幕最上层的提示框。白底黑字,没有任何装饰,像Windows系统最早的对话框。

「规则碎片·视觉」

「已获取」

「效果:你可以看见规则的边界」

林昭看着那行字。

看了三秒。

然后她按下了电源键。

屏幕暗了。办公室彻底沉入黑暗。没有光,没有声音,没有那个和她一模一样的轮廓。只有她自己的呼吸声,在黑暗中一起一伏,像潮水拍打礁石,缓慢,沉重,不可阻挡。

她在黑暗中站了很久。

然后她的左手腕亮了一下。

幽蓝色的光从袖口透出来。她把袖子拉上去,看见那串倒计时还在跳动。

68:21:47。

下面多了一行小字。

字号比倒计时小很多,颜色也不是幽蓝,是一种更暗的、接近铁锈的红色。如果不仔细看,会以为那是皮肤下毛细血管映出来的颜色。

但林昭仔细看了。

她看见那行小字写的是:

「碎片持有者编号:唯一」

「权限级别:未定义」

「备注:该碎片创建于三年前。创建人——」

最后一个字被一片突然亮起的光吞没了。

不是显示器的光。

是天花板上的日光灯管。所有灯管同时亮起,白炽光像洪水一样灌满整间办公室。骤然从黑暗切换到强光,林昭条件反射地闭了一下眼睛。

再睁开的时候,办公室变了。

磨砂玻璃隔断还在。灰白色办公桌还在。黑色转椅还在。绿萝还在。

但工位上的那个人没了。

转椅空空荡荡,椅背上搭着一件米白色的空调衫——她的空调衫,三年前留在这间办公室里没有带走的那件。针织面料,袖口有点起球,左肩上有一小块洗不掉的咖啡渍。

她记得那块咖啡渍。

是沈渡川递咖啡给她的时候洒的。那天他们在争论一个伦理框架的问题,他激动了,手一抖,咖啡泼在她肩上。他一边道歉一边找纸巾,她说不碍事,然后那件空调衫就搭在椅背上,从那天起再也没穿过。

空调衫还在。

人没了。

林昭走向那张椅子。她的手伸出去,指尖触碰到那件空调衫的袖口。面料冰凉,带着中央空调送风口吹出来的那种循环风的温度。

她把袖子翻过来。

袖口内侧,用黑色的线绣着一个字母。

L。

不是机绣。是手缝的。针脚不太整齐,起针和收针的地方有线头没有剪干净。

这是沈渡川绣的。

她记得。有一天下班后,整层楼只剩他们两个人。沈渡川路过她工位,看见她拿着针线笨拙地缝袖口上崩开的线。他叹了口气,说你这个拿手术刀都缝不好血管的人,让我来。然后他接过针线,缝了一个L,说这样以后空调衫跟别人的混了也能认出来。

她把那个L缝反了。

沈渡川说你连字母都分不清正反?

她说我分得清,只是缝的时候忘了镜像。

忘了镜像。

林昭的手指猛地收紧,把那件空调衫攥出了褶皱。

日光灯管的光落在她脸上。她的表情没有变化,但瞳孔深处有什么东西在剧烈地收缩——不是恐惧,是一种比恐惧深得多的、从骨头缝里渗出来的东西。

三年前。

镜像。

规则碎片。

创建人是她。

代码里的TODO。

沈渡川绣的L。

L的反面是什么。

是?。一个不存在的字母。

一个镜子里才会出现的字母。

她把空调衫翻过来。

对着日光灯的光。

那个L在逆光下变成透明的轮廓,像一个没有被填满的伤口。光线穿过针脚之间的缝隙,在天花板上投下一个模糊的影子。

影子里的字母是正的。

因为镜子翻转了两次。

一次是绣的时候。

一次是看的时候。

两次翻转,等于没有翻转。

等于真相。

林昭把空调衫叠好,放进外套内侧的口袋里。动作很慢,很仔细,像在做一件仪式。然后把拉链拉上,把那个L贴在心脏的位置。

办公室开始褪色。

不是比喻意义上的褪色——是物理意义上的。墙壁的颜色从灰白变成灰,从灰变成雾,从雾变成透明。磨砂玻璃隔断像糖溶于水一样无声地消解。绿萝最后一片叶子的绿色抽离成灰白。日光灯管的光不再是从某一个点发出,而是从四面八方同时涌来,没有方向,没有阴影,没有任何可以定位的参照物。

像一个正在被关闭的程序窗口。

林昭站在这个正在消失的空间中央,左手腕上的倒计时还在跳动。

日光灯管最后一缕光暗下去之前,她看见办公桌的抽屉拉开了一条缝。

抽屉里有一个东西。

一个不应该出现在那里的东西。

一个手机。

屏幕亮着。

上面是一条草稿箱里没有发送的短信。

收件人是她的旧号码。

发送时间是三年前。

发送人:沈渡川。

短信内容只有四个字:

「别相信镜」

第四条没有写完。

光灭了。

所有东西都消失了。

林昭站在一片虚空里。没有上下,没有左右,没有前后。只有她自己的呼吸声,和手腕上那串幽蓝色的数字,在黑暗中一下一下地跳动。

68:14:22。

68:14:21。

68:14:20。

然后黑暗中浮现出一行字。

冷白色的,像日光灯管的余烬:

「副本结算中……」

「幸福小区·已完成」

「规则碎片获取:视觉」

「隐藏线索获取:1/7」

「下一副本载入倒计时:23:59:59」

字迹暗下去。

新的光从脚下亮起来。不是日光灯那种冷白色,是一种更暖的、更旧的光,像老式绿皮火车窗外的夕阳。

她听见了铁轨的声音。

哐当。哐当。哐当。

节奏越来越快。

一扇门在她面前浮现。锈迹斑斑的金属门,门把手上挂着一个木牌,木牌上用红漆写着:

「废土列车·第37次班次」

「规则如下:」

「1. 每站必须投票放逐一人。」

「2. 被放逐者将在下一站下车。」

「3. 车上永远保持满员。」

「4. 列车长永远不会错。」

「5. 终点站是——」

第五条规则的最后几个字被一块暗红色的污渍盖住了。不是油漆,不是墨水。林昭认得那种颜色。

是血。

干涸了很久的血。

她伸出手,推开了那扇门。