观察期第四天,陈远知做了一件他自己都觉得多余的事。
他调出了1号实验体在ST-B给药过程中的全部生理数据流,从头看了一遍。不是扫,是逐帧看。时间轴精确到毫秒,每一条曲线都拉满放大比例。
心率、血压、血氧、皮肤电导、瞳孔直径、呼吸频率、体表温度——七条线同步铺在屏幕上,密密麻麻的数据点挤成一片彩色的河。
他不是没看过。事发当天就看过一遍,高阳也看过,周明昕的药剂组也看过。三拨人看完,结论一致:全身性免疫应激,无伪装痕迹。
但陈远知这个人有个毛病。别人都觉得没问题的东西,他偏要再看一遍。不是不信别人,是不信“一致”这个结果。科学史上最大的错误,往往发生在所有人都点头的时候。
他把时间轴拉到事件触发前的五分钟,放慢速度,一秒一秒地看。
心率曲线:72,73,71,72,73——正常的窦性节律,波动在合理范围内。呼吸频率:14次/分钟,稳定。血氧:98%,没有任何异常。
正常。
非常正常。
正常到让他皱了一下眉。
他不是嫌数据不好。是嫌数据太好。一个即将接受首次给药的实验体,心率七十二,呼吸十四——这个镇定程度放在临床上,比大多数做过三次以上手术的老病号还稳。
1号的档案里写着“性格胆怯,社交回避,对陌生环境高度警觉”。一个高度警觉的人,在首次给药前五分钟,心率应该是多少?
陈远知在脑子里过了一下文献数据。焦虑型个体在侵入式医疗作前的静息心率中位数是82-89,伴随呼吸频率上升到16-20。
苏晚的数据比正常人还正常。
他没有声张。没有叫高阳来讨论,没有让助手做标注。他只是把这个点记在了自己的笔记本上——陈远知也用纸质笔记本,和张磊不同的是,他的是活页的,按编号分类。
然后他继续往后看。
给药前三分钟。心率:72。呼吸:14。
给药前两分三十秒。心率:72。呼吸:13。
给药前两分钟——
陈远知的手停住了。
他把这一段放大到最大比例,心率曲线和呼吸曲线叠在一起看。
心率72。呼吸12。
72除以12,等于6。
心跳频率和呼吸频率的比值——整数比。精确的整数比。6:1。
他又往后看了三十秒的数据。比值维持在6:1,没有偏移。三十秒,整整三十秒,两条曲线锁在一个精确的整数关系上。
陈远知盯着屏幕看了很久。
这个现象有一个名字,叫“心肺耦合”。在极深度的放松状态下,自主神经系统会自发地将心率和呼吸频率调节到一个共振比值上。瑜伽修行者在长期训练后可以做到。经验丰富的冥想者在特定状态下也可能出现。
但持续三十秒的精确整数比——这不是“放松”能解释的。这是对自主神经有高度控制力的人才能实现的状态。
一个被档案描述为“胆怯、敏感、缺乏社会经验”的二十二岁女性。
在首次给药前两分钟。
精确地把心肺耦合维持了三十秒。
陈远知把椅子往后推了十厘米,靠在椅背上。
他没有翻页,没有去看后面的过敏发作段——那部分他已经看过很多遍了,没有任何疑点。问题不在“过敏”本身,问题在过敏之前。
一个人如果能控制自己的呼吸和心率到这个程度,那么她在“过敏”期间表现出的那些生理指标——心率飙升、血压骤降、皮肤反应——到底有几分是被动的,有几分是主动的?
陈远知知道自己这个想法很危险。
因为它的逻辑推论是:1号有可能在控自己的身体数据。
而如果这个推论成立,那今天所有人手里的一切结论——安全的、不安全的、过敏的、不过敏的——全部要推翻重来。
他没有下这个结论。
他做的是另一件事:调取苏晚进入设施以来的全部生理监测原始数据。不是摘要,不是每报告里的均值和标准差,是原始数据流——每秒一个采样点,二十四小时不间断。
数据量不小。1号进设施到现在二十六天,每天86400个采样点,七个生理指标通道。总计将近一千六百万个数据点。
他让系统做一件事:在这一千六百万个数据点里,搜索所有心率和呼吸频率形成整数比关系并持续超过十秒的时间段。
程序跑了二十分钟。
结果出来了,陈远知看了第一眼,往椅背上又靠深了一点。
命中数:一百四十七次。
一百四十七次心肺耦合事件,分布在二十六天里。
他往下翻明细。
比值不固定——有6:1的,有5:1的,有4:1的,还有几次是7:1。持续时间从十一秒到四十八秒不等。发生时间分布在全天各个时段,没有明显的聚集规律。
陈远知的第一反应是:太多了。
一个正常人在二十六天里出现一百四十七次心肺耦合,频率高得离谱。正常成年人的自发心肺耦合频率大概是每天零到三次,多数发生在深睡眠阶段。一百四十七次除以二十六天,每天五到六次——且分布在清醒和睡眠时段都有。
但他的第二反应是:太杂了。
如果1号真的具备主动控制心肺耦合的能力,并且在刻意使用它,那数据应该呈现出某种模式——比如集中在特定的活动前后,比如比值固定在某个最优值上。
但这一百四十七次完全看不出模式。
比值从4:1到7:1随机分布,持续时间长短不一,发生时间毫无规律。有些发生在吃饭的时候,有些发生在看终端的时候,有些发生在睡觉中间翻身之后。
陈远知调出几段有代表性的片段,把心率和呼吸曲线叠在一起仔细看。
第十四天,上午十一点零七分。心率68,呼吸17。比值4:1。持续十三秒。前后的生理数据没有任何异常事件对应——当时苏晚在终端上看一篇关于室内植物的科普文章。
第十九天,凌晨三点二十二分。心率56,呼吸8。比值7:1。持续二十二秒。深睡眠阶段。这个……陈远知查了一下文献,深睡眠阶段的低频呼吸确实容易和心率形成整数比。不算异常。
第二十三天——也就是ST-B给药前一天——下午两点,心率72,呼吸12,比值6:1,持续三十一秒。苏晚当时在做拉伸运动。
这条数据和给药当天那条几乎一模一样。
但它发生在给药前一天。不存在“为了给药做准备”的动机。
陈远知把整份分析结果从头到尾又看了一遍。
数据告诉他的故事是这样的:1号实验体的自主神经调节功能异常活跃,频繁出现非自主的心肺耦合现象。这种“频繁”和比值的“随机性”构成了一种生理特征——不是有意为之,而是体质使然。
就像有些人容易打嗝,有些人容易肌肉震颤。1号容易出现心肺耦合,可能和她体内独特的抑制因子水平有关——抑制因子对自主神经的调节作用本来就是研究课题之一,出现这种伴生现象不稀奇。
给药前那三十秒的6:1比值,放在一百四十七次事件的大样本里看——不算突出。甚至不算异常。
逻辑说得通。数据自洽。系统没有报警。
陈远知把分析报告关掉,坐在那里想了一会儿。
他的直觉在说一件事,他的数据在说另一件事。
直觉说:这个女孩不简单。
数据说:你在疑神疑鬼。
在这个地下设施里,在“普罗米修斯”运转的每一天里,陈远知做决定只相信一样东西——数据。
不是因为数据永远正确。是因为在一个由数据驱动的体系里,违背数据做决策的成本太高了。高阳会问他“你的依据是什么”,周明昕会问他“数据支持吗”,决策层会问他“你拿什么证明”。
他拿什么证明?凭“我觉得1号的心率太平稳了”?
他能想到高阳听完之后会怎么回他——“老陈,你要不要休息两天。”
陈远知把笔记本翻到新的一页,写了一行字。他看了几秒,又划掉了。
当天下午四点,他签了一份正式文件。
内容只有两条。
第一条:鉴于1号实验体对ST-B表现出明确的免疫排异反应,且基线数据重测尚未完成,即起暂停所有针对1号的侵入式改良实验。恢复时间待基线评估报告通过后由研究部、药剂组及安全部门联合审定。
第二条:维持SN-7标准采集方案不变,采集频率下调至基础档。
高阳拿到文件的时候翻了一下,什么话都没说,签了副主任的会签栏。
周明昕拿到的时候犹豫了两秒——“侵入式改良实验全部暂停”意味着他的药剂组下个季度没活儿了。但他看了看陈远知的表情,还是签了。
张磊是最后一个签的。他签得最脆,笔都没换,直接在安全部门的审批栏里画了名字。安保主管巴不得实验少做一点,他的工作量能减掉三分之一。
文件存档,系统更新状态标签。
苏晚的终端右上角,那个黄色的“观察期”三个字没有变。但状态详情页里多了一行:“侵入式实验:已暂停。”
她看到这行字的时候正在吃晚饭。
今天的晚餐比前几天丰富了一点——多了一小碟腌黄瓜。苏晚拿筷子夹起一片,放进嘴里嚼了嚼。咸的。腌黄瓜的钠含量很高,钾含量忽略不计。
营养方案改过了。
高钾食物从菜单上消失了。
这说明张磊的调查报告已经呈上去了,结论落在了“营养餐的电解质管理疏漏”上,后勤那边接了整改任务。
苏晚把黄瓜吞下去,又看了一眼那行“侵入式实验:已暂停”。
赢了。
第一个阶段,赢了。从一截红薯开始,到一份S级样本报废,到安保升级,到基线重测,到全面暂停——她用一个输入变量撬动了整条决策链。
不过赢的方式和她预期的有一点不同。她预计陈远知会在三到五天内签暂停令,实际上用了四天。速度差不多。但中间多了一个她没有完全预见到的环节——数据复查。
她在给药前做过一次呼吸调整。不长,三十秒左右。目的是让自己的基础代谢状态压到最低,以确保红薯带来的高钾效应能在给药后的最短时间内触发免疫应激。这需要把心率和呼吸都压下来,形成一个稳定的低代谢窗口。
这个作留了痕迹。心率72,呼吸12,比值6:1,持续三十秒。
如果陈远知拿着这三十秒单独看,会很扎眼。一个“普通女孩”在给药前表现出受训者级别的心肺控制力——这个疑点足以让他掀开整张桌子重查。
但他不会拿着这三十秒单独看。
因为苏晚没有给他“单独看”的机会。
过去二十六天里,她每天都在做同一件事:随机时段、随机时长、随机比值的呼吸-心率同步训练。
吃饭的时候做一次。看终端的时候做一次。半夜翻身之后做一次。比值换着来,4:1、5:1、6:1、7:1轮着用。持续时间控制在十到五十秒之间,绝不超过一分钟。
她在自己的生理数据里种了一片杂草。
当陈远知的程序去搜索“异常的心肺耦合事件”时,它找到的不是一棵孤零零的树——那棵树会很显眼——而是一整片草地。草地里每一棵草看起来都差不多,没有哪一棵特别高,没有哪一棵长在不该长的地方。
系统的结论只能是:这片草地是天然的。
这是苏晚在第一天就想清楚的事情。
你要隐藏一个信号,不是把它抹掉——你抹不掉,监测系统忠实记录每一个数据点,你删不了也改不了。
你要做的是制造噪音。大量的、看起来随机的、和那个信号特征相似的噪音。当信噪比低到一定程度,任何分析算法都会把信号判定为噪音的一部分。
陈远知的数据分析能力比她预估的强。他注意到了那三十秒,说明他的观察精度很高。
但他败在了统计学上。
一百四十七次事件。他看到这个数字的时候,一定在心里骂了一句——或者至少叹了口气。因为这个数字本身就在告诉他:你找错方向了。
苏晚放下筷子,把餐盘推到终端旁边,等送餐的人来收。
送餐的人今天换了。不是前三天那个年轻小伙子,是一个年纪大些的女性,四十来岁,手脚利索,进门收盘子出门,前后不到四十秒。
表情平淡。动作常规。没有多看苏晚一眼。
前三天那个小伙子每次进来都会多看她两眼——不是好奇,是紧张。像在看一件刚出过故障的贵重设备,怕它再出问题。
今天换人了,新来的这位脸上什么都读不出来。
苏晚把这个变化归了档。
送餐人员的更换频率反映后勤排班的稳定性。连续三天同一个人说明那段时间编制紧张,能排出来的人手有限——大概率和ST-B过敏事件后的紧急响应有关,安保、后勤、医疗都在加班。
现在换人了,排班恢复正常轮转。
说明内部的紧张劲儿过去了。S级样本报废的风波正在被消化,各部门的注意力回到了自己的常事务上。陈远知签了暂停令,张磊完成了安保升级,后勤改了营养方案——每个人手里都有了一份“我已经做了该做的事”的交代。
压力被分摊了。锅被切成了碎片,谁碗里都有一块,但谁碗里那块都不致命。
这是官僚系统消化危机的标准方式。
对苏晚来说,这意味着窗口正在打开。
不是那个MODBUS的技术窗口——那个需要更多条件。是一个更基本的东西:注意力窗口。
所有人都在往回收注意力的阶段。张磊不再每天亲自来巡查,安保志上的巡视频率从每天三次降到了两次。陈远知的基线重测在跑,但那是程序化的采集,不需要他盯着。王副博士的数据安全检查还在推进,各部门忙着整理志。
忙碌的人最容易忽略不动的猎物。
苏晚切到终端的阅读界面,继续看那篇看了两天还没看完的室内植物科普。摄像头对着她的侧脸和屏幕同时记录,画面平静得能当屏保用。
她的注意力已经转到另一个方向了。
物理层面的胜利到此为止。暂停侵入式实验,争取观察期,削弱敌方的进攻节奏——这些都是防守收益。
防守能保命,但不能翻盘。
翻盘要靠信息。
过去四天里她从那台被权限的终端上能榨出来的东西已经快到极限了。公开信息流的价值密度很低,有用的情报藏在大量无关内容里面,提取效率越来越差。
她需要进入下一个层级。
10.42.1X.XXX。MODBUS/TCP。EMSv2.1。
这条路径一直存在。但触发条件还差最后一环——一个安保监控出现数据缓存延迟的时间窗口,让她的终端作不被实时记录。
那个机会用不着她去创造。
观察期第四天晚上九点十一分,终端的通知栏弹出了一条全区广播。
苏晚打开看了一眼。
“设施通告【A/B/C全区】——线路升级维护通知。为配合地下三层主供电线路的改造升级工程,将于48小时后(具体时间见后续通知)对相关区域实施为期5分钟的能源切换维护。维护期间,涉及区域的非核心系统将临时切换至备用供电线路,部分设备可能出现短暂重启。请各部门提前做好数据备份及设备保护工作。——设施管理部。”
苏晚读到“非核心系统将临时切换至备用供电线路”这句话时,手指在屏幕边缘停了一拍。
很短的一拍。短到三台摄像头捕捉到的画面不会有任何异常——就是一个人在看通知,看完了,关掉,继续翻她的室内植物文章。
但在那一拍里面,她已经把整条逻辑链跑完了。
能源切换维护。五分钟。备用供电线路。部分设备短暂重启。
EMS挂在主供电系统上。安保监控的数据缓存挂在EMS上。
主供电切换到备用供电的那五分钟里,EMS会经历一次系统状态变更。状态变更意味着老协议层的会话中断再重建。会话重建的过程中,数据缓存会出现一个真空期——不是三十秒的延迟,是彻底的断档。
五分钟。
足够了。
苏晚把通知关掉,把终端亮度调低两档,翻了个身面朝墙壁。
四十八小时后。
她在脑子里把倒计时挂上了。