终端的蓝光在林默的瞳孔里碎成了星星点点。
他盯着屏幕上跳动的“校准循环”四个字,后槽牙轻轻咬着舌尖——这是他从小到大在紧张时的习惯性动作,就好像用疼痛给混乱的思绪系上一根绳子。
“系统正在寻找锚点。”他的声音比空调吹出的风还要冰冷,指尖在触控板上快速滑动,终端立刻弹出了密密麻麻的参数列表,“上次它把社交密度当作标尺,结果被我们用晨练大爷们的象棋棋局给搅乱了;再上一次是消费轨迹,结果你往我的账户里塞了十八个拼多多砍价链接……”
金属椅腿摩擦地面的声音打断了他的话。
周晓冉端着两杯咖啡回来了,瓷杯边缘还凝结着水珠,在桌面上洇出了淡淡的圆形痕迹。
他没有坐回转椅,而是俯身站在林默身后,镜片几乎贴到了屏幕上:“看这个。”
林默顺着他手指的方向看去,参数列表里“用户行为模型”的状态标识正在从灰色变为红色,就像一团逐渐燃烧旺盛的火焰。
他后颈的汗毛突然竖了起来——这个他们三个月前联手冻结的模块,此刻竟然在系统核心区“活”过来了。
“它把我们过去两年的行动数据全都调出来了。”周晓冉的指节敲了敲“行为一致性”的权重值,金属勺尖敲在杯壁上,“你每周三都会去包子铺买加辣的豆腐脑,雷打不动;我每个周末凌晨三点都会刷Github,就连断点续传的时间都分毫不差……这些都被系统标记为‘可复制模式’。”
林默的喉结动了动。
他想起上周二暴雨那天,自己为了躲避积水绕路去了另一家早餐店,老板娘追着他跑了半条街,举着油纸包喊道:“小默啊,你今儿咋没来,我多蒸了三个包子。”那天系统提示“社交轨迹偏移度 + 17%”,红色警告框在手机屏幕上跳了半个小时。
“所以现在它要把这些‘模式’当作模板。”周晓冉推了推下滑的眼镜,镜片后的目光像手术刀一样锋利,“行为越接近模板的路径,评分就越高;偏离的……”他顿了顿,指向“反馈稳定性”的权重,“会被判定为‘无效干扰项’,直接剔除。”
林默的手指突然紧紧攥住鼠标,指腹被压出了青白的印子。
他想起系统最初出现的时候,自己不过是一个每天投十份简历、在出租屋里吃泡面的失业青年。
是周晓冉在寝室夜谈时发现了那个藏在招聘App里的“人生优化系统”,也是他们一步步用“非标准行为”撕开了系统的规则网——可现在,系统竟然要把他们曾经的“标准”,变成新的牢笼。
“得让它的评分体系自相矛盾。”林默突然转过身,目光灼灼地盯着周晓冉,“就像你当年给计算机课设写的那个多条件筛选程序——同一个数据,用A模型评是优,用b模型评是差,用c模型……”
“会乱成一锅粥。”周晓冉接得极快,镜片后的眼睛亮了起来,“系统的核心算法需要唯一最优解,要是同时出现三个最优解,四个……”他的手指无意识地敲打着桌面,是他们大学时敲代码的节奏,“它就会陷入无限循环,直到……”
“直到校准模块崩溃。”林默替他说完,声音里带着滚烫的雀跃。
他想起昨天在公园,王老头拍着石桌骂他“臭小子连士都不会支”时,自己故意走了步闷宫——那是系统绝不会推荐的“昏招”,却让老头笑得拍腿,说“这才像下棋”。
终端突然发出“叮”的一声轻响。
两人同时望去,“校准循环进度”从12%跳到了15%,像一头正在苏醒的野兽。
“我需要你写个分裂脚本。”林默抓起桌上的马克笔,在白板上快速画着逻辑图,“三个评分模型,每个都基于系统曾经用过的标准——社交密度、消费轨迹、情绪波动……让它们互相矛盾,但又都符合系统的底层代码。”
周晓冉的手指在手机备忘录上快速敲击着,屏幕的蓝光映得他眼底发亮:“得在系统完成校准前植入。”他突然抬起头,嘴角扯出一个带着点锋利的笑容,“记得大二那次帮辅导员修教务系统吗?我往成绩核算里塞了个隐藏函数,结果同一门课用不同终端查分能差二十分……”
林默也笑了。
那是他们第一次联手对抗“规则”,而现在,他们要把这招用在更庞大的系统上。
终端的提示音再次响起。
林默瞥了一眼进度条——21%。
他把马克笔重重地按在白板上,墨迹在“多重评分模型”几个字下晕开:“今晚十二点,等系统进入维护模式……”
“我来写脚本。”周晓冉打断了他,已经起身去翻抽屉里的移动硬盘,“需要调用你上次黑进系统时备份的底层代码,还有……”他的声音随着背影渐渐淡去,只剩键盘敲击声在狭小的出租屋里回响,像在敲一面战鼓。
林默转回身,屏幕上的“校准循环”仍在跳动。
他伸手摸了摸白板上的字迹,墨迹还未干透,在指尖留下了浅蓝的痕迹。
这一次,他们要让系统的每一声“校准”,都变成自己的进攻号角。
窗外的暮色漫了进来,把两人的影子投在白板上。
那些交错的逻辑线、跳跃的参数值,还有“多重评分模型”几个大字,在渐暗的光线里闪着微光——像极了他们第一次发现系统时,屏幕里亮起的那道蓝光。
只不过这一次,光的方向,该由他们来定。
键盘敲击声在出租屋里织成密网。
周晓冉的指节几乎要与键帽融为一体,屏幕蓝光在他镜片上碎成流动的银河——他正在把大二时藏进教务系统的“隐藏函数”拆解重组,每个代码段都裹着系统底层语言的糖衣。
移动硬盘在他脚边嗡嗡作响,那里面存着林默上次黑进系统时冒险备份的核心代码,此刻正通过USb线向笔记本输送数据,像在进行一场隐秘的血液交换。
“找到了。”他突然低喝一声,食指重重敲下回车。
屏幕上跳出一串暗绿色字符,是系统演化数据库的入口密钥。
林默从工位转过来,能看见他后颈薄汗在蓝光里泛着珍珠白——这是连续敲了三小时代码的标志,当年他们给社团做网站时,周晓冉也是这样,直到凌晨四点敲出最后一个分号,才发现键盘上沾了半块没吃完的巧克力。
“脚本需要伪装成系统自我演化的分支。”周晓冉头也不回,左手快速切换着窗口,右手在便签纸上潦草写着参数,“得让它看起来像是......像是系统用三个月前的社交密度模型,结合半年前的消费轨迹算法,自己生成的新评分标准。”他突然停住,钢笔尖在便签上戳出个洞,“但实际上,这三个模型会互相指认对方为‘错误分支’。”
林默的喉结动了动。
他摸向裤兜,那里装着从政务大厅顺来的临时工牌——半小时前他刚用这张工牌混进大楼,在茶水间听到两个技术员聊天,说“今晚十二点系统维护”。
此刻他的手机屏幕亮着,倒计时显示23:57:12,心跳声在耳膜上敲出重鼓点。
“我得走了。”他抓起外套,袖口带翻了马克杯,褐色咖啡在白板下洇出条歪扭的河。
周晓冉抬头,镜片后的眼睛亮得惊人:“记得用上次那套掩码程序,权限审查的防火墙在凌晨会切换成测试模式,端口......”
“8086。”林默接得利落,手指在手机上快速调出VpN连接,“你负责把分裂脚本塞进演化数据库的更新日志第三行,我去路径推荐模块改低质量案例的评分。”他站在门口回头,看见周晓冉已经重新埋进代码里,后颈的汗渍在t恤上晕成浅灰的云,“等会儿终端提示‘评分模型分歧’,我们就......”
“就看它怎么抓瞎。”周晓冉没抬头,指尖还在敲着只有他听得懂的节奏,“快走,别让门禁系统记下你的脸。”
楼道里的声控灯随着林默的脚步次第亮起。
他把工牌压在胸口,能摸到塑料牌边缘硌出的红印——这是他第三次潜入政务系统,前两次分别用了送水工和快递员的身份。
电梯停在五楼时,他数着心跳等门开,看见两个穿制服的技术员说说笑笑出去,其中一个的工牌上写着“运维部 王”,正是上周在包子铺和他聊过象棋的大叔。
“小默?”王大叔突然回头,林默的呼吸瞬间凝固。
但对方只是笑:“这么晚还来加班?
年轻人就是拼。“他拍了拍林默肩膀,擦肩而过时,林默闻到对方身上熟悉的茉莉茶香——和包子铺老板娘泡的一样。
“嗯,赶个急活。”他声音发紧,看着电梯门在王大叔的背影后合上,后背的汗立刻浸透衬衫。
七楼到了,他猫腰钻进楼梯间,从消防通道摸到机房门口,指尖在密码锁上快速输入:——今天的日期,系统维护日的默认密码,他上周偷看值班表时记下的。
“滴。”绿灯亮起的瞬间,林默差点栽进机房。
服务器的嗡鸣裹着冷风灌进领口,他摸到墙角的备用终端,开机时手背上的血管跳得发疼。
屏幕亮起的刹那,他迅速调出路径推荐模块,鼠标指针在“低质量路径”文件夹上悬了三秒——这里面存着两千三百个被系统判定为“偏离最优解”的用户案例,有送外卖的小哥坚持每天给流浪猫喂食,有退休教师拒绝去养老院非要在老巷口开读书会......
“现在,该你们发光了。”他轻声说,调出周晓冉昨天连夜写的转换程序。
每个案例的评分开始疯狂跳动:在社交密度模型下,送外卖小哥的路径评分从47%跳到92%;在消费轨迹模型下,退休教师的路径评分从31%暴跌至18%;在情绪波动模型下,两者同时飙到99%。
终端屏幕被各种颜色的评分条填满,像打翻的调色盘。
“叮——”
林默的手猛地一抖。
他抬头,墙上的电子钟显示00:03:17,而工位上的私人手机在震动——是周晓冉发来的消息:“已注入,等看它的反应。”他迅速切回系统界面,心跳几乎要冲破肋骨。
突然,屏幕中央弹出醒目的橙框:“路径演化记忆模块中,首次出现‘评分模型分歧’。”
“它开始不知道,哪一条路才是对的。”林默对着空气轻声说,指尖无意识地摩挲着终端边缘。
身后服务器的嗡鸣突然变调,像某种巨兽在低吟。
他抓起手机给周晓冉发消息,却发现对方的对话框已经弹出:“我这边也收到提示了。”
出租屋里,周晓冉合上笔记本电脑时,指节关节发出轻响。
屏幕的蓝光最后一次扫过他的脸,照见他眼底翻涌的情绪——有完成计划的雀跃,也有更深的忧虑。
他摸向茶几上凉透的咖啡,杯底压着张便签纸,是林默临走前写的:“这次,我们替系统做选择。”
“但我们也开始,不知道它到底想让我们走哪条。”他对着空屋子说,声音被服务器的嗡鸣吞掉大半。
窗外的月光漫进来,在电脑屏幕上投下银边,映出一行刚刷新的系统日志:“检测到多重评分模型冲突,启动......”
林默回到出租屋时,额角还沾着机房的冷气。
他扑到终端前,演化日志正以肉眼可见的速度滚动,字符流里突然跳出几个刺目的红体字:“尝试通过......”
“通过什么?”他低声问,手指悬在键盘上不敢触碰。
周晓冉从厨房端来热牛奶,杯壁的温度透过掌心传来:“不知道,但系统从来不会坐以待毙。”
终端的蓝光里,两人的影子重叠在一起。
日志滚动的速度越来越快,最后一行字符在屏幕上闪烁,像某种未说完的警告:“尝试通过......”