【数年后 · 研究中心 · V2 版测试日】
事故之前的一切,看上去都在“按程序进行”。
早上八点,走廊灯从夜间模式切回日间模式,光线从冷白略微往暖色偏了一点。实验楼一层大厅的屏幕自动滚动当天日程:
09:00 – V2.3 空间装置整体验证(闭环)
14:00 – 行为数据初步分析会
17:30 – 版本评估小结
他的名字出现在09:00那行的“技术负责人”一栏。
“看上去挺体面。”旁边的同事打趣。
他只“嗯”了一声。
胸牌上的职位已经从“assistant”换成了“architect”,文字很小,只在边角写着,却像一块看不见的重量压在胸前。
V2.3 不是第一次整体测试。
在此之前,他们已经跑过 V2.0、2.1、2.2——每一版都在上一个版本的路径上修补漏洞、删掉系统不喜欢的噪音、调整删减逻辑的权重。
从报告上看,V2.3 是目前“最干净的一版”。
“删除错误样本的效率提高了 17%。”
“高理解度被试者的存活率提升至 92%。”
这些数字看上去很好看。
直到它们从报告里爬进现实。
他站在监测室。
这一版的运行监测室比多年前他坐过的那间更大:整面墙都是屏幕,实时投射出空间装置内部的多视角画面。每块屏幕下方都有一栏快速信息:被试者编号、当前所在区域、心率、行为标签。
花白头发的男人不在。
他被叫去参加某个更高层面的会议,临走前只说了一句:“V2.3 很干净。你只要看着它跑完。”
“如果出问题呢?”他问。
男人看了他一眼。
“照手册。”
手册摆在控制台上,厚厚一册。
封皮上写着“应急处理规范”,第一页就写着一句话:
“优先保障装置结构与数据完整性。”
“其余问题,归档处理。”
九点整,第一批被试者入场。
这一次不是孩子,而是经过筛选的成年志愿者。
他们穿着统一的灰色服装,腕带更窄,胸前只写编号,不写名字。
有人在门口给他们做最后讲解:
“内部是一个多层空间结构。”
“你们需要在规定时间内找到出口。”
“规则会写在墙上。”
“请尽可能遵守。”
“如果感到不适,可以按腕带侧边按钮,系统会记录。”
“记录”两个字,替代了“救援”。
他站在监测室里,戴着耳机,听着那一套熟悉的话被一字不差地重复。
“准备。”
他对着麦克风说。
空间装置内部的灯一点一点亮起来。
V2.3 的平面图在他的脑海里展开:多层结构像一叠叠半透明的纸片压在一起,每一层都有可变路径,某些节点连接上下楼层。一些他当年画下的“漏洞”已经被修补,一些新生的缝隙则被系统自动标注为“可利用的异常”。
“开始。”
计时器启动。
被试者们开始移动。
他一边看画面,一边看右侧的日志流:
09:02:15 – S01 进入区块 A-3
09:02:48 – S02 遇到规则墙:“Always move forward”
09:03:10 – S03 在第一次分叉口停留 >30s(标记为“犹豫”)
V2.3 的删减逻辑,比当年的 V1 系列多了一条“容错”:
“在前期阶段,允许有限度的犹豫与回溯。仅在关键节点执行绝对删减。”
这是他坚持加上去的。
“人不是直线。”
他在版本会议上说。
“你不能指望他们一开始就沿着你画的轨迹走。”
某位委员当时皱眉:“这会降低筛选效率。”
“会增加一点噪音。”
他承认。
“但那是人。”
现在,装置里的一切看上去都“在预期内”。
S01 反应很快,顺着规则提示找到了“正确的门”;S02 稍慢,但总体路径也没有完全偏离;S03 的犹豫被系统记录下来,却暂时没有触发删除。
“看,”同事说,“你那条‘容错’还是有一点人味的。”
他没笑。
时间走到第十二分钟时,第一个“事件”发生了。
S05 在一段看上去很普通的走廊里突然摔倒。
监控画面里,他的脚在与地面的接触点处轻微打滑,整个人朝前扑去,肩膀撞上墙。
“地面摩擦系数异常?”有人在后排低声说。
“摄像重放。”他指令。
系统把刚才那几秒放慢。
画面显示——
在 S05 脚踩下去的瞬间,地板下层的某个重排模块刚好执行了一个微小的位移。
理论上,这种位移应该远小于人的感知阈值,最多让脚下的触觉有一瞬间的“不稳”。
实际效果是——
那一瞬间的不稳击中了 S05 某条旧伤。
他肩膀撞在墙上,下意识用手去扶,一侧手腕上的腕带在冲击下发出一声尖锐的“滴”。
“信号波动。”系统提示。
监测屏幕右上角弹出红字:
“S05 – 心率突增 / 肌肉紧绷 / 呼吸急促(疑似恐慌反应)”
“是否执行镇静处理?”
镇静处理——
在 V2 系统里,那不是安抚,而是“暂时关闭一部分通道”:让被试者的感知变钝,从而“减少噪音”。
“先观察。”他下意识说。
S05 扶着墙,缓慢站直。
他在原地停了几秒,然后转身,沿着走廊往前。
“看吧,人会自己调整。”后排有人说。
他没放松。
他注意到 S05 的行为标签开始变化——从“谨慎”变成“过度警惕”,停顿时间变长,眼球移动频率升高。
“他在随时等待下一次撞击。”
他在心里说。
系统只把这些归为“情绪波动”。
“情绪波动过高的样本,会在后期被自然淘汰。”
这是 V2 的一条默认注释。
事故发生在第二十五分钟。
那时,大部分被试者已经接近各自路径的中后段。
V2.3 的一个“创新”是——引入了“局部重排”:
为了避免被试者通过“互相传经验”的方式轻易破解路径,系统会在一定周期内对局部结构做小幅度变化。
这在模拟中运行得很好。
在真实人身上,它第一次露出牙齿。
S05 在一段楼梯间停了一下。
台阶不高,墙上写着一行小字:
“Always move forward. Do not stay too long.”
他抬头,看了一眼上方的灯。
光线有一点刺,他用手挡了一下。
就在这短短几秒内,楼梯上方的重排模块收到一个周期性指令——
“切换路径状态:开 → 闭。”
如果那一刻没有人正好站在楼梯上,这个切换就会被记成一次“无损重排”。
实际情况是——
S05 正好迈步。
楼梯上方的一小段平台轻微下沉了不到一厘米。
按设计,这一厘米的位移不会导致任何结构失效,也不会让人直接摔下去。
但 S05 的脑意识别出“地不稳”的速度,比身体适应快了半拍。
恐慌反应被瞬间放大。
他的腿在那一瞬抽紧,整个人向后仰。
这一次,肩膀没有撞到墙。
而是整个人从楼梯侧面的防护栏空档翻了下去。
监控画面同时从两个角度捕捉到这一幕——
一个是俯视图:一个灰色的身影在白色几何结构之间突然塌下;
一个是侧视图:他的身体在空中转了一圈,腕带的金属边反射出一道短暂的光。
“暂停重排!”有人喊。
太晚了。
几米的高度,在结构设计图上只是冷冰冰的数字。
在现实里,是一个人落地所需要的所有时间。
监测室里短暂静止。
他看着那一帧画面,感觉到胃里有什么东西缓慢往上翻。
系统很快给出反馈:
“S05 – 心率消失 / 生命体征中断。”
“建议:立即封锁所在区域,记录为‘结构意外’。”
“是否调用医疗应急?”
“是。”他几乎是冲口而出。
急救小组被派出。
几分钟后,他们把 S05 从楼梯井底部抬出来。
医疗报告会用一些非常专业的词来描述发生的一切——
“高处坠落导致多处创伤,抢救无效。”
事故原因被写成:
“局部重排与被试者恐慌反应叠加,产生非预期行为路径。”
他站在监测室外的走廊里,看着担架被匆匆推过。
白布盖住了脸。
只有一只手从布边露出一小截,腕带早已被解下,手腕上留下被金属长期压出的红痕。
他的指尖敲了一下墙。
墙没动。
只有骨节发出一声闷响。
他回到监测室时,花白头发的男人已经赶来了。
他站在屏幕前,最后一次重放那几十秒的画面。
没有人说话。
只有扬声器里偶尔传来其他被试者的脚步声——实验被紧急中断,但装置里剩下的人还在被一点点“引导”到安全出口。
“这不是结构失效。”
终于,有人打破沉默。
是后排的一位技术员。
“所有部件都在设计参数内运行。”
“重排位移值没有超标。”
“护栏高度符合标准。”
“从结构角度看,这不算事故。”
他抬头。
“那算什么?”
技术员看了看他,又看向男人。
“算行为偏差。”
“他自己掉下去的。”
那句话像一根冰冷的钢针穿过空气。
“我们会在报告里写清楚。”技术员补了一句,“情绪不稳定样本在高维空间结构中更容易发生非预期行为。”
“这类样本本来就是系统下一阶段要删掉的。”
“只是时间提前了。”
他听到自己笑了一下。
笑声不大,却让嗓子发疼。
“提前?”
他看着屏幕上那条已经变成直线的心率曲线。
“在你们看来,”
“这只是删减时间线上往前挪了一格。”
“从系统的角度看,是。”技术员说。
“从人的角度看呢?”
他转头看向花白头发的男人。
男人沉默了很久。
“从人的角度看,”
他慢慢说。
“我们确实杀了一个人。”
监测室里安静了一瞬。
有人不安地挪了挪椅子。
“但我们不是故意的。”技术员忍不住说。
“我们没有写‘让他掉下去’这种规则。”
“我们写的,只是一些对系统来说最优的路径。”
“是他自己的恐慌——”
“让那一步变成了坠落。”
“你可以把责任分得这么细。”
他打断对方。
“可以说重排没错,结构没错,规则没错。”
“只有人错。”
“因为人恐慌、犹豫、不稳定。”
“但是如果没有这套结构、没有这条规则、没有这一次重排——”
“他今天会不会还活着?”
没有人回答。
“应急手册怎么写?”男人问。
技术员翻开那本厚厚的册子。
“第一条,”他念,“优先保障装置结构与数据完整性。”
“第二条,所有事故按既定分类记录:结构失效、行为偏差、混合原因。”
“第三条——”
他迟疑了一下。
“对于非结构性事故,应避免对参与者作情绪性归责。”
男人合上手册。
“记录原因。”
他平静地说。
“混合。”
“结构重排与行为偏差共同作用。”
“写上。”
“不要删任何一个词。”
技术员犹豫了一下,还是照做了。
“报告里还需要一个结论。”他小声说。
“你知道,”
他不敢看科雷亚。
“上面会想知道——这算不算‘可接受风险’。”
男人看向科雷亚。
“你来写。”
他说。
“这版是你的。”
他盯着屏幕。
那条记载 S05 的行已经被标注为红色。
右侧备注栏空着,等着别人写上一个词。
“可接受”或“不可接受”。
他想到 V2.3 的目标:
更干净的删减,更高的效率,更少的噪音。
想到应急手册上那句话:
“其余问题,归档处理。”
他拿起笔。
手有一点抖。
他在备注栏里写下几个字:
“在现有定义下,这是一项被系统视为可接受的风险。”
他停顿了一下。
又在下面加了一句:
“从人的角度看,它不可接受。”
这行字写得比上面略细,像是怕被谁看见。
男人看了一眼。
“你知道,这句话不会进对外版本。”
他说。
“只会留在内部记录。”
“我知道。”
“那你为什么还要写?”
“因为如果连内部都不写,”
他平静地说。
“那这就不再是事故。”
“只是一个顺理成章的删减。”
这件事最后被归类为:
“V2.3 测试期间发生的混合原因事故。”
报告中写道:
“建议在后续版本中进一步降低局部重排与高情绪波动样本交叠概率。”
“但从整体效率来看,V2.3 的删减逻辑仍具有应用价值。”
某一页角落里,有人用不同颜色的笔加了一句:
“噪音承受度可适度上调。”
那不是他的字。
多年后,当他一个人坐在哈瓦拉的控制台前,看着屏幕上流过的每一行“删除申请”“归档建议”时,他会想起那一天——
想起那个被写成“混合原因”“可接受风险”的人,想起自己在备注栏加的那句“从人的角度不可接受”,想起花白头发男人那句诚实却无力的“我们确实杀了一个人”。
哈瓦拉的设计里,有一整段是从 V2.3 直接继承来的:
局部重排、情绪标记、延迟删减。
唯独有一条,他反复改写——
关于“可接受风险”的定义。
他试图把“因为规则本身导致的伤害”从那行词里剔出去。
试图让这栋房子,哪怕只是在某一个版本里,少杀一个本来可以不死的人。
哪怕代价,是让整套系统再多一点它最讨厌的东西——
噪音。