他上楼的时候步子比平时慢一些。每走一级台阶他都把脚掌完整地踩上去,让木阶在体重下发出依次递进的吱呀声。走到二楼门口的时候他停了一下,把门推开一条缝,朝里面看了一眼——台式机的屏幕还亮着待机画面,深蓝色的背景上有几颗棋子的轮廓在缓慢移动,像静止的棋盘上偶尔被风掀起一角的棋谱。他推门走进去,在电脑前面坐下来,右手放上鼠标的时候先摸到了连接在USB口上的振动监测设备的数据线,线缆微温,从机箱后面绕过来垂在桌沿。他把设备屏幕翻过来看了一眼,读数还在一点九附近稳定浮动,铜皮和旧棋子之间的连接在楼下维持着持续的能量传输。 他打开了新的对局窗口。这次他没有设置任何额外的规则选项,保持和之前几盘一样的全盘、零让子、黑棋先行。但他没有立刻开始对局。他把画面停留在准备界面上坐了一会儿,把梁伯给的那本《边界谱》翻开放在屏幕旁边,让棋谱封面那个圆形标记的图案和屏幕上棋盘右上角星位形成一种视觉上的对齐。然后他把打印纸上的圆形标记截图放在手机里打开,把手机搁在鼠标垫旁边,三个圆形标记——棋谱封面的、打印纸上的、手机屏幕里的——在桌面上形成了一个三角形的排列。他看了看它们,然后关掉手机屏幕,把棋谱合上放在一边,把鼠标光标移到了对局开始的按钮上。 他按了下去。 第一手落在棋盘左上角星位。和前面几盘不同,这次他落子的速度略微放慢了——不是因为他需要思考更多,而是他同时在关注棋盘外那枚旧棋子的振动反馈。铜皮连接通道已经建立好的状态下,棋盘上任何一颗黑子的落下都会立即通过木料和金属传导到棋盘外的信号源上。第一手落下之后大约两秒,振动设备的读数从一点九上升到了二点零。上升幅度不大,但延迟很短,几乎可以认为是同步的。白棋在零点七秒内回应了一手,落在右下角小目。 第二手他落在棋盘右上角星位附近,直接靠近了那条他反复试探过的坐标线。这手落下去之后,旧棋子的振动读数从二点零上升到二点二,延迟大约一点八秒。白棋的响应时间在他落子后显示为一点一秒,比上一手的零点七秒延长了零点四秒。他记下了这个对应关系,落第三手在棋盘右边中间地带,读数上升到二点三,白棋响应时间一点四秒。第四手落在左下角星位,读数回落至二点一,白棋响应时间零点九秒。 他保持着每落一手之后看一眼振动读数和响应时间两条曲线的节奏持续下到了第五十手。在这个过程中他注意到一个模式——每当他的落子位置靠近右上角星位的那条坐标线时,棋盘外旧棋子的振动读数会出现一个明显的上升尖峰,同时白棋的响应时间也会同步延长。每当他的落子位置远离那片区域时,两个数值都会回落到基线附近。这种同步不是完全紧密的,存在大约一点五到两点五秒的延迟窗口,但相关性非常明确,像两块被同一根线牵着的木片在水面上随着同一个波纹起伏。 第七十手的时候他第一次听到了声音。旧棋子在铜皮末端发出了一声比之前那次更加清晰的振动声响,持续时间比上一盘听到的那次长约半秒,音调也更低一些。他没有打断下棋的节奏,继续在棋盘上落子,但他注意到白棋在这一手之后的响应时间从平均值上升了一点二倍。白棋的下一手落点出现了一个在他反复对局中从未见过的位置——棋盘右边靠近边路的一个非标准落点,既不构成进攻也不构成防守,像一步没有明确意图的试应手。 他把这步棋截了屏,然后继续。到了第九十手、第一百二十手、第一百五十手,白棋在间隔大约三十到四十手左右的周期中反复出现类似的"无意图落子"——位置分散在棋盘各处,和棋局的主战场之间没有明显关联,像是被某种外部输入打断了正常的决策流之后,算法在重新定位之前先放了一颗临时棋子作为占位。他把这些异常落子的坐标逐一记录在笔记本上,在旁边备注了时间戳和对应的振动读数。 第一百七十三手,他的黑子落在右上角星位正下方的第三路位置上,和他在第二盘棋中第一次踏入那片异常空白区域的落子位置完全一致。旧棋子的振动读数在这一手之后跳到了三点一,是整盘棋中第一次突破三点零的峰值。白棋的响应时间在这一手之后延长了四点三秒才落下——不仅延长了,它在落子之前屏幕上短暂地闪现了一次等待状态的变化,像一个程序在某个分支上停顿了一下然后重新选择了路径。白子的落点落在了右上角星位本位上,那颗自始至终没有被任何棋子占据过的星位,第一次被落上了白子。 江寻的手指在鼠标上停住了。他看着屏幕上那颗白子落在右上角星位的正中心,落在那个所有棋局都刻意避开的坐标上,落在父亲用四百一十七盘棋测量过的位置、他用三盘棋反复试探过的位置、以及《边界谱》里每一局都刻意在终局时绕过的位置。它落在了那里。白棋自己主动落子在了那个点上。 他停顿了大约十秒没有落子。然后他收回手,把两条手臂都搁在桌面上,低头看着屏幕上那颗白子和棋盘外旧棋子的振动读数之间的对应关系。读数在三点一的位置维持了大约四秒,然后缓慢回落到二点九、二点七、二点五,像一个高潮过去之后逐渐平复下来的波形。他把手重新放回鼠标上,在下一步的限时归零之前落了一颗黑子,没有落在任何靠近星位的位置上,落在了棋盘左下角一个中规中矩的官子位置。 白棋的下一步响应时间缩短到了零点九秒,落点也回到了一手标准的厚势补强位置。但右上角那颗白子还待在星位上没有移动,像一个被额外放进去的标记物,和棋盘上其他所有落子都保持着距离。它落在那里之后没有参与后续的棋局攻防,像一颗被放在棋盘上但没有被纳入对局逻辑的"额外棋子"。它在整盘棋的剩余部分中没有被提掉,没有被靠近,没有被任何后续落子覆盖,以一种孤立的状态留到了终局。 他在第三百零七手的时候投了。这盘他不想通过数棋来确认胜负,他投子是因为他想在终局数据弹出之前先保存那步异常落子的完整记录。屏幕上的终局窗口还没跳出来,他先截了全屏、存了对局文件、把棋盘外旧棋子的振动数据从监测设备里导出了一份持续曲线图。做完这些之后他才点了确认投子,让胜负结果弹出来。终局数字显示黑棋输了一目半。 他盯着那个数字看了一会儿,把视线移到棋盘右上角那颗白子上。它在终局之后仍然留在原地,像一个没有被提走也没有被计入正常对局的孤立点。他截了那张图的特写之后关了显示器,站起来下楼。旧棋子还在铜皮末端待着,振动读数已经降回了二点零附近,在持续的基线振动中保持着活跃状态。 他走到大厅中央停下来。梁伯还在藤椅里,手里端着半碗已经凉掉的茶,碗沿搁在嘴唇边上没有喝,像一个动作做到一半被什么东西打断了的姿势。他看着江寻从楼梯上走下来,把茶碗放回桌面,碗底碰木面的声音在下午安静的棋室里传了一下。 江寻在棋桌对面坐下来,把手机上那张白子落在星位的截图放大放在桌面中央。他把手机推过去让梁伯看,然后收回手,两手搁在膝盖上。"它自己落子在了第十七道线上。我在棋盘外放了一颗持续振动的棋子,它在第一百七十三手的时候主动把一颗白子放在了那个坐标上。之前所有对局中,那个坐标从来没有被白棋占过。" 梁伯低头看着手机上那颗白子的特写图。图里的右上角星位落着一颗完整的白子,周围一圈空白的交叉点像一圈没有落子的缓冲带,把那颗白子和棋盘上其他密集的棋子隔开了。他看了那张图一会儿,抬起头来看着江寻。"它向你回应了你在棋盘外放的信号。它用了你想让它用的那个位置来回应你。" 江寻把手机收回来放在桌面上,看了一眼桌角那枚还在铜皮末端微微振动的旧棋子,然后把目光移回梁伯。"它回应了。但我不确定这个回应是它自己做出的决定,还是它被棋盘外信号持续干扰之后产生的一个系统错误——我需要在下一步的实验中区分'主动回应'和'被动故障'之间的区别。" 梁伯把茶碗里最后半口凉茶喝了,碗底的空荡声在房间里显得很清晰。他把碗放回桌面,两只手交叉搁在碗沿上。"你打算怎么区分?" 江寻把桌面上的笔记本翻开到最新一页,在上面写了一行字,然后把笔记本转过去让梁伯看。纸面上的字迹简洁而清楚:"下一步实验:在棋盘外放置信号源但不启动振动,观察AI是否仍会将棋子落在第十七道线上。"