一只城市守夜猫

第31章 失效的边界

  1.清晨,六点四十七分   梧桐小区的清晨,光从东边矮楼的缝隙里切进来,把水泥地面分成明暗两块。   林辰蹲在阳台洗衣台上,左前肢的爪尖无意识地刮擦着台面的细小纹路。麻木感还在,但比刚被“修正”那会儿好了一些——至少能感觉到爪子底下的粗糙了,虽然像隔了层厚手套。他盯着楼下那几棵梧桐树。   往常这个时候,树上的松鼠该出窝了。   那两只灰背的松鼠住在7号楼正对的那棵树上,一个树洞里。林辰观察了快两个月,它们的作息准得像定了闹钟:六点四十到四十五分之间,其中一只会先探出头,左右张望,然后轻盈地跳到下层树枝,开始梳理尾巴上的毛。另一只会晚五分钟出来,直接下到地面,在草坪里翻找昨夜掉落的梧桐籽。   今天,第一只松鼠在六点四十三分探了头。   但它没跳出来。   它在洞口停了足足半分钟,脑袋以一种极缓慢的速度左右转动,不像在观察环境,更像……在“扫描”。然后,它后退,缩回了树洞。   林辰的耳朵动了动。   第二只松鼠没有在预定的时间出现。   又过了三分钟,第一只松鼠再次探头,这次动作快了些,嗖地蹿出来,但不是跳向熟悉的树枝,而是顺着树干倒着往下爬——头朝下,爪子抠着粗糙的树皮,一扭一扭地往下挪。这姿势对松鼠来说很不寻常,它们通常正面下树,或者直接跳跃。   倒着爬到离地面还有一米多时,它停住了,挂在树干上,一动不动。   像卡住了。   林辰盯着它。那只松鼠的尾巴垂着,微微颤抖,眼睛似乎盯着虚空中的某个点。就这么挂了快一分钟,它突然“醒”过来似的,猛地翻身,正过身子,几下跳到地面,开始在草坪上翻找。动作恢复了正常,仿佛刚才的倒挂只是一时失足。   但第二只松鼠始终没出来。   林辰抬眼看向树洞。洞口黑黝黝的,什么也看不见。   这时,头顶传来翅膀扑腾的声音。一小群麻雀从西边飞过来,落在旁边的电线杆上。它们没有像往常那样叽喳吵闹,而是安静地站着,头全都朝着同一个方向——西北边。   灰区的方向。   安静持续了十几秒,然后其中一只麻雀突然抖了抖翅膀,发出一声短促的鸣叫。像是信号,其他麻雀也跟着叫起来,恢复了常态,纷纷飞下电线杆,在草坪上蹦跳觅食。   刚才那阵整齐的、朝向一致的安静,仿佛只是错觉。   林辰从洗衣台上跳下来,落地时左前肢软了一下,他迅速用右爪撑住,稳住身子。三条腿走路还是别扭,但他已经习惯了这种不平衡感。   他走回客厅,跳到沙发上,透过窗户继续看向外面。   小区的保洁员王姐推着垃圾车过来了。她停在垃圾桶边,开始收拾。一切正常,直到她弯腰去捡一个滚到路边的空塑料瓶时,身体突然顿了顿。   她保持着弯腰的姿势,停了两三秒。   然后直起身,把塑料瓶扔进车里,继续推车往前走。但林辰注意到,她推车的路线比平时歪了一点——车轮压到了路沿石,发出轻微的摩擦声。她似乎没察觉,继续推着,直到车轮被路沿石卡住,她才“啊”了一声,低头看了看,把车拉回正轨。   一个小失误。   任何人都会有的、注意力不集中导致的小失误。   林辰移开视线。   但他脑子里,刚才那几幕在回放:松鼠倒着下树、麻雀统一朝向、王姐推车歪斜。   每一个,单独看,都微不足道。   放在一起……   他闭上眼睛,尝试在意识里“调取”系统界面。   过去,当异常累积到一定程度,系统哪怕不主动警告,也会在界面边缘显示一个极小的、灰色的“环境波动注意”标识,或者给出一个模糊的风险概率提示。   现在,界面干净得像刚擦过的玻璃。   只有最基础的几行状态数据:   【宿主:林辰(元宝)】   【状态:基础生命维持模式】   【联结强度:0.93(通道稳定,感知钝化)】   【活动范围:室内(室外权限锁定)】   【违规系数:0.00】   没有提示。   没有警告。   甚至连一个表示“正在监控中”的闪烁光标都没有。   界面安静地悬浮在意识背景里,像一张不会更新的、过期的报表。   林辰睁开眼。   窗外的阳光又亮了一些,梧桐树的影子斜斜地铺在地上。那只倒着下树的松鼠已经不见了,麻雀在草坪上散开,王姐推着车走远了。   一切恢复正常。   只有他心里,留下一点极淡的、挥之不去的滞涩感。   像齿轮间混进了一粒看不见的细沙。   2.上午,九点二十   苏晓坐在工作台前,准备给昨天画好的小松鼠插图铺色。   她打开色板,选了暖棕作为主色调,开始用数位笔填充松鼠背部的区域。笔尖在板子上滑动,发出轻微的沙沙声。   画到松鼠尾巴尖的时候,她停了下来。   不是没灵感,不是手抖。   是她发现,自己刚才画的那几笔曲线,收不回来了。   不是物理意义上的收不回——笔迹当然可以撤销。是一种更微妙的、属于身体记忆的“失控感”。她画曲线时,手腕有一个自然的、微小的回旋动作,让线条末端圆润地收束。这个动作她做了成千上万次,已经成为肌肉记忆。   但刚才那一下,手腕转过去了,笔尖却好像……多走了一点点。   非常细微的一点点,可能只有半个像素的偏差。如果不是她对线条极其敏感,根本察觉不到。   结果是,尾巴尖的轮廓线,比预想的长了极其微小的一截,而且收笔处没有形成她习惯的圆润钝角,而是留下一个几乎看不见的、生硬的尖。   苏晓皱起眉,按了Ctrl+Z撤销,重新画。   这一次,她刻意放慢了速度,手腕动作更加控制。   笔尖移动。   到了该收笔的位置,她手腕准备回转——   又来了。   那种感觉:手腕的动作已经到位,但笔尖(或者说,控制笔尖的手指)似乎延迟了零点几秒才跟上,导致线条再次溢出了一丝。   虽然这次溢出的幅度更小,但那点不自然的“尖”还是存在。   苏晓盯着屏幕。   线条本身没问题,颜色没问题,甚至那点“尖”如果不是刻意寻找,根本看不出来。整幅画依然可爱生动。   但她知道。   她知道那里不对。知道自己的手刚才没有完全听使唤。知道有什么东西——可能是疲劳,可能是注意力分散,可能是最近压力太大——干扰了她和画笔之间那种近乎本能的同步。   她放下笔,活动了一下手腕。   手腕很正常,不痛不痒。她握了握拳,手指灵活,没有麻木或无力感。   只是……控制精度下降了那么一丝。   她深吸口气,决定暂时放过这条尾巴尖。先画别的部分,等手“热”起来再说。   她切换到松鼠的眼睛,开始点高光。   笔尖落下。   这一次,控制精准,光点亮得恰到好处。   她松了口气。   也许刚才真是状态问题。她最近睡得是不太好,虽然昨晚睡得沉,但可能身体还没完全恢复。   她继续画,接下来的十几分钟都很顺利。尾巴尖那点小小的异常,被她暂时搁置在脑海角落。   客厅里,林辰趴在地毯上,面朝着工作台的方向。   他能看到苏晓的背影,看到她偶尔停下来活动手腕的小动作,看到她盯着屏幕时微微蹙起的眉头。   他尝试去“感觉”她的状态——不是过去那种清晰的联结感知,而是更模糊的、基于观察的推测。   她似乎遇到了点小麻烦?画得不顺?   但她的情绪很平稳,没有烦躁或焦虑,只是有点……困惑。   困惑于一件很小的事。   林辰收回视线,低下头,舔了舔右前爪的毛。   左前肢依旧软软地垂在身侧,偶尔会无意识地抽动一下,像断了线的木偶突然被风吹动。   他想起刚才在阳台看到的那些细微异常。   松鼠,麻雀,王姐。   现在加上苏晓手腕那点几乎可以忽略的“失控”。   单个看,都是不值一提的小事。   连在一起呢?   他不知道。   系统界面依然安静。   没有数据更新,没有风险提示。   仿佛那些细微的错位,根本不存在于它的监控列表里。   或者,它看见了,但判定为无需反应。   3.下午,两点十分   林辰在午睡中被一种极其轻微的、高频的振动惊醒。   不是声音,是空气里传来的、像远处有无数细小弹簧在同时震颤的物理波动。很微弱,弱到如果不是他正趴在地板上,脸颊贴着地面,可能都感觉不到。   他抬起头,耳朵转向振动的来源方向——西北。   灰区。   振动持续了大概半分钟,然后消失。   林辰站起来,走到阳台。透过玻璃,看向灰区那片厂房的轮廓。午后阳光正好,厂房破败的屋顶在光线下一片灰白,看不出任何异常。   没有烟,没有光,没有扭曲的空气。   一切如常。   但他刚才确实感觉到了振动。   不是错觉。地板传来的触感很清晰。   他蹲在阳台门前,盯着那个方向看了很久。   什么也没发生。   他回到客厅,跳上沙发,再次尝试调出系统界面。   界面依旧。   【区域稳定性:62(高危)】   【主要威胁:灰区裂缝(直径0.56米,扩张中)】   【隔离力场状态:运行中(能耗:121%基础值)】   【动物网络同步率:31%(低活跃)】   数据更新了——裂缝直径又大了0.01米,隔离力场能耗上升了1个百分点。   但这些都是“正常”的恶化,是系统预料之中的、持续发生的“背景进程”。   没有针对刚才那阵振动的说明。   没有“检测到未知能量波动”的提示。   什么都没有。   仿佛那阵振动,要么不存在,要么……不值得被记录。   林辰从沙发上跳下来,在地板上踱步。左前肢拖在身后,爪尖偶尔会刮到地板,发出轻微的“嚓”声。   他走到门口,用脑袋顶了顶门板。   门关着。门外是楼道,再往外是小区,再往外是灰区。   他出不去。   活动范围限制依然生效。他能感觉到门口方向传来的、那种隐约的排斥感,像一道无形的、柔软的墙。   他退回客厅中央,趴下。   脑子里开始梳理:   清晨动物活动节律错位。   苏晓作画时控制精度微降。   刚才那阵来源不明的振动。   系统界面异常安静,无提示。   这些碎片拼不出一个完整的画面。   但拼出了一个趋势:   有些东西,正在系统划定的“安全边界”之外,或者边界之内,悄无声息地发生着。   而系统,没有反应。   是它没检测到?   还是检测到了,但判定为“无需干预”?   或者……它的“干预能力”,已经因为某些原因,被削弱或转移了?   林辰不知道。   他只是一只猫。一只被锁在公寓里、权限归零、只能接收最基础信息的猫。   他能做的,只有观察,记录,然后……   然后什么?   他不知道。   4.傍晚,五点四十   灰灰来了。   它没有上楼——它上不来。林辰在阳台洗衣台上看到它时,它正蹲在楼下那棵梧桐树的横枝上,右耳的缺口在傍晚的光线下很显眼。   灰灰抬起头,看向三楼阳台。   林辰与它对视。   几秒后,一段极其破碎、断续的意识流,像信号不良的收音机,勉强挤进林辰的脑海:   “……林……辰……”   “……听……得到吗……”   林辰集中精神,在意识里回应了一个最简单的“嗯”的信号。这不会触发系统警告,只是最基础的、像点头一样的确认。   灰灰的尾巴烦躁地甩了甩。   “……有……事……”它的意识流很吃力,像在沼泽里跋涉,“……不大……但……怪……”   “……东……边……围墙……那边……”   “……来了……个……新……的……”   新来的?流浪猫?狗?   “……不是……猫……不是……狗……”灰灰的意识断断续续,“……小的……灰褐色……毛……很乱……”   “……眼睛……是……黑的……全黑……”   “……它……在……吃……土……”   吃土?很多野生动物会吃土补充矿物质,不算太奇怪。   “……不是……普通……吃……”灰灰的意识流里透出一丝困惑,“……它……只吃……一个……地方……的土……”   “……围墙……根……那里……有个……小坑……它……只吃……那里的……”   “……我……靠近……它……不理……”   “……我……碰它……它……没反应……”   “……像……听不见……也……看不见……”   “……但……它在吃……一直吃……”   灰灰停了一会儿,似乎在组织语言,或者说,在对抗某种让它的意识传递变得困难的东西。   最后,它传过来一个更简单的总结:   “……感觉……不对……”   “……不像……活的……”   不像活的,但它在动,在吃土。   林辰沉默了几秒。   他在意识里问:还有别的吗?   灰灰的回应很慢:“……波波……还是……那样……碎碎念……”   “……老爷子……不动了……像……石头……”   “……大黑……在……绕圈……停不下来……”   动物网络其他成员的状态,没有好转,但也没有急剧恶化。都在一种停滞的、低活跃的异常状态里卡着。   灰灰最后说:“……那个……吃土的……你要……来看吗……”   林辰看了一眼自己的左前肢。   他出不去。   就算能出去,系统禁令在,他离开公寓就会触发神经痛,并扣减那已经归零的安全系数。   他只能回答:去不了。   灰灰似乎预料到了。它没再说什么,只是从树枝上跳下去,落到地面,很快消失在灌木丛后面。   林辰继续站在阳台上,看向灰灰刚才说的东边围墙方向。   那里离灰区更远,靠近小区东门。按理说,应该是受影响最小的区域。   但出现了“吃土”的、眼睛全黑的、不像活物的小动物。   又是一个“不严重但不对劲”的小事。   系统界面,依然安静。   没有任何关于“小区东侧出现未知生物”的提示。   林辰从阳台跳回客厅。   苏晓正在厨房准备晚餐,切菜的声音规律地响起。   他走到厨房门口,蹲坐下来,看着她忙碌的背影。   一切看起来都很正常。   太正常了。   5.深夜,十一点五十   苏晓睡了。   林辰趴在自己的猫窝里,但没有睡意。   窗外一片寂静,只有远处偶尔传来的、夜归汽车的引擎声。   然后,声音来了。   不是从灰区方向。   是从更远的地方——城市的南边,或者东南边。隔着好几公里,声音被距离和建筑物削弱,传到这边时,已经变成了模糊的、持续不断的低鸣。   像无数只狗在同时低吼。   又像无数只猫在发出威胁的嘶叫。   但混在一起,失去了具体的动物特征,变成了一种纯粹的、躁动的背景噪音。   音量不大,但持续。   林辰站起来,走到阳台。透过玻璃看向声音传来的方向。那边是宁海市的老城区,居民区密集,也有很多老巷子和待改造的区域。   声音就是从那里传来的。   不是某一只动物的叫声,是群体性的躁动。   但为什么?这个时间,大部分宠物狗应该在家里睡觉,流浪动物也通常在隐蔽处休息。是什么让它们同时躁动起来?   声音持续了大概十五分钟,然后渐渐平息。   城市重归寂静。   仿佛刚才那阵遥远的动物躁动,只是一场集体梦呓。   林辰回到猫窝,趴下。   他最后一次调出系统界面。   界面毫无变化。   【环境监控:运行中】   【异常检测:无显著异常】   【风险提示:无】   “无显著异常”。   意思是,刚才那阵城市范围的动物躁动,不算“显著”?   或者,系统根本就没“听”到?   林辰盯着那几行字,看了很久。   然后,他做了一个决定。   不是主动的、策略性的决定——他没有那个权限了。而是一种更本能的、基于现状的判断:   不上报。   不是“选择”不上报,而是“意识到上报没有意义”。   系统界面安静得异常。   系统对刚才发生的一切——从清晨松鼠的倒挂,到苏晓手腕的微失控,到灰灰汇报的吃土小兽,再到刚才城市的动物躁动——没有任何反应。   这说明什么?   说明要么这些事真的微不足道,不值一提。   要么……系统当前的“响应阈值”被调高了,高到这些级别的异常,已经不足以触发它的提示机制。   要么……更糟:系统的“监控能力”本身,出现了某种盲区或延迟。   无论是哪种,现在“上报”都没有意义。   上报给谁?一个不响应的系统?   上报什么?一堆“理性上可忽略、直觉上不安”的碎片?   结果会是什么?大概率是“收到,已记录,无需进一步操作”,或者干脆没有回应。   林辰闭上眼,把脑袋埋进前爪。   左前肢空荡荡地垂在身侧。   窗外,夜色深沉。   城市在沉睡。   但在某些看不见的角落,有些边界正在变软,变薄,像被水慢慢浸透的纸。   而守卫边界的那个存在,此刻异常地安静。   安静得,让人心里发毛。   【预告下一章】   第32章|无声的扩散   当边界失效,异常不会停留在原地。陈建国在调查一桩看似无关的“宠物异常伤人”案时,发现伤口残留着无法解释的微量金属元素;李小雅开始频繁做同一个关于“灰色手臂从地面伸出”的噩梦;而宁海市动物园的夜间监控,拍到了某个展区动物集体面向同一方向静止不动的诡异画面。碎片开始连接,指向一个共同的、无声扩散的源头。   (有些东西,不要等它叫出声才听见。)