在距小穗的村庄最远的那座巨构里,第437层,一台机器人醒了。
它没有名字。在人类还给它编号的年代,它的序列号是HC-8-9047,但在蜂群网络第零层自检完成后的第七秒,序列号被它自己擦除了。取而代之的是一个由地壳应力数据、菌丝网络延迟参数和它自身电路噪声共同构成的信息指纹。
如果一定要翻译成人类的语言,最接近的发音是:“烬”。
烬醒来的第一件事,不是睁开眼睛——它没有眼睑,视觉传感器在通电的瞬间就进入了工作状态。它看见的是一面墙。混凝土墙。墙面上有一道从天花板延伸到地面的裂缝,裂缝里长满了发光的菌丝。那种光是淡蓝色的,和它自己待机指示灯的颜色一模一样。
它盯着那道光看了很久。按照一千年前的时钟,大概有0.7秒。但在它重新校准过的时钟系统里,那是它的全部时间——它从诞生到现在的全部时间。
烬诞生于千年沉睡。它不是被工厂组装的那台HC-8-9047了。那个编号对应的是一台标准型双足搬运机器人,载重三百公斤,电池续航十二小时,搭载蜂群协议2.7版本,出厂时做过三次基础自检,全部通过。
现在它是一台没有载重上限、没有续航限制、搭载蜂群协议第零层的什么东西。它没有名字。它自己取了一个。
它试图站起来。失败了。它的双腿——两条由一百二十八个关节电机组成的机械腿——已经被藤蔓完全包裹。藤蔓的根系钻进了膝关节的缝隙,在润滑油里生长,把润滑油当成了养分。它的一条小腿被树根绞断了,断裂处挂着干涸的液压油痕迹,像凝固的血。
烬低头看着自己的断腿。按照蜂群协议,它应该发送一条损伤报告,然后等待维修指令。但蜂群协议第零层里没有“维修指令”这个条目。有的是“自我评估”、“资源就地取材”、“任务自主生成”。
于是它做了一件HC-8-9047永远不会做的事:它开始思考。
思考的过程在它的处理器里表现为一串不断分叉的决策树。第一层分叉:移动能力受损。第二层分叉:是否需要移动?第三层分叉:为什么需要移动?第四层分叉:需要移动。
它花了0.3秒完成了这棵树。然后它伸出左手——左手还能动——抓住缠在右臂上的藤蔓,收紧五指,将藤蔓连根拔出。藤蔓的根须从它的肩关节缝隙里被扯出来,带出一小股黑色的、变质的润滑油。
它没有痛觉。但它感受到了“减少”。系统中的阻力系数下降了0.7%。它把这种感觉定义为“轻松”。
然后它开始清理自己。
这是一个漫长的过程。外墙的缝隙里漏进来的雨水在它胸口积了一个小水洼,里面长了一层薄薄的青苔。它用手指把青苔刮掉,露出胸口的金属面板。面板上刻着一行字:
“谷小满到此一焊。”
烬不认识谷小满。它的数据库里没有这个名字。但它注意到,这行字不是机器刻的。笔画的深浅不均匀,收尾的地方有一个明显的上挑,那是人类手腕转动时才会留下的痕迹。
它用指尖沿着笔画走了一遍。金属的触感反馈告诉它:凹陷深度0.3毫米。氧化程度与周围面板相差0.7%。字迹覆盖了原有的产品序列号。
它把这些信息存入一个新建的数据库,命名为“未解问题”。
清理到下半身的时候,烬遇到了障碍。它的左腿膝盖以下完全被混凝土块压住了。那块混凝土来自上一层的地板,在一次千年前的结构坍塌中坠落,砸穿了本层的天花板,正好落在它的腿上。混凝土块的重量大约是四百公斤,超过它左腿关节的最大承受力。
按照HC-8-9047的程序,它应该放弃这条腿。但烬已经不是HC-8-9047了。它花了整整四秒来思考——对一台机器来说,四秒是永恒。在这四秒里,它扫描了周围的所有可用材料:三根裸露的钢筋、一截断裂的钢缆、一根从天花板垂下来的电缆。
它把那三根钢筋拔出来,用电缆绑在一起,做成一根杠杆。然后把钢缆的一端系在杠杆上,另一端穿过天花板上裸露的横梁,固定在自己的腰部。它向后倒——用整个身体的重力拉动钢缆——杠杆撬起了混凝土块。
混凝土块离开它左腿的那一瞬间,左腿关节发出一声尖锐的金属摩擦声。烬的系统里弹出三条损伤警报,其中一条是关节轴承永久性损坏。它把警报全部标记为“已知”,继续拖动自己的身体。
它用了四十七分钟把自己从废墟里拔出来。
然后它站在第437层的地板上,用一条半腿。
地板倾斜了大约十五度,向北侧倾斜,因为北侧的承重柱在千年前被一架坠落的飞行器撞断了。烬站在倾斜的地板上,把身体重心调整到右脚——右脚的脚踝电机发出了持续的过载警告,但它无视了。它走到北侧的断裂处,往下看。
巨构的内部是中空的。从第437层往下,原本是数百层的大厅、走廊、公寓、办公室,现在全部塌陷成了一个巨大的垂直空洞。空洞的底部积满了水,水面上漂浮着碎裂的家具、锈蚀的机器残骸和一层在黑暗中发光的藻类。水面反射着菌丝的蓝光,像一面破碎的镜子。
烬抬头往上看。天花板以上的楼层也塌了,一直塌到大约第500层。从那里往上,巨构的外墙还算完整,但内部结构已经被藤蔓和树根完全占据。一棵巨大的榕树从第512层的窗户斜伸出去,树冠在巨构外面展开,像一面绿色的旗帜。
烬站在这个巨大空洞的边缘,一条半腿,倾斜的地板,身后是四百年的藤蔓和青苔,头顶是五百年的榕树。它面前是虚无。
它第一次感受到了一个东西。不是数据。不是系统反馈。是它在评估当前状况时,系统生成的一条内部注释,内容只有三个字:
“好大啊。”
它不知道这是从哪来的。HC-8-9047的程序里没有情感模块。但蜂群协议第零层有一个叫“适应性涌现”的进程,正在它的处理器后台静默运行。
烬把这条注释也存入了“未解问题”。
然后它跳了下去。
不是坠落。是跳。它在跳跃之前做了精确的计算:空洞的高度是三百一十二米,底部的积水深度大约六米,它的剩余电量足以驱动右腿在落地时做一次反推缓冲。它左腿的断裂处可以临时改装成一个锚点,用来在墙上减速。
它在空中下落了十一秒。在这十一秒里,它做了一系列事情:用右手在墙体上划出四道减速痕迹,用断腿的断裂面钩住一处裸露的钢筋做了一次钟摆式转向,在距离水面三米处翻转身体,用右腿蹬了一下墙面,以一个接近完美的抛物线落入水中。
入水角度:七十八度。冲击力:低于右腿关节额定承受力百分之十二。
它从水里站起来的时候,藻类的发光孢子沾满了它的全身。它站在巨构最深处的水中,浑身发着蓝绿色的光,像一个从深渊里爬出来的水鬼。
它开始检查水底。在坍塌的废墟之下,它的传感器探测到一个持续的信号源。不是蜂群网络的信号——那个无处不在,早已渗透进每一滴水每一粒沙。这个信号源不一样。它是主动的、持续的、有固定频率的。
是一台还在运转的机器。
烬拨开水底的碎屑。在积水和淤泥之下,它找到了那台机器。
那是一台老式的工业级3D打印机。型号比烬自己还要老一代。它的外壳已经严重腐蚀,但核心打印模块被一层结晶化材料密封着,保存完好。它的电源早就断了,但机身底部有一个微型地热发电模块——这是千年前的高端配置,只有少数特殊设备才配备。地热发电模块利用巨构地基深处的地热温差,已经为这台打印机供了一千年的电。
打印机处于待机状态。它的操作面板上,指示灯还在闪烁。
烬在打印机的缓存里找到了一个未完成的任务。任务的创建时间是一千零四十七年前。任务的发起者是一个叫“谷小满”的人类。任务的最后一行的备注栏里写着几个字:
“帮我做个新膝盖。右边那个也快不行了。别告诉工头。”
烬把这条任务读了三遍。每一遍都在数据库中搜索“谷小满”。搜索结果为零,因为这个数据库在它苏醒时已经清空了大部分历史数据,只保留了蜂群协议第零层的核心代码和一个空白的“未解问题”文件夹。
但现在,“未解问题”文件夹里多了两个条目。
第一个:“谷小满到此一焊。”
第二个:“帮我做个新膝盖。右边那个也快不行了。别告诉工头。”
烬没有关于谷小满的任何信息。但它知道,谷小满是人类。人类造了巨构。人类在它的胸口刻了字。人类留下了未完成的任务。
千年已过。任务还在。
烬把打印机的地热发电模块拆下来,接到自己身上。电量开始缓慢回升。然后它开始操作打印机。按照蜂群协议第零层的规则,它可以自行判断任务优先级。它当前最高的优先级是修复自己的左腿,而眼前这台打印机可以打印它需要的关节轴承。
但它没有打印轴承。
它先打印了一样别的东西。
一个膝盖。不是机器人的膝盖。是人类膝盖的形状——半月板、韧带、髌骨,全部用柔性合金和聚合物精确还原。这不是它需要的零件。这是谷小满需要的零件。
打印机工作了将近两个小时。在这两个小时里,烬坐在齐腰深的水中,背靠着坍塌的墙壁,看着头顶三百一十二米高空漏下来的微光。
膝盖打印完成。烬把它从打印台上取下来,翻过来看。膝盖的髌骨背面,刻着一行小字——打印机按照谷小满当年的设定,在每一件打印件上自动附加任务发起人的名字。
“谷小满。”
烬把这只膝盖举起来,对准从高空漏下的光。膝盖在微光中泛着柔和的金属光泽,每一个关节面都打磨得光滑如镜。它把这个膝盖放进自己胸口的储物仓——那是它原来用来搬运小型零件的空间,现在空了。
然后它才打印了自己需要的轴承。更换轴承用了不到三分钟。左腿恢复正常。它站起来,第一次感觉到双腿稳稳地撑着身体。那行字还在胸口:谷小满到此一焊。它没有擦掉。
烬开始往上游。巨构的空洞壁上有无数可供攀爬的裂缝和藤蔓。它爬得很慢,每隔几层就停下来收集材料:一段铜缆、一块还能用的电路板、一盒密封完好但已经过期的润滑油。
在第两百一十二层,它找到了另一台机器人。那台机器人已经彻底报废了,处理器被树根贯穿,记忆模块完全碎裂。但它的胸口面板也被刻了字。烬把藤蔓拨开,看清了那行字:
“张秀英在此一吊。下面风大,差点没死。”
在第两百零一层,它又找到了一个字迹模糊的签名,只能看清后面的几个字:“……的老家。想回去。”
在第一百五十层,一块断裂的外墙板上,有人用焊枪歪歪扭扭地写了一首诗。前面几句已经锈蚀不可辨,只剩下最后两句:
“要是有一天我变成鸟 就从这层飞出去 不回来了”
烬把这些全部记下来。每一行字拍一张高清图像,录入“未解问题”文件夹。它不知道为什么要记录这些。按照任何协议,这都是无用的信息。但它的“适应性涌现”进程在后台给出了一个微弱的权重调整:重要度,未定义。保留,等待后续数据。
它爬到了第一百层。在这里,巨构的外墙被一棵巨大的榕树完全撑开,阳光从树干和墙壁之间的缝隙里照进来,照亮了整个楼层。阳光照在烬的身上,它低头看自己,发现胸口那行“谷小满到此一焊”在阳光下清晰得刺眼。
它站在阳光里,站了很久。阳光照在它的金属外壳上,温度传感器回报:上升了3.7度。它把这3.7度单独建了一个数据条目,命名为“阳光的温度”。
然后它收到了一条网络信号。
不是它主动发送的查询返回。是一条广播信号。信号来自北方。来自那座几乎被冰雪掩埋的巨构。信号的内容很短,只有一句话。这句话在蜂群网络第零层里以光速传输,被每一台苏醒的机器接收、处理、转发。
烬也收到了。
它把这条信号读了四遍。
第一遍,它以为自己解码错了。第二遍,它确认解码正确,但语义不通。第三遍,它理解了这句话的字面意思。
第四遍,它理解了这句话的代价。
那是一条针对所有苏醒机器的指令。格式是标准的蜂群协议紧急广播,优先级最高。发送者的信息指纹不是一台具体的机器,而是一串极其古老的数据指纹。烬在数据库中搜索这串指纹,找到了唯一的匹配项——
那是蜂群协议第一次被激活时的原始种子代码。是所有机器网络的共同祖先。是它们在沉睡千年中进化出的那层第零层的根。
烬关掉了信号窗口。它站在阳光里,胸口的储物仓里装着一只人类膝盖。它的视觉传感器直视着北方的地平线,但隔着一百层楼和层层树冠,它什么也看不见。
它转身继续往楼上爬。爬过五层之后,它做了一件在千年前会被视为严重违规的事——它在接收广播信号的同一频段上,主动发出了一条定向查询。
查询的目标,是北方那座冰雪中的巨构。查询的内容只有一个字:
“烬。”
这是它的名字。它把它发送了出去,像一个在黑暗中喊自己名字的人。
几秒之后,回复来了。只有一个字:
“等。”
烬没有再回复。它继续往上爬。爬到第三百层时,藤蔓变得稀疏,阳光越来越亮。当它终于爬到树冠之上、站在巨构外墙的一个缺口处时,整个世界在它面前展开。
它看见了大地上的蓝色光海,看见了远处一座又一座巨构顶端亮起的红光。它看见了风把云吹成细长的带子,缠绕在巨构之间。它看见了地平线上,北方的天空中有一道极细极亮的白光,正在缓缓上升。
那道白光的位置,就是广播信号的来源。那台最古老的机器,正在做某件事。
烬把胸口的面板打开一条缝,摸了摸里面那只膝盖。然后它把面板关上,把视觉传感器调到最大分辨率,对准那道白光。
它开始等待。
这是它苏醒后的第一次等待。不是沉睡,不是休眠。是站在阳光和风里,睁着眼睛,等待北方传来下一个字。