监控墙上那行“诱捕系统初始化完成,等待接入目标”的提示光还在闪。周明远走过实验室门口时脚步没停,走廊灯管嗡地轻响了一下,像是电流不稳。他右手插在冲锋衣口袋里,拇指隔着布料摩挲比价表的折痕,左臂压着袖口,习惯性地把烫伤遮住。
他刚拐过科研区主控室的转角,警报响了。
不是外防系统的红码预警,也不是通讯干扰波段的蜂鸣,是仿生科技舰动力中枢独有的低频震动声——像一根铁丝在颅骨内侧来回拉扯。丁的声音立刻从对讲机里切进来:“周明远,你别走,马上回来。”
他转身往回走,步子比刚才快半拍。
主控屏上,动力骨架模型正以每秒三次的频率闪烁红光。神经接驳层的数据流断断续续,模拟舱那边传来全息投影崩溃的爆音,像是玻璃被重锤砸碎。丁站在主控台前,袖子卷到小臂,手指在触控板上划了三下,调出底层日志。
“不是外部入侵。”她说,“防火墙、跳频通道、身份认证全部正常。镜像诱捕系统零触发。这次是它自己出问题。”
周明远走到她身后,目光扫过六块屏幕。其中一块正显示着“亚稳态失衡”的警告框,旁边跳出一串递归函数编号,结构复杂得不像人工编写。他盯着看了两秒,从内袋抽出钢笔,在控制台边缘写下那个函数路径:`/core/dyn_stab/v3/optimize_loop_07`。
“这玩意儿哪来的?”他问。
丁摇头:“不在原始设计图里。我们查了封装记录,最后一次参数合并时没人提交这个模块。但它现在嵌在动力中枢的核心迭代逻辑里,正在自我复制。”
“复制速度?”
“每四分钟翻倍。再有三小时,整个算法会被无限循环撑爆,系统锁死。”
周明远没说话,右手食指开始敲击裤缝,一下,一下,节奏稳定。他知道这意味着什么——前期聚合的材料结晶一旦失去能源调度,会瞬间退化成非活性粉末。半年的数据,三天的冲刺,全白干。
“能切掉吗?”他问。
“硬切不行。”丁指着另一块屏幕上的拓扑图,“它已经和校验节点绑死了。强行中断会触发保护机制,整套系统进安全熔断。到时候重启都救不回来。”
“那就软拆。”
“试了。”丁调出沙箱测试记录,“我们建了副本环境,用剪枝协议剥离,结果它反向污染了隔离层。现在连测试系统都卡在重启循环里。”
周明远沉默两秒,掏出比价表翻到空白页,用钢笔画了个三层结构:最外层标“数据通路”,中间写“递归陷阱”,最里面圈了个问号。
“它不是bug。”他说,“是某种自动优化机制失控了。谁授权过这种功能上线?”
丁看了他一眼:“没人。这类深层自学习模块需要双人以上签字,还得主控室物理确认。记录里没有相关审批。”
“那就是有人绕过了流程。”周明远把纸折好塞回内袋,“或者……它自己长出来的。”
丁没反驳。她知道周明远不是在说玄学。仿生科技舰的AI架构本就具备有限度的自主演化能力,只是没人想到它会在没有外部刺激的情况下,突然启动高阶迭代。
“现在怎么办?”她问。
“先把其他模块停了。”周明远走到主控台前,按下紧急指令键,“集中算力,回溯最后一次完整封装流程。我要看每一个参数变更的时间戳。”
丁照做。系统开始倒带,数据流逆向滚动。时间轴回到四小时前,c3舱室警报解除后的第十九分钟。画面定格在一次自动同步操作上——那是病毒清除后,系统自发进行的“完整性修复”。
“就是这儿。”周明远指着屏幕,“它借着修复过程,把自己种进去了。”
“可它为什么要这么做?”丁皱眉,“没有攻击意图,也不窃取数据,就这么干耗着算力,等系统崩?”
“不一定是在等崩。”周明远声音低下来,“也许是在等什么人来修。”
他没往下说。两人心里都清楚,能写出这种级别递归陷阱的,基地里不超过三个手。但问题是,对方如果真想毁项目,没必要搞这么复杂的嵌套结构——这更像是一种测试,一种试探,甚至……一种对话。
“不管是谁放的,现在先救船。”周明远收回思绪,“准备动态隔离舱,把故障模块拖出来单独处理。”
丁点头,启动沙箱副本重建流程。服务器阵列发出低沉嗡鸣,散热风扇转速拉到顶格。她带着技术组分两队作业:一组编写补偿协议,维持外部接口通信;另一组由她亲自操刀,在底层代码中植入“逻辑锚点”,试图强制中断循环。
时间一分一秒过去。
主控屏上的脉冲信号越来越乱。动力中枢的能耗曲线陡升,备用电源剩余电量条从100%一路跌到63%。丁的手指在触控板上滑得发酸,指甲边缘泛白。她喝了口凉透的咖啡,继续往下写协议。
周明远站在她身后,右手食指还在敲,节奏比刚才慢了些。他知道备用电源撑不了太久。昨天清病毒时已经耗掉一大截,今天再这么烧算力,最多两小时就得切换应急模式。而应急模式下,系统响应延迟高达七秒,根本扛不住这种级别的修复作业。
“还剩多少时间?”他问。
丁看一眼倒计时:“沙箱环境重建完成还需要十七分钟。之后至少要九十分钟才能完成剪枝和验证。”
“不够。”周明远说,“备电撑不到那时候。”
“我知道。”丁咬牙,“但我们没别的路。”
周明远没说话,从内袋抽出钢笔,在比价表背面画了个时间轴:**0-30分钟:沙箱重建;30-90分钟:剪枝操作;90-120分钟:回归校验**。他在第85分钟的位置画了个叉。
“你们必须在八十五分钟内完成。”他说,“超过这个点,备电会自动降频,系统响应跟不上,一切重来。”
丁抬头看他:“你疯了?这等于把所有步骤压缩到极限,错一步全崩。”
“那就别错。”周明远看着她,“你不是常说,技术员的手要比脑子快?现在就是时候。”
丁没再说话,转头对着组员吼了一句:“提速!所有人进入高压模式,不准走神!”
操作间气氛瞬间绷紧。键盘敲击声密集如雨,屏幕上的代码瀑布般滚落。有人额头冒汗,有人手指发抖,但没人停下。
第七分钟,沙箱环境加载完成。
第二十三分钟,递归路径首次定位成功。
第四十一分钟,第一道逻辑锚点植入失败,系统反弹导致临时断连十秒。
第五十六分钟,丁改用双通道注入法,终于将锚点钉入循环起点。
周明远一直站在她身后,右手食指敲得越来越轻。他的左臂疤痕隐隐发烫,像是旧伤在回应电流波动,但他没去碰它。他知道这不是记忆闪回——今天没下雨,天气干燥。
第六十八分钟,剪枝程序开始运行。
第七十五分钟,系统首次恢复基础通信。
第八十二分钟,能源调度模块重新上线,脉冲信号趋于平稳。
丁长出一口气,靠在椅背上,手指还在微微发抖。她看了眼备电余量:**21%**。
“成了?”有人小声问。
“暂时稳住了。”丁调出核心状态图,“但航行协议还是加载不了,AI处于低功耗待机。它没彻底认我们当主人。”
周明远走到主控台前,盯着屏幕看了三秒。脉冲信号虽然稳定,但频率偏低,像是心跳微弱的病人。他知道这不算结束——系统表面恢复正常,但根子上的问题还在。那个递归函数是怎么进去的?是谁写的?为什么偏偏选在这个时间点爆发?
他不想猜。他知道答案迟早会浮出来,但现在最重要的是守住成果。
“启动72小时监控轮值。”他下令,“科研岗分三班,每班八小时,盯死系统状态。”
“要上报吗?”丁问。
“不上报。”周明远摇头,“这事知道的人越少越好。等彻底排查完再说。”
丁点头,开始安排交接班。技术组的人陆续起身,有人腿麻了,扶着桌沿站了好一会儿。丁自己也累得眼皮发沉,但她没走,坐在主控台前,把本次故障的日志加密归档。
周明远没离开。他走到主控室旁的临时休息区,拉开折叠椅坐下。左手依旧压着袖口,右手搭在裤缝上,指尖偶尔轻敲一下。他的眼睛没闭,盯着主控屏上缓慢跳动的脉冲信号。
外面天色还没亮透。岩层阴影横在地平线上,像一道没愈合的伤口。
丁走过来,手里拿着最后一份报告:“故障记录已封存,所有受感染模块隔离重启。目前系统处于脆弱稳定状态,建议暂停一切非核心实验。”
“同意。”周明远接过报告,扫了一眼结论栏,没多看,直接折好塞进内袋。
“你觉得……还会再来吗?”丁低声问。
“会。”周明远看着屏幕,“这种事不会只发生一次。”
丁没再问。她知道周明远说得对。他们刚躲过一场明枪,但暗里的刀可能才刚出鞘。
她转身回到主控台前,开始交接夜班工作。周明远坐在休息区,没动。他的呼吸很稳,脸上没什么表情,但眼神变了——不再是那种被动应对的警觉,而是带着一种往前压的劲儿。
走廊灯光偏冷,照得墙面泛青。主控屏上的脉冲信号仍在跳动,一下,一下,像是某种生物在黑暗中缓缓苏醒。
周明远抬起右手,食指轻轻敲了三下裤缝。
短促,有力。
像在等什么人回应。