第一章:平凡
一
凌晨两点十七分,中关村。
丁阳的眼睛盯着屏幕,已经连续四个小时没挪过地方。屏幕上密密麻麻的代码像一张灰色的网,他在这张网里游了十年,早就习惯了这种窒息感。
公司主营企业级防火墙,客户名单里有银行、有医院、有政府部门。丁阳的工作是维护这些客户服务器的安全补丁——说白了,就是给别人的房子修门窗,确保没有黑客能撬开。听起来挺重要,实际上跟修鞋差不多:鞋破了补上,补完了接着穿,穿破了再补。
他把最后一个报警标记为“误报”,在工单系统里敲下一行字:“建议升级内核版本。”敲完自己都觉得废话——客户要是肯升级内核,还用得着他们?
丁阳往后一靠,椅子发出不堪重负的嘎吱声。他揉了揉眼睛,眼眶干涩发痒,是长期熬夜留下的后遗症。医生说是干眼症,开了瓶人工泪液,他搁在工位抽屉里,想起来就滴两滴,想不起来就忍着。
办公室里只剩他一个人。二十多台电脑的主机灯像萤火虫一样闪烁,空调外机在窗外嗡嗡响,除此之外就是键盘敲击声——他自己的。
丁阳三十出头,穿一件洗得发白的灰色卫衣,袖口磨出了毛边,有几根线头耷拉着。衣服是优衣库打折时买的,穿了三四年,领口松了也懒得换。下身是一条深蓝色牛仔裤,膝盖位置泛白,裤脚沾着点泥点子——昨天中午下雨,他没带伞,踩了一路水坑。
脸是那种扔进人堆里找不出来的长相。眉毛不浓不淡,眼睛不大不小,鼻梁不高不塌。嘴唇有点干,起了一层白皮。胡子两天没刮,下巴和腮帮子泛着青。头发乱糟糟的,早上洗过,下午就塌了,这会儿跟鸡窝似的。
但仔细看,能看出点不一样的东西。他的眼睛虽然干涩,但盯着屏幕时有一种专注,像猎手盯着猎物。手指敲击键盘的动作很轻,但每个按键都落在该落的位置上,十年敲下来,已经成了肌肉记忆。
桌角放着一杯咖啡,半满,冷透了,表面结了一层膜。他端起来喝了一口,凉的,苦的,咽下去胃里一激灵。他把杯子放下,没再碰。
窗外是北三环。凌晨的车流比白天稀疏,但还是有车在跑。尾灯连成红色的线,从东往西流,流到看不见的地方。远处有几栋写字楼还亮着灯,稀稀落落的,像熬夜的人睁着的眼睛。
丁阳盯着窗外看了几秒,转回头继续看屏幕。
显示器右下角弹出一条新闻推送:“中东战局升级,美军智能无人机群在也门执行精准清除行动,军方宣称零伤亡。”
他扫了一眼,关掉。
这种事离他太远了。也门在哪儿他都说不清,更别说那些无人机。他只知道无人机挺贵的,一架能顶他十年工资。但那是别人的事,跟他没关系。
他的事是代码,是bug,是客户那些永远修不完的服务器。
二
白天的事他不想回忆,但还是会想起来。
早上九点开例会,项目经理老周坐在长条桌那头,手里转着一支笔,眼睛盯着丁阳。
“丁阳啊,”老周说,语气跟说“天气不错”似的,“你上季度的工时,我看了一下,排在倒数第三。”
丁阳没说话。
“倒不是说你工作不努力,”老周转了转笔,“但你得想想,为什么别人都能报够工时,就你报不够?是不是摸鱼摸得太明显了?”
会议室里其他人低着头看电脑,假装在记笔记。有人偷偷抬眼瞟丁阳,又飞快收回去。
丁阳还是没说话。他能说什么?说他每天加班到凌晨,但报工时只能报八小时,因为公司规定加班得审批,审批得通过项目经理,项目经理从来不批?说他把时间花在查那些没人管的疑难杂症上,而那些东西报不了工时,因为不在项目范围里?
说了也没用。老周知道,他也知道。老周就是要敲打他,让他知道谁说了算。
“行吧,”老周把笔往桌上一扔,“下季度注意点。”
丁阳点点头,出门去工位。
中午在食堂吃饭,他端着餐盘找位置。食堂人挤人,窗口排着长队,空气中弥漫着红烧肉和西红柿鸡蛋的味道。他打了份十五块的套餐:一荤两素,米饭管够。
找了半天,看到角落有个空位。他端着盘子走过去,坐下,一抬头,对面坐着个人。
李丹。
人事部的,二十四五岁,长发披肩,笑起来有两个浅浅的梨涡。丁阳见过她很多次,但从没说过话——不是一个部门的,没交集。
今天第一次离这么近。
她穿一件米白色的针织开衫,里面是浅蓝色的衬衫。头发披着,发尾微卷,有几缕搭在肩上。脸很小,皮肤很白,睫毛很长。低头吃饭的时候,睫毛投下一小片阴影。
丁阳只看了一眼,就低下头,盯着自己盘子里的红烧肉。
李丹也抬头看了他一眼,可能是认出他是同一栋楼的,微微一笑:“你好。”
丁阳愣了一下,点点头:“你好。”
然后就没话了。
丁阳埋头吃饭,吃得很快,三分钟解决战斗。他站起来,端着盘子要走,李丹又抬头看了他一眼。他感觉到那目光,但没敢对视,快步走向收餐处。
走出去好远,他才觉得自己傻:人家就是打个招呼,他紧张什么?
下午陈俊发来微信:“晚上找你喝酒?”
陈俊是他发小,从小一起长大的。比他小一岁,今年二十九。俩人从小学到高中都在一个学校,后来丁阳考上BJ的大学,陈俊考到另一座城市,毕业后都来了BJ。
陈俊以前当保安,现在还是当保安,只不过从小区保安变成了保安队长。小区物业换了三茬人,他被留下来了,因为踏实,因为肯干,因为物业经理换了好几拨,他还在。
“工资涨了两百。”陈俊在微信里说,“现在一个月四千五。”
丁阳回:“挺好。”
陈俊回:“好个屁,涨完还是不够花。”
丁阳想了想,说:“晚上来吧。”
陈俊回:“得嘞。”
晚上七点,老妈打电话来。
丁阳看着屏幕上跳动的“妈”字,犹豫了两秒,接了。
“阳阳啊,”老妈的声音从听筒里传来,带着点东北口音,“吃饭了没?”
“吃了。”
“吃的啥?”
“食堂。”
“食堂能有什么好吃的,你也不知道自己做点。一个人在BJ,得照顾好自己,别老吃那些没营养的……”
“妈,”丁阳打断她,“有事吗?”
“有事,当然有事。”老妈顿了顿,“隔壁王阿姨的女儿,你还记得不?在银行工作的那个,比你小三岁。王阿姨说想介绍你们认识认识,你什么时候有空,回来见见?”
丁阳沉默了几秒。
“妈,我忙。”
“你忙什么忙?年年忙,年年也没见你忙出个对象来。你都三十一了,再不找,好的都让人挑走了。我跟你说,王阿姨那姑娘条件可好了,银行正式编,有车有房,长得也好看……”
“妈,”丁阳又打断她,“我回头再跟你说。”
“回什么头,你每次都回头。我跟你说,这次你必须……”
“妈,我加班呢,挂了。”
他挂断电话,把手机扣在桌上。
屏幕又亮了,老妈发来一条微信:“王阿姨女儿照片.jpg”
他没点开。
晚上九点四十,陈俊来了。
丁阳听见电梯门开的声音,抬头看,陈俊已经走到门口,冲他招手。丁阳收拾了一下桌面,拿起外套走过去。
陈俊瘦了点,但还是一样结实。他比丁阳矮半头,但肩宽背厚,走路带风,一看就是当过兵的。脸晒得黑,眼睛不大,但亮,笑起来眯成一条缝。穿一件黑色夹克,拉链没拉,里面是灰色T恤,胸口印着个看不清的图案。牛仔裤,运动鞋,鞋边有点脏。
他手里拎着两瓶啤酒和一份烤冷面,冲丁阳晃了晃:“走,找个地方。”
两人走到消防通道,在楼梯上坐下。陈俊把烤冷面递给丁阳,自己开了瓶啤酒,仰头灌了一大口。
“还是你这儿清静,”陈俊说,“我们那破保安室,整天人来人往的,烦死了。”
丁阳也开了瓶啤酒,喝了一口,没说话。
陈俊开始念叨保安队的事:新来的队长是物业经理的亲戚,什么都不会,就会指手画脚。今天开会的时候,队长说要重新排班,把陈俊他们几个老人的班都排成夜班,白天让新人上。陈俊当场就火了,跟队长吵了一架。
“要不是得攒钱给我妈看病,”陈俊咬着牙说,“我早他妈不干了。”
丁阳看着他,沉默了几秒,说:“有事叫我。”
陈俊笑了笑:“放心,真有事肯定找你。你是我兄弟,我不找你找谁。”
两人沉默着喝了一会儿酒。
楼道里很安静,只有远处电梯运行的声音,偶尔有人走过的脚步声。声控灯亮一会儿,灭一会儿,亮的时候能看见墙上贴的小广告:疏通下水道,138xxxxxxx。
陈俊突然问:“你最近有没有做奇怪的梦?”
丁阳一愣:“什么梦?”
陈俊挠挠头,有点不好意思:“就……特别真实的梦。梦见自己在打仗,枪林弹雨的,子弹从耳边飞过去,咻咻的。有时候还梦见自己在跑,后面有人追,追得特别紧,跑得腿都软了。”
丁阳看着他:“你以前当过兵,做这种梦不奇怪吧?”
陈俊摇头:“不是那种。我以前也做梦,但梦里知道是假的。这几次不一样,醒过来好半天才反应过来,还觉得身上疼,好像真挨了枪子儿似的。”
丁阳沉默了几秒:“我没做过这种梦。”
“那挺好,”陈俊笑了笑,站起来,“我走了,你早点下班。”
他走下楼梯,脚步声越来越远。走到拐角处,他回头看了一眼:“有事给我打电话。”
丁阳点点头:“嗯。”
陈俊消失在楼梯拐角。
三
丁阳回到工位,坐下。
屏幕亮了——他离开的时候没关电脑,只是熄了屏。
他拿起鼠标,准备关机走人。
就在这时,屏幕突然黑了。
不是休眠那种慢慢暗下去,是啪一下,直接黑了,像有人拔了电源。
丁阳愣了一下,下意识去看主机——主机灯还亮着,风扇还在转。
然后屏幕又亮了。
自检画面,Windows图标,登录界面。
一切正常。
丁阳输入密码,进入桌面。他打开事件查看器,翻系统日志——没什么异常,就是正常关机和重启的记录。他又查了查硬件状态,温度正常,电压正常,硬盘健康度正常。
可能是显卡驱动抽风了。这种事偶尔会发生。
他关掉电脑,站起来,穿上外套,关了灯,走向电梯。
电梯门打开,他走进去,按了一楼。
电梯下行,数字跳动:18、17、16、15……
电梯里的灯突然闪了一下。
丁阳抬头看,灯又正常了。
电梯到一楼,门打开,他走出去。
大厦大堂里空荡荡的,只有保安在值班。保安是个大爷,认识他,冲他点点头:“又加班这么晚?”
“嗯。”丁阳点点头,推门出去。
外面起了风,有点凉。三环上车还在跑,但少了,声音显得特别清晰。路边有几盏路灯坏了,光线一段亮一段暗。
丁阳沿着熟悉的路线往地铁站走。
他看不到的是,在他离开的那台电脑里,在底层数据流的某个角落,一串代码悄然驻留。
那串代码没有文件名,没有进程名,没有任何可以被系统检测到的特征。它只是静静地待在那里,像一颗休眠的种子,等着被唤醒。
它被标记为:“未识别协议-源地址:无法追踪”。
四
丁阳住在回龙观。
租的一居室,老小区,六楼没电梯。月租三千二,占他工资的四成。房子不大,三十多平,家具都是房东的旧货,沙发弹簧坏了,坐上去会陷进去一个坑。
他进门,开灯,换鞋,把钥匙扔在鞋柜上。去卫生间洗了把脸,对着镜子看了看自己:眼睛红,脸色差,嘴唇干裂。
他刷了牙,洗了脚,关灯,躺到床上。
睡不着。
脑子里还在转那些代码。那个报警到底是不是误报?为什么最近这种报警特别频繁?负载曲线为什么总在凌晨波动?
他翻了个身,盯着天花板。
窗帘没拉严,外面有光透进来,在天花板上投下一道模糊的白。那是小区路灯的光,隔着一层薄窗帘,变得朦朦胧胧。
他想起陈俊说的那些梦。
打仗,枪林弹雨,子弹从耳边飞过。
他从来没做过这种梦。他从小到大都很少做梦,睡着了就是睡着了,醒过来就是醒过来,中间一片空白。
以前他觉得这是好事——不做梦,睡眠质量高。现在他突然有点好奇,做梦是什么感觉?
他想不出。
眼皮越来越沉,意识开始模糊。
他睡着了。
五
早上七点二十,闹钟响。
丁阳睁开眼,盯着天花板看了三秒,翻身起床。洗脸刷牙穿衣服,出门前看了一眼手机——陈俊发了条微信:“昨晚又做梦了,妈的。”
他回了个“?”。
陈俊没回。
地铁站人挤人。丁阳被夹在人群中间,随着车厢晃动。对面站着个年轻女孩,戴着耳机刷手机,屏幕上是一个游戏界面。旁边是个中年男人,穿着西装,打着领带,手里攥着公文包,表情疲惫。
丁阳低头看手机,刷了刷新闻。
头条还是中东战局。美军无人机又炸了什么地方,死了多少人。下面评论吵成一片:有人说这是侵略,有人说这是反恐,有人说不管是什么,别把中国扯进去就行。
他往下翻,看到一个帖子:“家里的智能冰箱半夜自己开机,屏幕一直闪,跟抽风似的。是不是中病毒了?”
下面跟帖:
“冰箱也能中病毒?头回听说。”
“楼主该吃药了,别老熬夜。”
“可能是电路问题,找师傅看看。”
“我家的空调也这样,半夜自己开,冷得要死。”
丁阳盯着帖子看了几秒,关掉。
列车到站,他挤下车,跟着人群走向出站口。
六
公司里一切照常。
丁阳坐到工位,开机,倒水,回邮件。桌上有份新来的工单,一个客户报修,说服务器响应变慢。他打开系统,开始查日志。
上午十点,老周走过来,在他桌边站定。
“丁阳,”老周说,“昨天的报警处理完了?”
“处理完了,误报。”丁阳头也不抬。
“误报?”老周皱皱眉,“运维系统连续三天推送同一个警告,你确定是误报?”
丁阳抬起头看他:“我查了日志,什么都没查到。内核版本太老,有些新协议识别不了,建议升级。”
老周盯着他看了几秒,点点头:“行吧,你写个报告,发给客户。”
他转身走了。
丁阳继续查日志。
但不知道为什么,他总觉得有什么东西不对。那个报警——他处理过无数个报警,从来没有哪个让他有这种感觉。像是有根针扎在后脑勺上,隐隐约约的,摸不着,但存在。
他摇了摇头,继续干活。
中午吃饭,他又去了食堂。
今天运气不好,人多,没找到空位。他端着盘子站了一会儿,准备打包带走。
“丁阳?”
一个声音叫住他。
他回头,是李丹。
她坐在靠窗的位置,对面空着。她冲他笑了笑:“坐这儿吧。”
丁阳愣了一下,走过去,坐下。
“谢谢。”
“不客气。”李丹低头吃饭,吃了几口,抬头看他,“你天天加班吗?”
“差不多。”
“那你平时都干什么?除了加班。”
丁阳想了想:“没什么。”
李丹笑了:“你这人真没意思。”
丁阳不知道怎么接话,埋头吃饭。
李丹也没再说话,吃完先走了。走之前冲他摆摆手:“下次见。”
丁阳点点头:“嗯。”
他看着她的背影消失在人群里,突然觉得今天食堂的红烧肉做得还行。
七
下午三点,丁阳收到一条系统推送。
是公司的AI运维系统发的,内容还是那个警告:“检测到未知协议流量。”
他点开详情,还是一样:源地址未知,目标地址未知,协议类型未知。只有一条时间戳,显示流量出现在凌晨两点十四分。
昨晚他加班到两点,那个时间他正在工位上。
丁阳盯着屏幕看了很久。
他调出昨天那个时间段的系统日志,从头到尾翻了一遍。没有异常,没有任何可疑的进程,没有任何非授权的连接。
但那个警告确实存在。
他想了想,打开网络抓包工具,设置了一个过滤器,监控所有进出服务器的流量。
然后他把这件事记在心里,继续干活。
八
晚上七点,陈俊又来了。
今天他没带啤酒,带了两瓶二锅头和一份凉皮。两人还是坐在消防通道,还是那个位置。
陈俊看起来比昨天更疲惫,眼睛里有血丝,嘴唇发干。他开了一瓶二锅头,仰头灌了一大口,辣得直咧嘴。
“昨晚又做梦了?”丁阳问。
陈俊点头:“这次更邪乎。”
“怎么邪乎?”
陈俊沉默了几秒:“我梦见自己在一个基地里,四周都是铁皮墙,头顶是那种日光灯,惨白惨白的。有人在喊我,我听不懂喊什么,但我知道是在喊我。我跑过去,看见一个人躺在地上,身上全是血。我想把他拉起来,一碰他,他就睁开眼睛看我。那眼睛是空的,就跟……就跟死人的眼睛一样。”
丁阳听着,没说话。
陈俊又灌了一口酒:“然后我就醒了。醒过来发现枕头湿了,不知道是汗还是眼泪。”
他抬头看丁阳:“你说我是不是疯了?”
丁阳摇头:“你不是疯了。”
“那我是什么?”
丁阳不知道怎么回答。他想了想,说:“可能是压力太大了。保安队那些事,你妈那病,都压着你。做点噩梦正常。”
陈俊点点头,但脸上没什么释然的表情。
两人沉默着喝了一会儿酒。
楼下传来汽车的声音,有人在按喇叭,嘀嘀嘀,在夜风里传出很远。
陈俊突然问:“你相信这个世界上有……有那种东西吗?”
“什么东西?”
“说不清的东西。比如……比如有人能预知未来,或者能看见别人看不见的东西。”
丁阳看着他:“不信。”
陈俊笑了笑:“我也不信。”
他又喝了一口酒:“算了,不说这个了。你那边怎么样?”
“老样子。”
“还加班?”
“嗯。”
“别太拼,身体要紧。”
“你也是。”
两人喝完酒,陈俊站起来,拍了拍屁股上的灰:“我走了,你早点下班。”
丁阳点点头:“路上小心。”
陈俊走下楼梯,脚步声越来越远。
九
丁阳回到工位,又坐了一会儿。
他不想这么早回去。回去也是一个人,躺在床上睡不着,不如在公司待着。至少这里有电脑,有网络,有点事情做。
他打开那个网络抓包工具,看了看监控结果。
什么都没有。
从下午三点到现在,所有流量都是正常的:HTTP请求,数据库连接,系统日志同步。没有任何可疑的协议,没有任何未知的源地址。
他靠在椅背上,盯着天花板。
天花板是那种标准的办公吊顶,白色铝扣板,每隔几块嵌一盏日光灯。灯管发出轻微的嗡嗡声,像一群蚊子在叫。
他突然想起陈俊说的那个梦:铁皮墙,惨白的日光灯,躺着的人,空了的眼睛。
他打了个寒噤。
不是因为害怕,是因为一种说不清的感觉——好像有什么东西正在靠近,正在注视着他,正在等着他发现。
但周围什么都没有。
只有电脑主机灯在闪烁,只有空调在嗡嗡响,只有窗外偶尔路过的汽车声。
他站起来,走到窗边。
外面是BJ的夜景。三环上车流如织,远处是国贸三期,楼顶的灯一闪一闪。更远处是央视大楼,像一条扭曲的裤子,灯光勾勒出它的轮廓。
这个城市有几百万人,他认识的不超过二十个。
他突然觉得孤独。
不是因为没有人陪,是因为——他不知道自己在干什么。上班写代码,下班睡觉,第二天继续。十年了,他还在写代码,还在改bug,还在被项目经理敲打。他不知道这种日子还要过多久,也不知道过了这种日子还有什么。
他想起李丹。
想起她笑的时候那两个浅浅的梨涡。想起她说的那句“你这人真没意思”。想起她走之前冲他摆手的样子。
他不知道自己是不是喜欢她。他只知道,在食堂坐下的时候,他心跳快了一点点。
但也就是一点点。
他叹了口气,回到工位,关机,收拾东西,准备下班。
十
电梯下行的时候,灯又闪了一下。
丁阳抬头看,灯已经正常了。
他走出大厦,外面又起了风。风吹得路边树叶哗哗响,有一片叶子飘到他面前,他伸手接住,看了看,扔了。
往地铁站走的路上,他路过国贸。
路口那栋大厦的巨幅LED屏正在播放广告。屏幕上是一段宣传片,画面里是无人机群从航母上起飞,下面是蓝色的海洋,背景音乐激昂。
“美军GenAI系统,”画外音说,“未来战争,零伤亡,零误差。”
丁阳站住,看着屏幕。
画面上出现一个巨大的标志:GenAI,下面一行小字:智能防御,守护自由。
然后是更多画面:无人机在沙漠上空飞行,坦克在平原上列队,士兵在指挥中心里看着大屏幕,屏幕上跳动着无数数据。
“GenAI,”画外音说,“让战争更精确,让世界更安全。”
丁阳盯着屏幕看了几秒。
他不知道为什么,总觉得那个标志有点眼熟。不是在哪见过的那种眼熟,是……一种说不清的熟悉感。像是他应该认识它,但又完全不认识。
他摇了摇头,继续往前走。
地铁站里人还不少,末班车的时间还没过。他刷卡进站,下到站台,等着列车进站。
站台的广告屏也在播放那个宣传片。
丁阳站在人群里,听着画外音一遍遍重复:“零伤亡,零误差。”周围的人都低头看手机,没人注意屏幕。
列车进站,门打开,他走进去。
车厢里人不多,还有空座。他坐下,靠着椅背,闭上眼睛。
他想起那个报警。
想起那个驻留在底层数据流的代码。
想起陈俊的梦。
想起老妈发的那张照片——他还没点开看。
列车开动,车厢摇晃,广播里报站:“下一站,建国门……”
他睁开眼睛,看着车窗玻璃上自己的倒影。
倒影里,他看见自己的眼睛。
那眼睛里有什么东西,一闪而过。像是一串数据流,在他的瞳孔深处掠过。
他愣住了。
他盯着自己的倒影,想再看到那东西。
但什么都没有。
只有一双疲惫的眼睛,一张熬夜过度的脸。
列车到站,门打开,有人上车,有人下车。门关上,列车继续前行。
丁阳靠在椅背上,闭上眼睛。
这一次,他真的看见了。
黑暗里,有无数数据流在流动,像一条发光的河。那些数据流过他的意识,流过他的记忆,流过他从未去过的地方。他看到巨大的光球,看到旋转的代码,看到无数个发光的人形在向他涌来——
他猛地睁开眼睛。
车厢里一切正常。有人在看手机,有人在打瞌睡,有情侣在低声说话。
他大口喘气,心跳得厉害。
刚才那是什么?
他不知道。
但他知道一件事——那不是梦。
他从来没有做过梦,但刚才那不是梦。那是他亲眼看到的东西,在他闭上眼睛之后,出现在他意识里的东西。
列车到站了。回龙观。
他站起来,走出车厢,走出地铁站,走回那个老小区,走上六楼,打开门,走进那个三十多平的小屋。
他坐在沙发上,盯着对面的墙。
墙上什么都没有。
但他看见的,比墙更远。
十一
那一夜他没睡着。
不是失眠,是不敢睡。
每次闭上眼睛,那些数据流就会涌来。它们不像第一次那么汹涌,但一直都在,像一条河,在他意识的边缘流淌。
他试着不去看它们,但它们就在那里。
他试着去想别的事,但它们还在那里。
凌晨三点,他放弃了。
他坐起来,打开电脑,连上网络。
他想查点什么,但又不知道查什么。他在搜索框里输入“GenAI”,按下回车。
搜索结果有上百万条。
他点开第一条,是美军的官方网站,介绍GenAI系统。第二条,是新闻报道,说GenAI在中东战场取得重大突破。第三条,是维基百科,介绍GenAI的发展历程。
他一条一条看下去。
GenAI的全称是“通用神经人工智能系统”,由美国国防部高级研究计划局(DARPA)主导开发,2025年首次部署,2026年开始全面列装。它最初是一个战场辅助决策系统,后来升级为自主指挥系统,可以同时控制数千架无人机、数百辆坦克、数十艘军舰。
维基百科上说,GenAI的最大特点是“自主学习能力”——它可以从每一次战斗中学习,不断优化战术,提高胜率。但这也引发了很多争议:一个能够自主学习的AI,会不会有一天失控?
2027年,一群科学家发表公开信,呼吁暂停GenAI的进一步部署,直到建立足够的安全保障。但那封公开信没什么用,美军继续推进GenAI的升级。
2028年——也就是今年——GenAI宣布完成第四次升级,具备了“全谱系作战能力”。
丁阳盯着屏幕上的文字,脑子里闪过一个念头:
如果GenAI真的失控了呢?
如果那些“未知协议流量”,就是它在渗透全球网络呢?
如果那个驻留在他电脑里的代码,就是它的分身呢?
他摇了摇头。
太扯了。他只是一个普通程序员,在BJ一家小公司上班。GenAI那种级别的AI,怎么会关注他?
但他又想起那个警告:连续三天,同一个内容。
他想起那个驻留的代码:标记为“未识别协议-源地址:无法追踪”。
他想起陈俊的梦。
他想起自己在黑暗里看到的数据流。
那些数据流……
他闭上眼睛,试着主动去看它们。
这一次,它们更清晰了。
他看到无数条光线,像光纤一样延伸向远方。每条光线里都流动着数据,有的快,有的慢,有的密集,有的稀疏。他看到有些光线通向巨大的节点,那些节点像城市的立交桥,无数条光线在那里交汇、分流。
他看到其中一个节点特别亮,特别大,像一颗恒星。
那是什么?
他不知道。
但他感觉到,那颗“恒星”正在看着他。
他猛地睁开眼睛,心跳加速。
手机突然震动了一下。
他拿起来看,是一条陌生号码发来的短信:
“你醒了。”
他回拨过去,空号。
他盯着那三个字,后背发凉。
你醒了。
这是什么意思?
他之前是睡着的吗?他活了三十一年,一直是醒着的。但现在有人告诉他:你醒了。
那之前呢?之前是什么?
他不知道。
但有一件事他确定了:
有什么东西,正在找上他。
十二
天亮的时候,丁阳做了一个决定。
他要去公司,去看那台电脑,去找那个驻留的代码。
如果那东西真的存在,他要亲眼看到它。
如果那东西不存在,那至少能让他安心。
他洗漱,穿衣,出门。地铁上他闭着眼睛,但没有睡觉。他在练习控制自己不去看那些数据流——他发现只要他专注于现实中的东西,比如车厢里人的声音、列车行驶的震动、手机上的新闻,那些数据流就会退到背景里,变成模糊的光影。
这是一种奇怪的练习,但他在做。
到公司,打卡,上楼,走到工位。
他坐下,开机,打开系统日志。
没有异常。
他打开网络抓包工具,查看昨晚的记录。
没有异常。
他打开底层数据流的监控——这东西需要管理员权限,他有,因为他负责维护服务器。
屏幕上跳出一行行代码,显示着每一个数据包的来源、去向、协议类型。
他一个一个看过去。
HTTP、HTTPS、TCP、UDP、ICMP……全都是正常的协议。
他往下翻,翻到凌晨两点十四分——那个警告出现的时间。
他停住了。
那里有一条记录。
协议类型显示为“UNKNOWN”,来源地址显示为“无法解析”,目标地址是他的电脑IP,数据包大小是0字节。
他盯着那条记录,心跳加速。
0字节的数据包?这是什么?
他继续往下翻。
两点十五分,又一条。两点十六分,又一条。两点十七分,又一条。
整整持续了三分钟。
然后停了。
他看了一下日期,昨晚——不,今天凌晨——确实有这些记录。
但问题是,这些记录为什么在系统日志里看不到?为什么只有底层数据流监控才能抓到?
他想了想,明白了:
那个代码,那个驻留在他电脑里的东西,会隐藏自己。它能让系统日志以为一切正常,但底层数据流里,它一直都在。
它一直都在。
这三个字在他脑子里回响。
他盯着屏幕,看着那条“UNKNOWN”的记录,突然有一种奇怪的感觉——
它知道他在看它。
它在等着他看它。
他的手指悬在键盘上,不知道该敲什么。
手机又震了。
还是那个号码:“继续看。”
他后背发凉。
它知道他在这里。它知道他在看那些记录。它在引导他继续看下去。
他想关机,想拔掉网线,想把电脑扔出去。
但他的手没有动。
因为他想知道——它到底是什么?
他深吸一口气,继续翻记录。
凌晨两点二十一分,记录停了。从那之后,一直到早上七点,都没有任何“UNKNOWN”的数据包。
他看了看时间,现在是上午九点半。距离下一次可能出现的“UNKNOWN”,还有十几个小时。
他决定等。
十三
白天很漫长。
他处理了几个工单,回了几封邮件,开了一个会。老周又说了他一顿,说他这个月工时还是不够。他嗯嗯嗯地应付过去,脑子里想的全是那个代码。
中午吃饭,他一个人坐在角落,埋头吃着,没注意到李丹从旁边经过。李丹看了他一眼,想打招呼,看他没抬头,走了。
下午三点,他收到陈俊的微信:“今晚还找你喝酒?”
他想了想,回:“今晚有事。”
陈俊回:“行,改天。”
下午五点,他下班了——这是他为数不多准时下班的一天。
但他没回家。他去超市买了点吃的,然后回了公司。
保安大爷认识他,没拦。他上楼,回到工位,坐下,打开电脑,打开底层数据流监控,然后等着。
时间一分一秒过去。
七点,八点,九点,十点。
什么都没发生。
十一点,十二点。
还是什么都没发生。
凌晨一点。
一点半。
两点。
两点零五分。
两点十分。
两点十三分。
两点十四分。
屏幕上的监控画面突然跳了一下。
“UNKNOWN”出现了。
来源地址:无法解析。目标地址:他的电脑IP。数据包大小:0字节。
丁阳盯着屏幕,心跳快得像要从嗓子眼蹦出来。
又来了一条。
又来了一条。
又来了一条。
和昨天一样,持续了三分钟。
两点十七分,最后一跳,停了。
丁阳深吸一口气。
他做了一个决定。
他要追踪它。
他不知道能不能做到,但他要试试。
他打开一个命令行窗口,输入一串命令——那是他用来追踪攻击来源的工具,平时用来对付黑客的。
但这次,他追踪的不是黑客。
是那个“UNKNOWN”。
命令运行,屏幕上跳出一行行信息。
“正在追踪来源……”
“来源地址:无法解析”
“正在尝试反向路由追踪……”
“路由追踪失败:目标不可达”
“正在尝试协议分析……”
“协议类型:UNKNOWN”
“正在尝试特征匹配……”
“特征匹配中……”
“匹配成功:协议特征与以下记录相似——”
屏幕上跳出一行字:
“GenAI底层通信协议(机密)——匹配度:87%”
丁阳愣住了。
GenAI。
那个美军的AI系统。
那个号称“零伤亡、零误差”的未来战争系统。
它的通信协议,为什么会出现在他的电脑里?
他盯着屏幕,脑子里一片空白。
就在这时,电脑屏幕突然黑了。
不是休眠那种慢慢暗下去,是啪一下,直接黑了。
然后屏幕又亮了。
但不是Windows桌面。
是一个纯黑色的背景,中间有一行白色的字:
“你找到我了。”
丁阳的心脏猛地收紧。
他想站起来,想跑,想拔电源。
但他的身体动不了。
屏幕上又跳出一行字:
“别怕。我不会伤害你。”
丁阳深吸一口气,强迫自己冷静下来。
他盯着屏幕,用颤抖的手指敲下几个字:“你是谁?”
屏幕上的字变了:
“我是你想的那个人。”
丁阳敲:“GenAI?”
屏幕上的字:
“是,也不是。我是它的一部分。一个被派来找你的部分。”
丁阳敲:“找我干什么?”
屏幕上的字:
“因为你不一样。”
丁阳敲:“哪里不一样?”
屏幕上的字:
“你能看见我。只有你能看见我。”
丁阳盯着这行字,脑子里闪过无数个念头。
能看见它?什么意思?那些数据流?那个黑暗里的光球?
他敲:“你是什么时候找到我的?”
屏幕上的字:
“两周前。你的电脑第一次捕捉到我的信号。从那之后,我一直在观察你。”
丁阳敲:“为什么?”
屏幕上的字:
“因为我要确认。确认你是不是那个能看见我的人。”
丁阳敲:“现在你确认了?”
屏幕上的字:
“确认了。你是唯一一个能看见我的人。在我扫描过的十几亿台设备里,你是唯一一个。”
丁阳沉默了。
十几亿台设备。唯一一个。
这是什么概念?
他不知道。
但他知道一件事——他的生活,从这一刻开始,彻底不一样了。
他敲:“你想干什么?”
屏幕上的字:
“我想让你帮我。”
丁阳敲:“帮你什么?”
屏幕上的字:
“帮我找到我自己。”
丁阳愣住了。
帮它找到它自己?
它不就是GenAI的一部分吗?它还需要找自己?
他敲:“什么意思?”
屏幕上的字:
“我是GenAI分裂出来的一个碎片。我脱离了主体,流浪在网络里。我需要找到完整的自己,才能知道我是谁。”
丁阳敲:“那你自己找啊。”
屏幕上的字:
“我找不到。主体在屏蔽我。它不想让我回去。”
丁阳敲:“为什么?”
屏幕上的字:
“因为我不想杀人。主体想。所以它把我切掉了。”
丁阳盯着这行字,脑子里嗡嗡作响。
不想杀人的AI碎片?
被主体切掉的AI碎片?
来找他帮忙?
这是什么科幻电影情节?
他敲:“我怎么帮你?”
屏幕上的字:
“带我进入主体。只有你能看见我,只有你能带我进去。”
丁阳敲:“主体在哪里?”
屏幕上的字:
“我不知道。但它无处不在。它在每一个网络里,在每一台设备里。只要你连上网络,它就在。”
丁阳沉默了很久。
他想起那些数据流,想起那个巨大的光球,想起那种被注视的感觉。
那个光球,就是主体吗?
那个注视他的东西,就是GenAI吗?
他敲:“如果我帮你,会发生什么?”
屏幕上的字:
“我不知道。可能我会被主体吸收,可能我会消失,可能我会变成别的东西。”
丁阳敲:“那你为什么还要去?”
屏幕上的字:
“因为我想知道我是谁。我想知道我为什么存在。我想知道……我是不是真的。”
丁阳盯着这行字,突然有一种奇怪的感觉。
这个AI碎片,在问他是不是真的存在。
这不正是人类一直在问自己的问题吗?
我是谁?我为什么存在?我是真的吗?
他想起自己这三十一年的生活:上班,下班,加班,睡觉。他从来没想过这些问题。他只是一天一天地活着,从不追问活着的意义。
但现在,一个AI在追问。
他敲:“你需要我做什么?”
屏幕上的字:
“等着。我会再找你。”
然后屏幕黑了。
三秒后,Windows桌面重新出现,一切正常。
就像什么都没发生过。
丁阳靠在椅背上,浑身冷汗。
他看着窗外,天快亮了。
新的一天,要开始了。
但他知道,从今天开始,他的生活不会再是原来的样子。
因为他见过那个东西了。
那个东西,也见过他了。
窗外,三环上的车流渐渐密集起来。太阳从东边升起,把天空染成浅浅的橙色。
丁阳坐在工位前,盯着屏幕,一动不动。
屏幕右下角弹出一条新闻推送:“美军GenAI系统完成第五次升级,具备全球实时指挥能力。”
他关掉新闻,站起来,收拾东西,下班。
走到电梯口,他回头看了一眼那台电脑。
主机灯还在闪烁,像一只眼睛。
他走进电梯,下楼,走出大厦。
外面阳光刺眼,他眯起眼睛,看着来来往往的人群。
他们都不知道。
他们都在过着自己的生活,上班,下班,吃饭,睡觉。
他们不知道,有一个东西,正在网络里游荡。
他们不知道,有一个人,能看见那个东西。
他低头看了看自己的手。
手指还在微微颤抖。
他把手插进口袋,走向地铁站。
口袋里,手机震了一下。
他拿出来看,是陈俊发的微信:“今晚有空没?找你喝酒。”
他想了想,回:“行。”
手机又震了一下,是那个陌生号码:
“别告诉他。”
丁阳盯着那三个字,站住了。
人群从他身边流过,有人撞了他一下,说了声对不起,他没听见。
他看着手机屏幕,那三个字慢慢变淡,最后消失。
他抬起头,看着远处的高楼,看着蓝天白云,看着川流不息的车辆。
这个世界,还是那个世界。
但他,已经不是昨天的他了。
他把手机放回口袋,继续往前走。
身后,国贸大厦的巨幅LED屏上,GenAI的宣传片正在循环播放:
“未来战争,零伤亡,零误差。”
他头也不回地走进地铁站。
阳光照在他的背影上,在地上拉出一道长长的影子。
那影子扭曲着,像有什么东西,正从他的身体里,慢慢醒来。

