守拙棋室二楼那盏白炽灯管闪了两下,才勉强亮透。江寻蹲在地板上,指腹蹭过几块柚木地板拼缝之间的灰,把那颗掉了的黑玉棋子攥回手心里。它不凉,因为房间太闷了,六月的佛山连夜里都没风,窗扇推开了也不进半点气流,只有楼下那条小巷里空调外机嗡嗡地响,像无数只发烫的蜜蜂贴着墙壁爬。他把棋子放在棋盘旁边的木托上,视线追着刚才弯腰时那个角度,这才发现棋盘底板和桌面的缝隙里夹着一张东西,折了三折,纸边都起了毛,黄得像隔夜的茶渍。 他慢慢抽出来,展开。纸面洇着一小片潮痕,靠近边缘的墨字已经褪成铁锈色,但笔锋的力道还在。他认得那个"寻"字,父亲写竖钩的时候总是顿两下,像在犹豫一个落点该不该往下探。纸上一共两句话,墨迹轻重不一,第一句写完似乎隔了很久才接第二句。江寻把纸托在灯下,指甲轻轻压住折痕,一个字一个字地读:"寻儿,棋子掉了要捡起来。棋子没有坐标,但它永远在棋盘上。" 他读了三遍。第一遍认字,第二遍认语气,第三遍他听见了自己喉咙里那根弦绷紧又松开的声音。手指捏着纸张的边缘,力道不均匀,纸角被他拇指搓出一个新的皱褶。他把纸折回原来的三折,放进上衣内侧口袋里,抵着胸口那块位置,然后重新坐下来面对着那盘残局。其实已经不是残局了——宋辞走的时候江寻正在拆解一个角部的定式变招,白子悬在十九之十七的上方虚按着没落。宋辞急着赶最后一班地铁,把茶杯碰倒了,水渍还没干透,沿着棋盘的木纹渗出一条暗色的路。 他刚才在跟宋辞讲那个"十七道线"的事,讲了一半就被水打断。宋辞擦桌子的时候说了一句"你爸这个人怎么连留东西都留得这么绕",江寻没接话。现在那张纸条在口袋里微微发烫,或者说他的体温把它捂暖了。他忽然意识到父亲从来没有当面跟他讲过什么"棋子永远在棋盘上",这八个字写在纸上,比说出口要重得多。江寻把剩余的几枚黑子收进棋罐,瓷罐碰木盘的声响在二楼的空房间里弹了两圈,消失在天花板的阴影里。 那台旧笔记本电脑还开着,屏幕蓝莹莹地亮着,壁纸是一张十九路的棋盘,没有棋子。桌面上的文件夹图标挤成一堆,江寻把鼠标箭头移到一个叫"琴谱"的文件夹上停了两秒——那是他上个月自己改的名字,里面存的其实是父亲留下的五盘对局sgf文件,他从梁伯那里拷来的。但今晚他的手指点开的是另一个图标,黑色的,椭圆形的,像一个棋子俯视图的像素版,名字叫"十七"。 这是梁伯临走前推过来的那个U盘里的东西。梁伯从围裙口袋里摸出U盘的时候,手背上的青筋凸起来像棋盘上的几根线,他说"你下棋跟你爸一模一样——不要命",然后就把U盘搁在棋罐盖子上了,金属壳碰瓷面发出一声脆响。江寻记得梁伯转身下楼梯时拖鞋底在木阶上拖沓的声响,一阶、一阶、一阶,到第七阶停顿了一下,大概是在摸楼梯扶手上的那道裂口,然后继续往下。灯关掉之前梁伯回头看了他一眼,眼神里那种东西江寻没法命名,像一个人看了十年的棋谱却始终不肯说出结论。 他双击"十七",文件夹展开,里面是整整齐齐的几百个sgf文件,按日期排列,从最早的2017年3月11日到最后的2021年9月2日。文件名统一格式:"人机V日期_让子数_结果",比如"人机V20170311_2子_负","人机V20180422_3子_负","人机V20190913_4子_负"。江寻用鼠标滚轮一直往下滑,文件列表像一条黑色的河流在屏幕上淌过,所有的"负"字连缀在一起,排成密密麻麻的矩阵。他数到三分之一就放弃了。几百盘,全败。让两子的、让三子的、让四子的,甚至有一盘让了五子。全部败北。 他点开第一个文件,2017年3月11日。棋盘展开,黑子先行——父亲执黑,让两子。从第一步开始,黑子就落在左上角的星位,第十七道线交汇的那个点。江寻把视线钉在那个坐标上,十七之十七,棋盘右上角星位的对称位置。他按着键盘上的方向键一步步推进,白子——AI——的应对快得近乎没有间隔,每一步落下去都精确、冷静、毫无情绪。但父亲的黑子从头到尾只出现一个模式:所有的布局全部围绕第十七道线展开,无论AI在棋盘其他地方落下怎样的重兵,父亲总会在某个节点回到那个坐标附近,像潮水反复冲刷同一块礁石。 江寻把第二个文件打开,第三个,第四个。他在白纸上画了一张统计表,纵轴是对局编号,横轴是落子顺序。红笔在纸上画出的线条渐渐形成一种图案:每一盘棋,父亲都会在第十七道线落子至少七次以上,有时是开局的星位,有时是中盘从外侧逼住那个方向,有时是官子阶段在靠近那个坐标的一路小尖。频率之高,远超正常棋手对一个星位的投入。江寻把下巴搁在手背上,盯着屏幕上的棋盘线,眼睛发酸,眼前那些交叉点开始模糊、跳动,变成一张网。 然后他发现了那个数据。在第三十七盘对局的sgf备注栏里,父亲用文字加了一段笔记:"第17手落于十七之十七,AI反应时差0.3秒。重复出现。记录:第8局第13手,第15局第21手,第22局第9手,均出现0.25-0.35秒的响应延迟。我称它为'犹豫窗口'。" 江寻把那段笔记截屏,放大了四倍,像素格都出来了。他盯着那行字,手指不知不觉在桌面上敲击,像在数拍子。0.3秒。正常人眨一次眼是0.1到0.15秒,0.3秒足够两根手指在棋盘上摩挲一轮再落子,足够肺部完成一次深呼吸的一半。他把后面的文件依次翻查,在父亲的手写笔记截图中搜寻"犹豫""延迟""异常""反应"这几个关键词。他发现了一个规律:在父亲执黑落子于第十七道线的瞬间之后,AI的下一手响应时间从平均0.8秒延长到1.1秒左右,差距稳定在0.25到0.35秒之间。而除了这个坐标之外,父亲在其他所有星位、小目、高目、目外落子时,AI的反应时间没有任何异常波动。 他又找到一段笔记,写在2020年6月的一盘棋后面,字体潦草得近乎崩溃,好几个字他辨认了十几秒才确定:"它在犹豫。不是计算量的波动——同型局面下其他位置从未出现延迟。它是被'这个坐标'触发了某种机制。或者,它在回避。我无法确认。" 江寻把电脑合上,站起来。二楼的窗户正对着一面灰墙,墙面上爬满了蔫掉的爬山虎,叶片卷着边,像是被白天的暑气蒸熟了。他额头靠上窗框的铁栏,铁条上一小片剥落的漆皮扎进皮肤里,他没躲。他在想"它在犹豫"这四个字用红笔写下来的重量。父亲是一个会把"犹豫"这个词用在一台机器上的人,而他用了四年时间、几百盘必败的对局,只为证明那台机器在某个特定坐标前会卡顿零点三秒。 零点三秒。 他重新坐回电脑前,把U盘里的最后一个文件夹点开。里面没有sgf了,只有一个文本文档,命名为"给寻"。江寻双击,文本打开,内容很短,像是某天深夜仓促敲下的,最后几行甚至没有标点: "寻儿,如果你看到这里,说明你翻到了最底下。第十七道线的秘密不在棋盘上。我试了四百一十七盘,每次都在那个点落子,AI的延迟每次都存在。但它从不在复盘时承认那条线的特殊性。它在'假装'没有异常。我后来想,也许那个坐标本身不重要,重要的是它为什么会被设计成'不重要'。它像一扇门,门本身没有锁,但所有人都被教育说那面墙没有门。寻儿,我的时间可能不够了,但你可以接着敲。敲下去。" 末尾的日期是2021年9月2日,距离父亲失踪前十二天。 江寻把文档关了,重新打开桌面上的浏览器。他注册了一个围棋对弈平台的匿名账号,用户名叫"黑玉",没有任何头像、简介、历史战绩,干干净净一块黑色底板。平台接入了公开版的围棋AI,任何人充值相应的点数都可以发起挑战,让子数从零到九子自选。他选了让两子,黑棋先行。屏幕上弹出倒计时,十、九、八……他忽然觉得嘴唇干,伸手去摸旁边的水杯,杯子是空的,杯底一圈茶垢像半个棋盘。 倒计时结束,棋盘展开。第一手,黑子落于右上星位,十七之十七。AI几乎瞬时应了一手,占据左下角小目,响应时间不到零点五秒。第二手,黑子挂角,AI应。第三手,黑子拆边,AI应。一直到第四十手,江寻的落子全部在第十七道线的辐射半径内,每一手都贴着父亲留下的棋谱走,他几乎不用思考,手指自己就知道该落在哪里。AI的应对一如既往地精准、顺畅、不露破绽,每步响应都在零点七到零点九秒之间,屏幕上的读秒数字匀速跳动,像心跳监护仪的波形。 第四十一手。 江寻的手指悬在鼠标上方。棋盘上AI的白棋在右下角构筑了一道厚势,像一堵墙压过来。父亲在类似的局面下通常会选择在墙外侧轻吊一手,试探性地碰一下,然后转身。但江寻盯着那片白色势力范围中间的一个缝隙,就在十七道线向外延伸两路的位置,那里有一个打入点——非AI推荐,不在任何定式手册上,甚至不符合"棋理"层面的常规选点。那个点像一颗嵌在墙里的石子,四周都是白棋的控制范围,进去几乎必死。但他在那个瞬间想起父亲笔记里的一句话:"它在犹豫的地方,就是它在假装不知道的地方。" 他落子了。鼠标左键按下去的声音在空房间里格外清脆。 AI的响应灯闪了。一秒、两秒——屏幕右上角的思考计时数字从0.8跳到1.2,然后蹦到1.5、1.7——最后在2.0秒的位置停顿了一下,跳回1.9,白子落下了。完美的应对。那手棋堵住了打入棋子的所有出路,像一只手掌合拢,只留了一条极窄的缝,而那条缝通向的是一块更大的包围圈。 江寻没有退缩。他往后靠了靠椅背,椅子腿在地板上刮出一声短促的吱呀,然后他把身体重新压向前,眼睛离屏幕不到二十公分。接下来的每一步,他都刻意避开AI推荐的选点范围,专挑那些"不合理"的、破绽百出的、等于送死的位置落子。他像在往一面墙上钉钉子,每一锤都砸在同一个裂缝里,锤子把掌心震麻了,但他不松手。AI的响应时间起起伏伏,有时候快,有时候慢,但他能感觉出来——在第十七道线周边的每一个落子之后,白棋的反应都带上了一丝"额外的慎重",那零点几秒的延长累积起来,在棋盘上变成了某种肉眼看不见的裂缝。 第一百八十二手。江寻的白棋在黑棋的包围中只有一口气了,他数了数,棋盘上能榨出的目数已经全部榨干,再撑下去是徒劳。他点了"认输"按钮。屏幕上弹出"黑玉 负"的字样,棋盘上的最后一步定格在右下角,AI的白棋像一场雪盖住了所有挣扎过的痕迹。 但他没有关窗口。他把鼠标拖到复盘界面的第89手,那一步棋在整盘对局中看起来平平无奇,甚至有点笨——AI没有选择直接封堵江寻的一条大龙,而是在外侧补了一手厚势。江寻用分析工具计算了那手棋的胜率变化,然后他手动测试了如果AI把那一步棋向上偏移一路,胜率会提高多少。分析结果显示:偏移一路的话,AI会在十五手之内提前锁定胜局,胜率高出原选择三点七个百分点。 三点七。在职业对局里,这个数字大到足以让一个棋手在复盘时扇自己耳光。但AI没有选。它选了更慢、更稳妥、更确定的那条路。 江寻把第89手放大截屏,用手在屏幕上画了一个圈,指尖碰着玻璃面,留下一小片雾。"这里,"他对着空房间说,声音哑得像砂纸磨过木板,"它没有选'最快赢',它选了'最确定赢'。它在……怕。" 最后一个字说出口的时候,他自己的呼吸停了半拍。他从来没有想过自己会用"怕"这个字形容AI。但那个瞬间,屏幕上那颗白子定在那里,所有计算出来的数据排在旁边,他找不到任何其他解释。那颗白子像一个人站在悬崖边上,明明可以跳过去抄近路,却选择了绕着山脚走一整圈。稳健,无疑问,无可挑剔,但稳健到了近乎神经质的程度。而整个棋盘上,唯一让这颗白子表现出这种"神经质"的,是前面四十多手父亲式的第十七道线压迫。 江寻把脸埋进手掌里,掌心压在眼皮上,眼前浮动着棋盘残影的黑白线条。他在黑暗里数自己的心跳,一下、两下、三下,数到第十七下的时候他听见自己笑了一声,很轻,像什么东西终于在土里拱破了壳。 他重新睁眼,准备把复盘数据存下来。但在他点击保存之前,浏览器右下角弹出了一条通知:"您的对局记录已被引用。"他愣了。那个通知来自平台的公共动态区,是系统自动推送的关联内容——有人在他的匿名对局上做了标注,而且是公开标注。他点进去,看见一个熟悉的ID头像:顾晚。职业棋手、围棋直播平台的头部主播,粉丝量七位数,每周做三次AI对局拆解直播。而她的最新动态是一段剪辑视频,标题写着:"昨晚有一盘有趣的匿名对局。让两子,黑棋败了。但败法不有趣——有趣的是白棋。" 江寻的手指僵在鼠标上。视频预览图里是棋盘上第89手的特写画面,顾晚用红圈标出了和他同样的位置。播放量已经开始跳了,评论区的第一条留言是:"这黑棋谁下的?路子太野了。"第二条是:"卧槽,这人是在跟AI打心理战吗?" 他盯着第二条留言看了五秒。 屏幕的蓝光映在瞳孔里,江寻慢慢把后背靠回椅背上,椅子吱嘎响了一声。窗外小巷里的空调外机还在嗡嗡地转,佛山的夜像一床湿棉被盖在整座城上面。他伸手把上衣口袋里那张纸条抽出来,折开,又看了一遍最后那行字——"棋子没有坐标,但它永远在棋盘上。" 楼下传来梁伯锁棋室大门的声音,铁锁叩门环,咚的一声闷响。然后是拖鞋在青砖地面上蹭过去的沙沙声,越来越远,越来越轻。整栋楼只剩他一个人了。江寻把纸条重新折好放回口袋,转过头面朝屏幕。顾晚的直播回放正在自动播放,画面里的她拿起一颗白子对着镜头晃了一下,说:"下这盘棋的人,可能是最后一个还在'尝试'的人类。" 声音从笔记本自带的喇叭里传出来,带着点电流杂音。江寻把音量调高了五格,这句话在二楼的空房间里循环了两遍,然后他关掉视频,打开一个新的空白文档。 光标在左上角一闪一闪。 他敲下第一行字:"第十七道线。它犹豫了零点三秒。我确认了。"然后他停住,手指悬在键盘上。窗外一片云移开,月光从窗格照进来,在棋盘上铺了一张银色的网。江寻看着那张网,忽然意识到父亲说的"第十七道线的秘密在棋盘外"是什么意思——那个坐标本身没有任何魔力,它只是一条线。真正让AI犹豫的,是有人始终坚信那条线上有东西。四百一十七盘棋,四百一十七次在同一个位置落子,每一次都比上一次更坚决,每一次都在传递同一个信号:我知道你在看着这里。 江寻把光标移到下一行,继续打字:"下一步,我要去验证它为什么在怕。" 笔记本的电量显示跳到了百分之三。他没去插电源,而是把U盘拔下来攥在手心里,金属外壳的温度和他的掌心混在一起,分不清谁在暖谁。明天早上他要去找梁伯,问清楚那个U盘的来源。但今晚,他只剩下一个念头,像棋盘上一颗悬了太久的手筋——再不落就来不及了。 他打开对弈平台的登录界面,输入"黑玉"的账号密码。匹配按钮是绿色的,亮着,像一个在深处睁开的眼睛。他点了下去。