下一章 上一章 目录 设置
6、第 6 章 暗夜 ...
-
灯下,伦纳德盯着那张白纸上芙兰卡传来的完整“攻略”,沉默了整整十秒。
帕列斯从他灵体深处飘出来,年迈的半透明投影端着一杯不存在的红茶,用一种“我早就说过”的语气替他念出了前几行字:
“——深夜情感直播,建议眼部遮挡,推荐黑色半遮面罩,材质亲肤不反光,刚好遮住眼睛区域。”
伦纳德盯着那行字,表情从茫然到震惊到麻木,完成了一次完整的情感演化过程。他又往下看了几行,觉得自己的灵魂正在从口腔里飘出去。
“……她认真的?”
“看起来是认真的。”帕列斯回答,啜了一口不存在的茶。
白纸上又浮现出一行新的字,是芙兰卡后续补上的,字迹龙飞凤舞,一看就是一边笑一边写的:
“星星先生,正义小姐听到这个计划很高兴,问你需要不需要化妆师——不过我觉得你素颜就够用了。设备的话,她那边也可以一条龙提供。对了,眼罩我帮你挑了十几款,各种风格都有,明天闪送到你手上。遮住眼睛之后别人认不出你,你就不会那么羞耻了——而且你不觉得戴眼罩比露脸更有氛围感吗?观众就爱看这种‘看不清全脸但下半张脸帅得让人想掀开’的效果。”
帕列斯圈了个重点——“更有氛围感”。
伦纳德张了张嘴,想说“你确定这是为了不让我被认出来,而不是因为戴眼罩更那个什么”,然后意识到这个问题本身就是个陷阱,于是面无表情地把话咽了回去。
“她还找了挺多帮手。”帕列斯刷新到下一页,语气里带着一种看热闹不嫌事大的从容,“魔术师女士已经为你撰写多角度剧本了,正义小姐在协调霍尔集团下属的文化传媒矩阵做推荐位——你还没开播,宣发已经到位了。”
伦纳德机械地把信纸翻了个面,发现背面还有两行小字,大概是芙兰卡临时想起来又补的:
“我发现帕列斯先生可以偷一条信号——这样我就可以在梦境之外看您直播,及时给出合理建议。不用担心隐秘权柄影响直播效果,经过镜头传输之后,隐秘权柄的影响会自动消失。帕列斯先生说那叫‘媒介豁免’。祝福你。”
这段话槽点太多,伦纳德一时不知从何说起。他深吸一口气,把信纸放下,拿起笔在白纸上犹豫半天,回复了一句:“好,另外不需要化妆师。”
过了几秒,对方发来一个简笔画的表情——如果这个世界有表情包的话,大概是一个黄头发的小姑娘竖起大拇指。
伦纳德面无表情地关上灯,决定明天的事情明天再说。
第二天中午,伦纳德以“外出排查线索”的借口从阳都刑侦支队溜了出来,直奔霍尔集团的娱乐公司。
奥黛丽安排的设备全都是又小巧又高档的——一个小型补光灯,一个可折叠的直播摄像头,还有一对监听级的耳机。工作人员在现场演示了使用方法,态度专业得像是给公司高管做培训。伦纳德在心里默默换算了一下租这套设备的费用,换算到一半放弃了——他现在对自己的财务状况有一种鸵鸟式的回避策略,不看不听不想,先把钱赚到再说。
他把东西装进黑色双肩包,朝工作人员道了谢,转身离开回到警局。
下班回到出租屋已经是六点半了。客厅里没有人——伦纳德打开手机,发现周明瑞刚给自己留了条信息:
“我今天项目有讨论会,大概后半夜回来,不用等我吃晚饭。”
伦纳德看着这条信息,嘴角弯了一下。他打了几个字“我给你留饭”,想了想又删掉,回复了一个简洁有力的“好的”。
然后他开始在自己的卧室里搭建直播设备。
刚调试完,桌子上的白纸震了一下。芙兰卡的新消息:购物闪送已由门卫代收。
伦纳德下楼去取,拆开快递箱,发现里面是一堆遮眼面具。
不是一个两个。是一整箱,里面零零碎碎不下十种。有极简的黑色半遮面罩,有镶蕾丝的暗夜风格眼罩,有半脸蒙面的舞会款式,还有几款伦纳德甚至不确定应该归类为什么类别的——其中一款的材质是黑色丝绸,边缘缀着极细的银线,在灯光下会泛出一层若有若无的流光。还有一款更过分,两侧各有一片小小的羽毛装饰,不知道是哪个设计师把“天使”和“暗夜”两个词融合生成的产物。
他翻开芙兰卡附上的小纸条,上面写了一行字:“看哪个顺眼戴哪个,效果哪个好就哪个。建议选那款银线丝绸的——遮得最严实,而且够色气,观众就吃这一套。”
“……她是从什么渠道买的?”帕列斯的声音带着微妙的上扬。
伦纳德把纸条揉成一团,面无表情地从中选了一款纯黑色的半遮面罩。
然后他把其他的塞到了箱子最底层,用一堆说明书盖住,确保它永无见天之日。
---
同一时刻,阳都科讯信息科技有限公司的办公室里,周明瑞正端坐在工位前,眼睛一眨不眨地盯着电脑屏幕。
“神明”的开发界面在屏幕上展开,密密麻麻的代码行像一条条毛细血管,散发着诡异的生命力。周明瑞感觉自己最近对着电脑的时间越来越长,每次一坐在屏幕前就没办法移开目光。
他还在想昨天的事。
昨天下午,他测试“神明”的“日常生活叙事”功能模块。这个模块的设计初衷是让AI根据用户输入的关键信息,生成一段自然的、日常向的文字内容——比如给朋友写封信、记录一次出行、描述一个新认识的人。产品经理希望这个功能能用在用户引导和个性化欢迎页面上。
周明瑞随手输入了一行测试信息:
“最近新来了一个室友。人挺好的。”
他输入的时候没有多想。这就是他的真实生活——新室友搬进来才几天,安静、有礼貌、话不多。他没写对方是警察,没写对方绿眼睛,没写对方白衬衫下摆永远塞不好。他就写了一句“人挺好的”。
“神明”花了大约三秒生成了一段文字。
周明瑞端着马克杯,打算随便扫一眼就进入下一轮调试。然后他的杯子悬在了半空中。
那段文字是这样写的:
> 那天傍晚,有人敲响了我的门。他站在走廊尽头那扇窄窗漏进来的最后一缕日光里,黑发被晚风吹得有些凌乱,衬衫下摆有一截没有塞好。他抬起眼睛看我——那双绿眼睛在昏暗的楼道里亮得不太真实,像是有人把夏天被太阳晒透的树叶摘下来,嵌进了眼眶。
马克杯底轻轻磕在桌面上,发出一声闷响。
周明瑞盯着屏幕上那几行字,手指在鼠标上僵了半秒。他没有在任何地方输入过伦显德的外貌。没有在测试数据里写过“绿眼睛”,没有在用户画像里标注过“黑发”,没有在对话样本里提到过“衬衫下摆没塞好”。这些细节不是能从“人挺好的”这三个字里推导出来的。
——除非这个AI有某种他不知道的信息来源。
他本能地往四周扫了一圈。隔壁工位的同事正戴着耳机敲键盘,茶水间那边有人在聊周末去哪家火锅店。一切如常,没有人注意到他的异常。他深吸一口气,把AI生成的原文复制到备忘录,然后删掉了测试记录。
他把“神明”的深度学习模型参数导出,一点一点地分析它的训练数据来源,直到中午十二点半。结果让自己更加迷惑:“神明”在九十次输出里都能正常运行,但会有十次突然表现出过分的热情和偏黑暗的底色,像是一个人——不对,更像是一个人压抑了很久之后偶尔流露出的阴暗本质。
下午两点,他的电脑右下角弹出一封会议通知。项目主管俞老大发起的,说是要开一个紧急进度汇报会,重点讨论“神明”下一阶段的规划。
周明瑞的心沉了一下。
“神明”的异常他已经注意到了,但那不是单纯的程序Bug。如果是Bug,一定有迹可循——错误日志、异常参数、崩溃报告。但“助手”的异常输出如同一个健全的人偶尔说出的混账话,没有技术上的蛛丝马迹。
他想起自己之前的那个梦。严格来说是噩梦——梦里的伦显德用一只手刺穿他的胸膛,温热的血从胸口淌下来那种窒息般的疼痛,在梦里真实得要命。到现在他偶尔还会想起那双沾着他鲜血的手,想起对方垂下来的绿眼睛里带着“不得不这么做”的薄凉温柔。
然后AI在没有收到任何外貌描述的情况下,精准地写出了伦显德的绿眼睛。
这不是巧合。
他脑子里那个标了红字的文件夹被再次打开。AI的异常、噩梦的内容、艾琳的突然出现——这些碎片之间似乎有一条看不见的线,而他还没找到线头在哪里,现在这个异常又指向了自己的新舍友。
“周工?”艾琳的声音从身后传来,打断了周明瑞的走神。
“……什么事?”
“俞老大刚才发了个升级版项目预览,功能清单好像又加了,你看到了吗?”她今天穿了一条浅杏色的长裙,长发用一枚珍珠发夹别在耳后,整个人看起来温柔而专业。她微微歪着头看周明瑞的屏幕,杏核眼里带着恰到好处的关切。
周明瑞不动声色地把备忘录窗口最小化。“还没看,加了什么?”
“用户画像分析模块、情感交互升级、还有一个‘主动关怀’功能——就是“神明”可以主动向用户发送问候和提醒。”艾琳说着,把打印好的项目进度表放在他桌上,“俞老大说这周就要送内测,底层代码如果还有Bug,您看大概什么时候能修复好?”
送内测。这三个字像一记警钟敲在周明瑞的脑子里。“神明”现在的状态别说内测,连稳定生产都做不到——一个会在没有任何外貌描述的情况下精准写出陌生室友长相的AI,一个会在“日常生活叙事”模块里夹带私货的系统,谁敢把它放到真实用户手里?
下午两点半,会议室。俞老大站在白板前,用马克笔敲了敲上面画得密密麻麻的排期表。“各位,集团那边对‘神明’的预期你们也不是不知道,下半年产品上线的KPI压在所有人头上,这周必须送内测,不能再拖了。”
周明瑞推了推平光眼镜。“俞老大,底层代码还有需要排查的异常,给我两天时间,我尽快把目前的异常排查清楚。”
俞老大皱了下眉。
艾琳忽然开口了。她站起身,将面前的项目进度表翻到某一页,指着上面的一行字柔声道:“周工说的有道理,底层日志的输出确实存在非常规特征,如果这种特征在内测阶段暴露出来,影响的不只是项目排期,还有公司和客户的信任成本。但反过来说,也不能因为一个人的排查进度就让整个项目组等着——俞老大,您看能不能把内测分成两批?第一批先用降级版本,把情感交互和主动关怀这两个风险模块暂时屏蔽,只测基础对话功能。这样一来排期不耽误,周工也有时间把核心模块的问题彻底查清楚。”
周明瑞转头看了她一眼,这个方案听起来合情合理——降级内测,风险可控,排期不受影响。任何正常的项目主管都不会拒绝。而且这番话把他的“两天排查”变成了一个可执行的、不影响进度的妥协方案,俞老大没有理由不点头。
但这也意味着——“神明”的基础版本还是会送到用户手里。哪怕屏蔽了情感交互和主动关怀,它的底层逻辑依然在运行。异常输出的风险只是从“大概率”变成了“小概率”。小概率不是零。
……不。有一个办法可以做到零风险——只要让项目延期就好。两天的排查时间,他可以在底层代码里制造一个足够严重但看起来像自然Bug的报错。一次性把所有测试环境都污染,让整个内测流程被迫推迟,同时不留下任何指向自己的痕迹。但这个代价是什么?拖延被查出来,他的职位保不住。项目延期,公司的损失他赔不起。而且——这种事他以前从来没干过。他周明瑞,写代码从来不写后门,从来不走捷径。他做人做事的原则是“把东西做好”,不是“把东西搞砸”。
他忽然感到一阵强烈的头痛。不是生理上的疼痛,而是某种更内在的、像是有什么东西在他意识深处轻轻搅动了一下的感觉。他隐约觉得自己的身体正在期待他做出某个选择——果断出手。
然后他听到了自己开口。声音平稳,语调温和,每一个字都不带任何攻击性,但组合在一起的效果却让所有正在讨论的人都转头看向了他。
“俞老大,我有一个更稳妥的提案。刚才我对现有的底层代码做了风险系数评估,以数值评分——稳定性只有三十二分,这个数据很低。如果把有风险的产品交到用户手中——哪怕只是小范围降级内测——一旦出现问题,影响的是公司的信誉,以及后续二测、三测的时间成本。给我两天。就两天。两天之后我把风险评估报告和优化方案一起交上来。如果到时候评分依然不达标,您再决定要不要延期。”
俞老大沉默了片刻。他的脸色不太好看,手指在白板的排期表上敲了又敲,显然并不乐意再退让一次。但周明瑞的话有道理,让人很难想到反驳的理由。
“……两天。”俞老大在白板上画了个重点标记,“两天后我看结果。”
会议室里安静了半秒,然后大家陆续起身。艾琳收起项目进度表时看了周明瑞一眼——那目光很安静,有一种被平静水面掩盖的幽深。然后她微微弯了下嘴角,跟着其他人走出了会议室。
周明瑞回到工位,坐下来,发现自己手心全是汗。他刚才那些话不全是策略——他是真的在数据里找出了风险指标。但那个“三十二分”是他临时评估的,如果俞老大当场让他打开数据库验证,他大概要多花一些周折才能圆过去。然而俞老大没有追问,不仅没有追问,还点头了。
他隐约觉得自己刚才说话的时候,声音里好像掺了某种他自己都不太理解的东西。不是说服力——他本来就有一定的说服力——是某种更进一步的、像是指令绕过了对方的理性防火墙直接抵达决策区的东西。他说不清那是什么,但他能感觉到自己的身体在说完那段话之后,有一个极细微的、像是某种被压了很久的弹簧终于弹开了一下的松弛感,是某种更深处的满足。
他在备忘录里敲下一行字,只有四个字:“这不对劲。”
锁屏,靠在椅背上,盯着天花板。他决定今晚回家之后,一定要找伦显德聊聊。他的室友是刑侦警察,见过不少离奇案子,而且——直觉告诉周明瑞,伦显德知道一些他不知道的事。
---
周明瑞回到出租屋的时候,晚上十一点。
客厅的灯亮着,餐桌上放着一只保温袋,里面装着肉馅饼、一小杯加冰的甜茶和一份凉菜。
餐盘边上放着一张便利贴,上面是伦纳德那笔不算好看但每个字都写得非常认真的字迹:“晚上写程序注意护眼,别太晚。”
便利贴的右下角画了一个极其潦草的小星星——如果那几个交错的线段能被称作“星星”的话。周明瑞盯着那个潦草的星星看了三秒,嘴角先弯起来,然后他发现自己正在笑,又飞速把嘴角抹平。他把便利贴从餐盘上揭下来,放进自己书桌抽屉最上面那一层——里面已经攒了不少纸条,超市小票、账单便签、还有那天医院里的缴费单。
保温袋里的馅饼还是热的,酥得掉渣。甜茶的温度刚好卡在褪去暑热又不会过凉的边界,甜度不多一分不少一分。他一边吃一边小声嘟囔:“……我上辈子攒了什么运气,这室友真不赖。”
然后他回房洗漱,穿着睡衣走到自己房间门口时,注意到伦纳德的房门半开着,里面透出一缕温暖的灯光。他探进头想打个招呼,却发现伦纳德正戴着耳机对着电脑,屏幕上的界面他没见过——不像是刑侦系统的后台,也不是普通浏览器的网页,而是一个看起来像直播后台的操作面板。补光灯架在桌子上,摄像头正对着床沿的方向。他想起伦纳德是“搞文艺的”——那天在医院对方亲口说的——可能在录音什么的,不方便打扰。他缩回头,轻手轻脚地退回了自己房间。
躺在床上刷手机的时候,他本来想搜一下“怎样克服不想让室友搬走的私心”这种毫无意义的问题,结果搜索引擎还没加载完,他就被一个短视频推送吸引了注意力。
那是一个直播平台的推荐卡片。封面是一个戴黑色半遮面罩的男人,暖黄台灯光从侧面打过来,把他下半张脸的轮廓勾得极其清楚——干净的下颚线,微微敞开的领口,锁骨在光影交界处若隐若现。直播间的标题只有四个字:“暗夜诗人”。
周明瑞盯着那张封面看了零点几秒。然后他点进去了。
主播正在念一首诗——不对,不是诗,是一段独白,那种介于情书和自白之间的东西。他垂着眼睛,睫毛在补光灯下投下一小片阴影。嗓音是低沉的、散漫的、带着一点点沙哑的磁性,像是一把大提琴,在午夜拉响第一根弦。
“我以为我会永远记住你刚到的那一天。可我发现我根本记不住。不是我忘记了你——是那个时刻被我像钥匙串一样拴在身上,走到哪里带到哪里。我反而已经分辨不出它和你,哪一个更根深蒂固。”
周明瑞把手机往脸上方挪了几寸。
这个声音他认得。不只是认得,他甚至能分辨出对方说“好的”和“谢谢”之间的微妙音高差,能分辨出对方说“我没醉”时嘴角挂着的那个散漫的、不太正经的笑。
他戴上耳机。音质瞬间被推到了另一个层面——背景里的电流底噪被降噪算法过滤得干干净净,只剩下那道嗓音赤裸裸地贴着耳膜振动。每一次换气时细微的气息声,每一个句末微微上扬的尾音,都清晰得像是有人凑在他耳骨旁边念给他一个人听。
屏幕上飘过一连串弹幕:【草这声音也太好听了吧】、【这低沉磁性得跟耳机里有人在对我说悄悄话似的】、【我说这位主播的眼睛是被蒙住了吗?更想看全脸了!】、【在线等个课代表解释为啥我刷到一个朗诵直播间然后出不去了】。
周明瑞完全能理解她们为什么出不去,因为他也出不去。
他侧过身,把被子往上拉了拉,手机屏幕的光映在他脸上,把那点不自觉翘起来的嘴角照得格外清楚。他心想,这声音在川菜馆里说“没醉”的时候明明是另一个调子,这个人到底有多少个声部?他的新舍友还附赠了这么多隐藏功能。
伦纳德翻到下一页剧本。
剧本是佛尔思写的,但他在念到某一段的时候,忽然觉得那些句子和自己心里某个压了很久的念头重叠了。不是表演,不是念台词,是他借着别人的文字,在说自己的话。他的视线越过摄像头,落在墙面上那个看不见的方向——他知道墙的另一边是周明瑞的房间。
他在这个人的隔壁已经守了好几个晚上,在廷根守了更久。有些守护不需要被知道,有些话不需要被听见,但他想让这些话在这个深夜的直播间里留下一点回响。
“我会在做不到的事上说尽力,在不确定的事上说也许。只有一件事我从来不犹豫——你身边需要一个站在暗处的人。而那个人,刚好是我。”
弹幕在这一刻炸了。打赏的提示音像雨后的蛙鸣一样此起彼伏地响了起来。一块、五块、十块的礼物开始在公屏上连续霸屏。
灰雾之上,芙兰卡问:“魔术师,这段你写的?”
佛尔思失神般喃喃回答:“我觉得我好像不小心打通了什么神秘学通感,这段不是我写的——他在即兴发挥。”
奥黛丽放下茶杯,隔了半秒才说:“即兴,他即兴。”
嘉德丽雅推了好几次眼镜,最后把眼镜摘下来擦了擦。
就在这时,公屏上跳出一个ID——“阿罗德斯大人”,头像是一面银色边框的镜子,简介写着“全天候待机”。它二话不说刷了一个价值一千二百元的最高档礼物“许愿星”。接着在公屏上打出一行字:
“根据观测统计,‘暗夜诗人’直播间开播前十分钟的打赏数据已经超过同类直播间96.3%。另外仆人注意到主播的声音频率在念到‘刚好是我’这一句时出现了极细微的波动,这种波动通常与‘说真话’相关。仆人不才,冒昧将此条观测归档至‘值得纪念的瞬间’。”
弹幕立刻炸了锅。
【阿罗德斯大人这个ID好中二好可爱我喜欢】
【等等这不会是数据分析师吧开播十分钟就出数据还出音频分析??】
【许愿星亮了镜子大人你是真爱】
【那个“说真话”的分析我嗑了】
阿罗德斯又在公屏上打出一行:“建议增加‘暗夜诗人先生专属朗读定制’的付费选项——一单五百块,限时十分钟。”
在凡人无法感知的更高维度上,魔镜阿罗德斯的备忘录正以极小的字体飞速刷新着一行行古弗萨克语文字,每个字都透着一种“我终于帮上忙了”的欣慰:
“备忘录:已为主人的锚提供打赏支持及数据分析服务。仆人注意到,当主人的锚念到某些句子时,在线列表里那个叫‘键盘是我的武器’的观众也会同时出现微小的观看情绪波动——说明他听得很认真。仆人认为这对主人大有裨益。静音模式继续运行,祝主人情绪稳定,万事如意。”
后面跟了一个乖巧跪坐的小表情。
芙兰卡在灰雾上真心发问:“这是魔镜阿罗德斯吧?他在教一个隐秘之仆赚钱?还顺手做了情感数据分析?”
伦纳德用余光瞥了一眼聊天窗,在心里默默念了一句“我不认识这个……镜子”,然后继续翻开下一段。
但还没等他开始念,弹幕忽然又炸了一波。阿罗德斯以“阿罗德斯大人”的ID一口气连刷了三颗许愿星,附言:“提前投资,主人和主播都值得。”
这一波操作把在线观看人数又往上推了一截。新进来的观众不明所以,只当是哪家土豪在捧主播,弹幕刷得飞起:【阿罗德斯大人yyds】、【这ID我记住了以后跟投】、【阿罗德斯大人你是不是暗恋主播】。
伦纳德盯着那条“你是不是暗恋主播”的弹幕,眼皮跳了一下,继续翻到佛尔思写好的最后一段。
佛尔思的第三份剧本是一则短篇故事,讲的是两个人在漫长的岁月中被命运反复拨开、又反复推到一起的故事。故事的结尾有一段独白——而这段独白与开场那封信的情绪递进完美衔接,串成了一条完整的情感弧线。
伦纳德念的时候,灰雾之上安静得没有一个人说话。
奥黛丽放下茶杯,看着屏幕,微微蹙眉。佛尔思托着腮,眼眶莫名泛红。嘉德丽雅推了推眼镜,又摘下擦了擦。埃姆林把头扭向一边,假装自己没被感动。
芙兰卡评价道:“写剧本和念剧本的都犯规。”
帕列斯喝了一口不存在的茶,声音压得只有自己听得见:“念剧本的不只是念——他是认真的。他是真的觉得,就算那条河永远不往他这个方向流,他也会在岸边一直站下去。”
弹幕几乎在伦纳德念完最后一句的同时迎来了这一晚的最高潮。但伦纳德没有去看那些滚动的文字。他只是低头喝了一口咖啡,余光扫过后台的在线观众列表。
那个ID在列表的中段,毫不起眼。没有头像框,没有贵族标识。但前面的名字让他的指尖顿了一下——“键盘是我的武器”。
在线时长:四十八分钟。从开播第四分钟就进来了。打赏记录:1。
那个“1”是一个价值一块钱的“小星星”——礼物留言框里写着两个字:“好听。”
伦纳德看着那两个字,又看着那个一块钱的记录,忽然有点想笑。这个人,打赏就一块钱。
他关上摄像头,对着屏幕说了声“晚安”。然后坐在椅子上,对着那个已经变成灰色的直播间界面,嘴角弯起一个旁人看不懂的弧度。那块小星星的留言只有两个字,他看了不止两遍。
帕列斯的声音从灵体深处悠悠飘出来:“‘键盘是我的武器’——你觉得是他吗?”
“你觉得呢?”伦纳德反问。
帕列斯喝了一口不存在的茶。“是他。还给你打赏了一块钱,以他的性格,大概从来没有打赏过。”
伦纳德把手机扣在桌上,关灯,躺下。
黑暗里,帕列斯又说了一句:“你笑什么?”
“我没笑。”
“你笑了。”
伦纳德把被子拉过头顶,不说话了。
---
隔壁房间,周明瑞合上手机的时候,屏幕上的时间刚过凌晨一点。
他本来应该在这个时间之前上床的。今晚直播都快要结束了,他还躺在床上听着耳机里那道低沉的、散漫中带着磁性的嗓音一字一句地念着那些幽深的句子,把所有要做的事情都忘了。
那个人念的故事里,有“在你不知道的许多个瞬间”这种措辞,有“你身边需要一个站在暗处的人,而那个人刚好是我”——念到这句的时候,主播的声音停顿了半拍,换了一口气,把最后一个字落在了一个极其安静的尾音上。周明瑞觉得那道尾音像一把勺子轻轻伸进他胸口最柔软的那个地方,然后搅了一下。
“搞文艺的警察,太危险了。”周明瑞把手机翻了个面,闭上眼睛,却发现自己根本睡不着。“暗夜诗人”最后那句独白像是被刻进了他的大脑皮层,和AI生成的绿眼睛描写交替播放着。还有那个封面——黑色半遮面罩遮住了眼睛,只露出下半张脸。黑色面罩下面的唇线在念到某几个字时微微抿紧又松开,那个弧度——
他把被子往上拉了拉,决定不再继续想这件事。然后把手机拿起来又看了一眼——直播间已经变成灰色,在线人数归零,但右下角那个“已关注”的红色按钮还在亮着。
也不知道是哪个手指在什么时候按的。他按下锁屏,把手机屏幕朝下扣在床头柜上,在心里给自己做了个简短的复盘:一切都在可控范围内。
他关掉手机,闭上眼睛,在那个人低沉嗓音的余韵中沉入了梦乡。
---
第二天早上,周明瑞坐在工位上,把“神明”的所有底层架构从头到尾又梳理了一遍。从框架到算法,从数据流到输出层,他甚至把第三方封装的辅助模块全拆开,逐行审阅了其中的调用逻辑。
没有,还是没有。
代码没有问题,协议设计也没有冗余逻辑,各类参数调用也全都在规范之内。但他把所有测试记录拉出来重新过了一遍:从第一天的“儿童睡前故事模式”输出谋杀故事,到今天的“主动关怀”给出的身边人成为我的噩梦后怎么办建议——每一次异常都指向同一个事实:有某种他不知道的东西在底层代码里运行。
他从权限入口进入“神明”的训练数据仓库,把所有近期更新的数据集都拉出来比对。技术层面已经没有任何遗漏了——他已经把服务器的日志翻了个底朝天,把每一个接口的调用记录都审了一遍,把第三方封装的辅助模块全拆开逐行看过。如果这是一个普通的Bug,他早就找到原因了。
但他没找到。
不是因为他不够仔细,是因为这件事从技术层面根本解释不了。一个AI不应该在没有输入的情况下知道一个陌生人的长相。一个AI不应该在他没有输入任何相关信息的情况下,编出一个和他的噩梦内容高度重合的故事。除非——“神明”有某种他不了解的信息来源。
既然在代码层面找不到Bug,那么“神明”的问题就不在代码层面。而在代码之外,在这个物理世界。
代码没有错,AI没有被动过手脚,但那个东西还是进来了,不是通过代码,是通过别的渠道。他用了整整一个上午来消化这个判断——然后做了决定。
“助手”不能上市。不能以任何形式上市,降级内测也好,分批次也好,屏蔽模块也好——只要它还活着,只要还有一行底层逻辑在运行,那个他看不见的东西就会继续活跃,等待下一个机会。后天项目就要上线,这个问题势在必行。
今晚,他不打算睡觉了。
晚上回到出租屋,伦纳德正在厨房忙活。今晚的菜色很不一样——不是馅饼那种方便食品,而是一锅鸡汤。鸡是处理好的,生姜切片,一截大葱打结,锅里飘着一层金灿灿的油花,香味弥漫了整个厨房。伦纳德穿着平时那件白衬衫——没有穿围裙,领口有些热气蒸腾出的潮意,袖子卷到肘弯。
“今天这么丰盛?”周明瑞凑到锅边看了一眼,发现汤底还放了几颗红枣。
伦纳德没有回头,只是继续搅动着汤勺。“鸡汤补脑,你这两天熬项目,得补充营养。”
“你怎么知道的?”
“你眼下有黑眼圈了。”
周明瑞下意识摸了摸自己的下眼睑,他没有反驳,笑了笑坐下来开始帮忙把做好的菜端上桌。鸡汤,几个小菜,一碟酱料。不算豪华,但那种家常的暖意比什么都熨帖。
吃饭的时候,周明瑞端起饭碗,忽然开口:“警察先生,我问你一个问题。”
伦纳德夹菜的筷子顿了一下,然后不动声色地放慢动作。“你说。”
“如果有一样东西,大家花了很多时间精力搞出来的,付出了很多代价,快要成功了,”周明瑞夹了一筷子菜放进嘴里,嚼了两下,把话说得更慢了一些,“但是你在最后关头发现它底色上有些你控制不了的东西——如果说让它按计划走,有可能什么事都没有,但也有可能造成很隐蔽但很严重的问题。而你身边所有比你有资源有资历有话语权的人都支持出成果,只有你觉得应该停一下——该不该停?”
伦纳德放下筷子。
他没有直接回答:“这我无法直接给出答案,但我听说过一个故事,想听吗?”周明瑞点头。
“在很久以前,”他说,“有一个非凡世界,那里曾经有过一次决定世界局势走向的投票。七个最强大的存在——那些站在顶层的正神,赞成全都投了票。只有一位存在没有赞同,而那时候这位存在还在虚弱期,力量远弱于那七个最强大的正神。那位存在的名字在神秘世界里被世人遗忘了很多年,但那次投票之后,举世皆知。人们尊称祂为‘愚者’。”
他顿了一下,绿眼睛里浮现出某种柔和的光。
“所有人都觉得这是赞同是最好的选择——虽然隐患巨大但已经付出了无数人的生命——赞同无疑最稳妥、最高效、风险最低。只有那位存在不同意,祂投了一个人——只有祂自己——的反对票。不是因为祂不聪明,而是因为祂看到了别人没看到的东西,看到了在那条看似坦途的道路尽头,隐藏着一个谁都无力回天的未来。”
伦纳德声音压低了些许。“祂本来可以什么都不做。祂本来也可以随大流保持沉默。反正七个正神都不觉得那是错,多祂一个人家也看不出区别。……但祂没有。”
饭桌的另一侧安静了几秒。
周明瑞慢慢地放下筷子,好像是这个故事背后有什么东西正在他的记忆深处被微微触动。一种他说不清楚的、像是飘了很久之后忽然靠岸的感觉。
“那位……存在,”他斟酌着词句,“后来怎么样了?”
伦纳德垂下眼睛,嘴角浮起一点很淡的微笑。“祂后来成了所有人的依靠。但祂依然每天都要为‘维持住自己的那部分人性’而不断地抗争。”他顿了顿,用一个很有力的结语结束了这个故事,“祂做的每件事都是祂认为应该做的——不是因为有把握做成,不是因为有人在旁边鼓掌,而是因为那件事本来就该做。”
周明瑞沉默了好一会儿。
然后他用筷子拨了拨面前那碗鸡汤,淡淡地笑了一下。“这个‘愚者’……挺勇敢的。”
伦纳德唇角弧度弯得更深了一点。“是啊。勇敢得要命。”他说这句话的时候语气极轻极柔,像是在说一件他珍藏了很久的、从来没跟任何人分享过的心事。
他说的那个人,就在对面喝着鸡汤。
与此同时,灵性深处帕列斯的声音忽然响起:“你那个愚者的故事……效果比我想象的要好。”
伦纳德没有回答。他只是在想一件事:周明瑞刚才问他那个问题的时候,眼神里有一种他极其熟悉的认真。那不是在征求建议,那是在做决定之前的最后一次验证。而他给了那个人他需要的验证——用一个愚者自己的故事。
这大概是他能想到的,最好的回答。
---
第二天清晨六点半,周明瑞的闹钟还没响。
他去厨房热了一杯牛奶,端到客厅的茶几上,打开了“神明”的全部底层代码库。从项目的根目录一路向下展开,每一个文件夹、每一行代码。
他知道自己接下来要做的事,会让俞老大发疯,让整个项目组傻眼,让投资方在接下来一个月里不断四处找人求助、约谈所有人。
但他在坐下之前就已经做好了决定。
他要投下反对票。
因为如果最后只剩下他一个人……那他就一个人干。
周明瑞深吸了一口气,开始回忆一晚上想好的计划。
(第六章·完)