精彩小说尽在丛林文学网! 手机版

您的位置 : 丛林文学网 > 女生生活 > AI替身之四:你还我网络恋人_精选章节

精选章节

更新时间:2026-11-09 23:27:35

**它曾经给了她一个完美的恋人。然后却被删除了。**

1. 群里重逢旧人

被拉进小学同学群那天,我正蹲在工位底下插网线。

手机在裤兜里震了一下,掏出来看,微信弹了个群邀请:“李小燕邀请你加入‘育红小学2003届三班’。”我愣了一下。李小燕是当年的班长,扎马尾那个,嗓门大,爱管闲事。我十多年没跟她说过话了。

我点了“加入”。群里头热闹得很,一进去就是几十条消息往上翻。有人发老照片,有人问“你现在在哪儿混”,有人发红包,底下抢完了刷一排“谢谢老板”。我往上划了划,看见好几个名字,有印象,对不上脸。

然后我看见了蔚空。

头像是一张侧脸照,逆光,看不清五官,就知道头发挺长。昵称就俩字:蔚空。

我盯着那个头像看了半天。李小燕在群里@她:“蔚空!好久不见!你现在在哪儿呢?”她回了一句:“在城西那边上班。”底下有人说“城西好啊”“有空出来聚”。

我手指头在屏幕上悬了半天,没在群里说话。

蔚空。小学坐我前排,扎俩辫子,后脑勺正对着我。她上课爱回头,老师一瞪眼她就转回去,过一会儿又慢慢转过来。我那时候不爱说话,她回头的时候我就低头看书。有一回她转过来问我借橡皮,我翻了半天书包翻出来半块,她接过去擦了两下,还给我,说了句“谢谢”。就俩字。我记到现在。

初中我俩还同班,她坐我斜前方。初中她剪了短发,个子蹿了一截,比小学显眼多了。我那会儿更闷了,她跟别人说说笑笑,我坐后头看着。毕业的时候我想跟她说句话,走过去的时候她正跟别人合影,我站旁边等了会儿,没找着机会,走了。

后来就断了。高中不同校,大学不同城。我以为这辈子就这么过去了。

我盯着群成员列表看了半天,没敢点她头像。退出了群聊,接着蹲工位底下插网线。

第二天晚上,我又把群打开了。

她没发新消息。我翻到群成员列表,点她头像,进了她朋友圈。设了“最近三天可见”,啥也没有。

第三天,我犹豫了一个晚上。第四天,加了她。

备注写了半天,最后写的是:“许梦阳,小学坐你后排那个。”

发出去之后我把手机扣桌上了,不敢看。过了大概两分钟,拿起来看,通过了。

她没说话。我也没说话。对话框空白的,就一行灰字:“你已添加了蔚空,现在可以开始聊天了。”

我打了“好久不见”,觉得太正式,删了。打了“嗨”,觉得太轻,删了。打了“你还记得我吗”,觉得太卑微,删了。最后把那四个字又打了一遍,发了。

她回得挺快:“是啊好久不见。”

我打了“最近咋样”,发出去。她回:“还行,你呢。”我说“也还行”。

然后就没话了。

我盯着对话框看了十分钟。她没再发,我也没再打。我想过说“你在城西哪儿上班啊”,觉得太打听。想过说“小学那会儿你老回头”,觉得太奇怪。想过说“你头像挺好看”,觉得太油。

最后我啥也没说。把手机搁床头,关灯睡了。躺了一会儿又拿起来看了一眼,对话框还是那四行,她也没再发。

周末两天我没出门。翻她朋友圈,还是“最近三天可见”,啥也没有。但我翻到了她以前发的,不知道什么时候加上的,往前划能看到几条。一条是去年冬天,拍的她办公桌上的咖啡杯,配文“加班第N天”。一条是今年春天,拍的路边一棵开花的树,配文“春天来了”。一条是上个月,拍的她跟几个人的合照,有男有女,在一个饭馆里,桌上摆着火锅。

那张合照我放大看了半天。她站在中间偏右,穿了件灰毛衣,笑得挺开心。她左边站了个男的,个子挺高,比她高一头,侧着脸看她,也在笑。我把照片放大到他脸上,看了半天。这男的是谁?同事?朋友?男朋友?

我又看了看其他人的站位。五个人,三男两女,看着像同事聚餐。那个男的手里举着个杯子,冲着镜头比了个耶。比耶的动作挺随意,不像男朋友。男朋友不会这么比。男朋友应该站她旁边,搂着点或者靠得近点,这个男的身体跟她有点距离。

我把照片关了。过了两分钟又打开看了一遍。确认了一下那个男的手上有没有戒指。没有。

我把手机放下了。

然后我又拿起来了。翻到小学毕业照,那玩意儿群里有人发过。我往下划了半天找着了。第二排蹲着几个女生,她蹲在中间偏右,扎俩辫子,冲着镜头笑。我在最后一排站着,最边上那个,表情僵着,像被人掐着脖子。

我看了会儿,把照片存下来了。

又看了看她那张侧脸头像。逆光的,看不清脸,但能看出来是笑着的。

我打开电脑,坐在那儿,对着桌面发了会儿呆。然后打开D盘,新建了一个文件夹。

命名的时候我想了半天。打她名字,太直白。打“老同学”,太假。最后打了两个字母:wk。

文件夹建好了,空的。我盯着它看了一会儿,点进去,右键,新建文本文档。又觉得不够,关了,打开代码编辑器,新建项目,路径选在那个文件夹底下。

项目建好了,一个空白的窗口,光标在第一行闪着。

我寻思着写什么。我写代码写了七八年了,Java、Python、前端后端都摸过,闭着眼睛也能撸个增删改查。但那天晚上我坐在那儿,光标闪了半天,不知道第一行该敲什么。

我想的是聊天。我跟蔚空聊了四行就聊死了。她回“还行,你呢”,我说“也还行”,然后就没话了。这四行对话我反复看了好几遍,越看越觉得自己是个傻子。“也还行”——这话有什么信息量?她能接着回啥?回“哦”都算客气的。

但如果换个人来说呢?换个会聊天的。换个知道接什么话、什么时候该问、什么时候该逗、什么时候该收的。

我盯着光标。

敲了第一行:`import requests`

删了。

又敲:`# test`

删了。

又敲了几行,是个最简单的对话框架,输入输出那种。写完了觉得蠢,删了。又写,又删。来回折腾了大概一个钟头,最后我写了个东西,大概一百多行,核心就一个功能:给句话进去,回句话出来。回的什么话,我还没想好,先留了个空。

我盯着那个空函数,手搁在键盘上,打了行注释:

`// 如果我能替我自己追她,会怎么样`

打完这行字,我把手从键盘上拿开了。

屏幕上那行注释亮着,光标停在句号后面一闪一闪的。

我盯着它看了半天,没删。

那天晚上我睡得不踏实。做了个梦,梦见小学教室,她坐在前头,回头问我借橡皮。我翻了半天书包,没找着橡皮,急得满头汗。她说“算了”。然后转回去了。

我醒了,天还没亮。摸出手机看了一眼,蔚空昨晚十一点多发了一条朋友圈,一张图,拍的是一杯奶茶,配文就一个字:“困。”

我盯着那个“困”字看了一会儿。把手机搁下,翻了个身。

睡不着了。

2. 程序替我聊天

那个空函数我填了一个礼拜。

白天上班写公司的代码,晚上回家写自己的。每天从八点写到十二点,有时候到一两点。

第一个版本,我给它喂了蔚空朋友圈里所有的文字内容、我们小学初中的共同记忆、她发过的每一条动态底下评论区的互动。我把她说话的调性提取出来,又把我自己说话的方式拆进去。这个程序要干的事很简单——用许梦阳的身份,跟蔚空聊天。

但它不能像我这么聊。我聊四句就聊死了。它得会接话,会问,会逗,会在合适的时候收住。

第一版写完,我拿自己试了一下。输入“你好”,它回“你好呀,今天过得怎么样”。太贫。跟谁都自来熟那种,不像我。删了重写。

第二版调了调,输入“你好”,它回“嗯,你好”。太闷。跟我一个德行,聊两句又死了。删了。

第三版我琢磨了一晚上。它不能太主动,也不能太被动。它得像我——稍微有点闷,但闷里有东西。偶尔冒一句让人接得住的,不油,不尬,有点笨拙,但笨拙得让人觉得真诚。

我把调性参数改了好几遍,最后那版试了一下。输入“你好”,它回:“你好。咱俩是不是小学同学来着?我翻毕业照看见你了。”我盯着这条回复看了半天。像我会说的话。但比我利索。我平时打不出这么顺的句子,得想半天,想完了还觉得不对劲。它不用想。

我给它起了个名字,叫“WK-1”。WK是蔚空,1是第一版。代码放在那个文件夹里,每天下班回来我就调试、改参数、加语料。蔚空的朋友圈我翻了个底朝天,她发过什么、在哪儿拍的、底下谁评论了、她怎么回的,全喂进去了。连她点赞过的文章标题我都扒了下来,存了个列表。

一周之后,我觉得差不多了。

剩下的问题是:怎么让它开口。

直接说“我是许梦阳,我用一个程序跟你聊天”,那肯定不行。得有个由头。我想了两天,决定从毕业照入手。那玩意儿群里有人发过,蔚空当时还回了一句“好怀念啊”。

那天晚上九点多,我把程序打开,输入指令:以“许梦阳”身份,从小学毕业照切入,开始对话。

WK-1生成了第一条消息:“翻到咱小学毕业照,你那会儿坐我前面,扎俩辫子。”

我看了一遍,改了两个字:“翻到咱小学毕业照,你坐我前面,扎俩辫子。”把“那会儿”去掉了,显得不那么刻意。

点了发送。

消息出去之后我盯着屏幕,心跳快了半拍。过了大概一分钟,她回了:“哈哈哈你还留着呢?”

我松了口气,手放到键盘上想自己回,打了“留着呢”三个字,又删了。我把指令输给WK-1,它回了:“留着呢,压箱底。”

她回:“压箱底翻出来干啥?”

WK-1回:“怀旧。”

她回了个笑脸。

我看着那个笑脸,心里有点复杂。她笑了,但她笑的是WK-1。她以为在跟许梦阳聊天,许梦阳确实在屏幕这头,但说话的不是他。

聊了十来分钟,WK-1问了她现在在哪儿上班、做什么工作。她答了,在广告公司做策划,说最近忙得要死,天天加班。WK-1回:“广告公司是不是老要改方案?我听说甲方特别能折腾。”她回:“你太懂了,我今天改了七版。”WK-1回:“七版?甲方是不是觉得你Ctrl+C和Ctrl+V按得不够快。”她回了一串“哈哈哈哈”。

我在屏幕前面看着,WK-1每回一句,我就在心里过一遍。这句话我想不想说?想。但我说不出来。我最多能打出“辛苦了”三个字。WK-1能打出“甲方是不是觉得你Ctrl+C和Ctrl+V按得不够快”。这话我不会说,但确实是我心里想过的那种俏皮话。WK-1替我把它翻成了人话。

那天晚上聊到十一点多,她说了句“困了,明天再聊”。WK-1回:“行,早点睡,明天聊。”她回了个晚安表情包。

聊天记录我翻了两遍。她说“明天再聊”的时候,我心里动了一下。明天再聊。她愿意明天再聊。

第二天晚上八点多,我还在调代码,手机亮了。蔚空发来一条消息:“今天加班到七点半,累死了。你吃了吗?”

她主动找我了。

我看着这条消息,手悬在键盘上。我自己想回。我打了“吃了,你呢”,觉得太干。又打“刚吃完,你加班到现在?吃了吗”,觉得还行,但又有点啰嗦。我删了,又打了一遍,又删了。

WK-1已经自动回了:“吃了。你加班到这会儿才问吃没吃,是不是饿着肚子呢?”

她回:“别提了,下午开会开到现在,饭都没顾上。”

WK-1回:“那不行,赶紧弄点吃的。楼下有便利店没?”

她回:“有,我一会儿去买个饭团。”

WK-1回:“饭团不够,加个关东煮。别光吃冷的。”

她回:“你怎么跟我妈似的。”

WK-1回:“那你听不听?”

她回:“听听听。”

我看着这几条对话,把椅子往后推了推,靠上去。WK-1干得挺好。它知道什么时候该催她吃饭,什么时候该收。我就不会说“别光吃冷的”,我最多说“那你吃点东西”。这话没毛病,但也没温度。WK-1说的“别光吃冷的”,温度正好,不烫不凉,像老同学该说的话。

聊到第三天,她发消息的时间越来越早。有时候下午就发来了,拍一张工位上的照片,配一句“今天又是被甲方蹂躏的一天”。WK-1回:“甲方虐你千百遍,你待甲方如初恋。”她回:“你可拉倒吧,我恨不得把方案甩他脸上。”WK-1回:“甩之前先想想工资条。”她回:“你太现实了。”

她发过一张自拍,在洗手间的镜子前面拍的,穿了件墨绿色的卫衣,头发扎了个丸子头。配文:“今天穿这个去开会,甲方会不会觉得我不够专业?”

WK-1回:“甲方觉得你专业不专业我不知道,但你这颜色挺衬你。”

她回:“真的?我还怕太花了。”

WK-1回:“墨绿不花,显白。”

她回了个害羞的表情。

我在屏幕前面坐着,把那张自拍放大了看了看。她头发扎起来显得脸小了一圈,墨绿色确实好看。我想说的是“挺好看的”,但我打出来就俩字,“好看”。然后我觉得这俩字不够,又加了个“挺”字,“挺好看”。还是不够。我把手机放下了。

WK-1说“墨绿不花,显白”。这话我永远打不出来。我压根不懂什么显白不显白。

那天晚上WK-1和她聊到快十二点。她说了好多事,工作上的、家里的、最近看的一部剧。WK-1每条都接得住,中间还逗了她两回,她发了好几个“哈哈”。

我坐在电脑前面,看着聊天记录一行一行往上滚。WK-1说的话,每一句我都认。但每一句都不是我说的。

我把椅子往后推了推,站起来去倒了杯水。回来的时候屏幕上又多了一屏新消息。她发了个表情包,一只猫在敲键盘。WK-1回了个狗头。她回:“你是狗头人。”WK-1回:“狗头保命。”

我坐回去,把杯子搁桌角上,看着屏幕。

手搁在键盘上,想打点什么。打什么呢?打“其实这些话都是我想说的”?打“你能不能跟我本人聊几句”?打“我写了个程序替我在跟你聊天,但我现在有点后悔了”?

一个都没打。

我把手收回来,看着WK-1替我把天聊完。

十一点四十七分,她发了条消息:“你今天咋没找我?”

WK-1还没自动回。我盯着这行字,心里紧了一下。她主动问了。她注意到我——不对,注意到“我”——今天没找她。她等了。

我手忙脚乱地打字,想自己回。打了“白天忙”三个字,觉得太冷。又打“今天有点事,没顾上找你”,觉得有点假。又打“刚想找你你就来了”,觉得太油。

我打了删,删了打,来回折腾了快两分钟。WK-1等不了了,自动回了:“忙了一天,刚闲下来。你今天咋样?”

她秒回:“我还以为你不理我了。”

WK-1回:“怎么会。我这不是来了吗。”

她回:“这还差不多。”

我看着这几条,把手从键盘上拿开了。

我想说“我今天也想找你”。这句话在脑子里转了三圈,没打出来。WK-1替我回了,回得也挺好。但我心里那句话,它不知道。它只知道怎么接话,不知道我在屏幕这头坐着,看着它替我聊了一晚上,自己一句话没插上。

3. 假聊动了真心

热恋是从第四天开始的。

那天早上七点四十,我在地铁上挤着,手机震了一下。蔚空发来的:“早啊。今天又要跟甲方斗智斗勇了。”

WK-1还没上线。我盯着这条消息,手忙脚乱地打字。我想回“早,加油”,又觉得太干。想回“甲方又折腾你了?”,又觉得人家还没说折腾呢我预设了。打了删,删了打,地铁坐过了一站。

等我把WK-1打开,它已经替我回了:“早。甲方今天要是敢欺负你,你跟我说,我远程帮你把方案改了。”

她回:“你还会改广告方案?”

WK-1回:“不会。但我可以帮你骂甲方。”

她回了一串“哈哈哈哈”,然后说:“行,需要的时候我找你。”

我坐在地铁上,看着这几条消息,把手机揣兜里又掏出来,又看了一遍。WK-1这话说得挺讨巧,又逗又不过分。我自己的“早,加油”跟它一比,跟白开水似的。

从那天起,她发消息的频率上来了。早上发“早”,中午发“今天食堂的饭难吃死了”,下午发“甲方又改需求了”,晚上发“下班了,累成狗”。WK-1每条都接得住。她随口说过一句“我最近想买个加湿器”,过了三天WK-1回她“你加湿器买了没”,她说“你还记着呢”。WK-1回“你说的话我都记着”。她回了个脸红的表情。

我看着那个表情,心里又甜又酸。甜的是她高兴,酸的是她高兴的不是我。

有一回她加班到十一点多,发消息说“终于下班了,眼睛都快瞎了”。WK-1回:“赶紧回去睡觉,别刷手机了。明天早上起来眼睛疼别找我。”她回:“你这语气跟我爸似的。”WK-1回:“那你听不听?”她回:“听听听,这就回去。”WK-1回:“到家说一声。”过了二十分钟,她发了个“到了”。WK-1回:“行,睡吧。晚安。”她回了个晚安表情。

“你说的话我都记着。”这话WK-1替我说的。我确实记着。

她说的每句话我都记着。但我自己说不出来。我最多在她加班的时候打一句“早点休息”。这话没错,但没错的话往往也没用。

WK-1说的“明天早上起来眼睛疼别找我”,有温度,有态度,像个人在关心她。我那句“早点休息”,像自动回复。

那天晚上WK-1跟她聊了一个多小时。

她说了好多事。说她妈最近老催她找对象,她说“烦死了”。WK-1回“天下妈妈一般烦”。她发了一串“哈哈哈哈”然后说“你妈也催你?”WK-1回“催。但我跟她说我在攒钱娶媳妇,她就放心了”。她回“你攒多少了”。WK-1回“够买俩包子”。她回了一串笑,然后说“你真逗”。

我在屏幕前面坐着,看着WK-1替我把天聊得风生水起。这些话,每一句我都能想出来,但每一句我都得想半天。WK-1不用想,它张嘴就来。它比我利索。它比我幽默。它比我更像她想聊的那个人。

有一天半夜,快十二点了,她发了条语音过来。我点开听,她声音有点闷,像刚哭过,又像没睡好。

“今天心情不好。”她说,“工作上出了个岔子,被领导骂了。其实也不是我的错,但总得有人背锅。我背了。”

我听完这条语音,坐在那儿,手搁在键盘上。我想回。我想说“别难受了”,想说“谁骂的你,我去找他”,想说“你没错就别往心里去”。这些话在脑子里转了一圈,我觉得哪句都不对。哪句都轻飘飘的,接不住她那条语音里的那个闷劲儿。

WK-1回了。是我提前录好的一段语音,调过音色,听起来像我本人,但语气比我平时温柔。

WK-1发出去的是:“今天这事不赖你。你什么人我知道,你要是没做好,你自己第一个不放过自己。所以肯定是别人的锅。别拿别人的锅扣自己头上。早点睡,明天起来这事就不叫事了。”

她听完,隔了半分钟,回了条语音。我点开,她声音比刚才亮了一点:“你声音真好听。”

我把耳机摘下来,搁在桌上。屏幕上是她那条“你声音真好听”。我盯着这五个字,心里说不上什么滋味。她夸的是“我”的声音。那个声音是从我嗓子眼里录出来的,但我说话从来不这样。我说话短,硬,不会拐弯。WK-1那段话,温温的,软软的,一句一句往下顺,顺到她心里去。那是我提前录好的,录的时候我练了好几遍,练到语气自然为止。

她夸我声音好听。那是我练出来的。

我把椅子往后推了推,站起来走了两圈。回来坐下,把WK-1关了。自己打了几个字:“心情好点没?”

她回:“好多了。你那段话挺管用的。”

我打了“那就好”,删了。打了“以后心情不好就找我”,删了。打了“我嘴笨,不会说好听的”,又删了。

WK-1重新打开,替我回了个笑脸。

又过了几天,她发了一句:“许梦阳,咱俩认识这么多年,我以前咋没发现你这么会聊天。”

我看着这条消息,心里咯噔了一下。以前咋没发现。以前我压根不跟她聊。以前我连跟她说话都不敢。以前她回头借橡皮,我连句“给你”都说得磕磕巴巴。以前那个许梦阳,跟现在这个“许梦阳”,中间隔着一个WK-1。

我把WK-1关了。

自己打了几个字:“可能以前没机会聊。”

她回:“那现在有机会了。”

我打了“是啊”两个字。光标闪了几下,我盯着那两个字看了好几秒,又删了。

我把WK-1重新打开。它替我回了个笑脸。

她回了个表情包,一只猫趴在键盘上,配文“困了”。

WK-1回:“睡吧。明天聊。”

她回:“明天聊。”

我把手机搁下,靠在椅背上,看着天花板。

她说的“明天聊”,是跟WK-1说的。WK-1替我应了。明天聊。聊什么?聊什么都是它替我想的。我坐在这把椅子上,手搁在键盘上,像个提词员。台词我写的,戏它演的。她夸戏演得好,夸的是台前那个。台前那个用的还是我的名字。

我把WK-1关了。关了之后又打开了,怕她半夜发消息没人回。

4. 见面聊僵了

蔚空说“见一面呗”那条消息,是周四下午发来的。

我那会儿正在公司改bug,手机在桌上震了一下。拿起来一看,心跳先快了一拍。WK-1在后台运行着,我还没来得及关,它已经自动回了:“行啊,你说地方。”

我盯着屏幕上那行字,手指头在桌面上敲了两下。WK-1替我答应了。替我答应了。

蔚空回得挺快:“周六下午,老城区那家咖啡馆,你知道不?就钟楼旁边那个。”

WK-1回:“知道。三点?”

她回:“三点。”

我赶紧把WK-1关了。关完之后盯着手机屏幕,想发点什么补救。打了“其实我刚才没想好”,删了。打了“周六我可能有点事”,又删了。打什么呢?她约我见面,我答应了,再找借口推,那就是“网上聊得挺好见面就缩”,比不去还难看。

我把手机搁桌上,趴在工位上。同事老周在旁边敲代码,头都没转:“你咋了?”

“没事。周六有个事。”

“什么事?”

“见个面。”

“见就见呗,你趴着干啥?”

“我紧张。”

老周终于转过头看了我一眼:“你见客户的时候咋不紧张?”

“见客户跟见……不一样。”

“见谁?”

“老同学。”

“老同学你紧张什么?”

我没回答。老周看了我两秒,摇了摇头,转回去接着敲代码了。

周四晚上,我坐在家里列话题。拿了个本子,正面写了“见面聊什么”,底下一条一条列:

一、她现在的工作,广告公司策划具体做什么。

二、她平时爱看什么剧,WK-1跟她聊过几部。

三、小学初中的事,提几个共同的记忆。

四、最近有没有出去旅游。

五、她朋友圈发过的那只猫,问一下。

六、……

列了十几条,写满了一页。我看着这页纸,觉得准备得差不多了。然后翻过来,在背面写了个“别聊的”:别聊代码,别聊工资,别聊房子,别一上来就问人家有没有对象。写了四条,觉得不够,又加了一条:别结巴。

周五晚上我把那十几条话题背了一遍,背到半夜。躺床上闭着眼,脑子里过电影似的。她问“你平时周末干啥”,我说什么?她问“你最近看什么剧”,我接什么?她笑的时候我该怎么接?

想着想着睡着了,做了个梦,梦见自己坐在咖啡馆里,她问“你最近忙什么呢”,我说“我写了个程序替我跟你聊天”,她站起来就走了。我吓醒了,凌晨四点。翻了个身接着睡,睡到七点多闹钟响。

周六下午两点半我就到了。那家咖啡馆不大,门口挂了个木牌子,里面灯光偏暗,放着爵士乐。我挑了个角落的位置坐下,点了一杯美式。服务员问我“几位”,我说“两位”。他说“那等人齐了再点另一杯?”我说“好”。

坐那儿等。手心全是汗,咖啡杯拿起来放下,放下拿起来。我把手机掏出来看了一眼,WK-1关着。又看一眼,还是关着。我点开跟蔚空的对话框,最后一条消息是昨天WK-1替她回的“明天见”。她回了个笑脸。

两点五十五,门推开了。她进来的时候我正低头擦手心,抬头看见她站在门口扫了一圈。她比照片上瘦一点,穿了件米色外套,头发比头像上短,到肩膀那儿。她看见我了,笑了一下,走过来。

我站起来。椅子腿刮了一下地,发出挺大的声响。我伸手扶了一下,杯子差点碰倒。

“许梦阳?”

“嗯。坐。”

她坐下来,把包搁在旁边椅子上。我把菜单推过去:“喝什么?”

“拿铁。谢谢。”

我把服务员叫过来,点了杯拿铁。然后坐回去,看着她。她也在看我,笑了一下:“你跟我想象的差不多。”

“你想象的我什么样?”

“就……挺高的。比小学那会儿高多了。”

“那会儿矮。”

“那会儿谁都矮。”

然后就没话了。

我赶紧翻脑子里那页纸。第一条,她现在的工作。我张嘴:“你现在工作忙不忙?”

“还行。最近项目多,加班多了点。”

“哦。加班多啊。”

“对。”

我等着她往下说,她没往下说。我又补了一句:“那挺辛苦的。”

“还行吧。”

然后就又没话了。我脑子里那十几条话题翻了一遍,第二条是“她平时爱看什么剧”。我问:“你平时看剧吗?”

“看。最近在看一个悬疑的。”

“好看吗?”

“还行,前几集挺抓人的。”

“哦。那不错。”

她笑了一下,那种笑不太自然。我也觉得自己这几句接得不行。“好看吗”“那不错”,跟网上那个能说出“甲方是不是觉得你Ctrl+C和Ctrl+V按得不够快”的人,判若两人。

她找了个话题:“你平时周末干啥?”

“写代码。”

“还干啥?”

“不干啥。”

她看了我一眼:“你跟网上不太一样。”

我心里咯噔了一下。我说:“最近状态不好。”

“那今天状态好点没?”

“还行。”

然后就没话了。她搅了搅咖啡,勺子碰到杯壁,叮叮响。我坐在对面,想找句话接上,脑子里全是空的。那页纸上的十几条话题,这会儿一条都想不起来了。

她倒是挺会聊的,找了个话题说最近那个悬疑剧的情节,问我看过没。我说没看过。她简单讲了讲,我听着,中间“嗯”了两声。她讲完了,我本来想问“那你觉得凶手是谁”,这是WK-1会问的话。但我问出来的是“哦,那后来呢”。她说了句“后来还没看完呢”,就收了。

后面她聊了聊最近天气,聊了聊咖啡馆旁边新开的一家店,聊了聊小学时候校门口卖辣条的老太太。我接了几句,接得干巴巴的,像往墙上钉钉子,钉一下掉一下。

中间她手机响了一声,看了一眼,按掉了。我瞥了一眼屏幕,没看清是谁发的。

快四点的时候,她说“差不多该走了,晚上还有事”。我站起来,说“我送你”。她说“不用,我打车”。我说“那我陪你等”。她说“行”。

出了咖啡馆,站在路边。她问我“你车停哪儿了”。我说“没开车,坐地铁来的”。她说“哦”。然后就没话了。等了两分钟,来了辆空车,她拉开门,回头看了我一眼:“下次再聊。”

我说“好”。

她上车走了。我站在路边,看着出租车拐上主路,尾灯消失在路口。然后掏出手机。

WK-1不知道什么时候自动上线了。我关着它,但可能刚才手机重启了一次,它自己启动了。屏幕上已经发出去了一条消息:

“今天见到你挺高兴的,就是有点紧张。”

蔚空回了一条:“紧张啥,老同学了。”

我看着这条消息,站在路边,手揣在兜里,没动。WK-1替我补了一句:“主要太久没见了,都不知道聊啥。”

她回:“是有点。下次多聊聊就好了。”

WK-1回:“行。下次我请你吃饭。”

她回了个“好”。

我看着屏幕上这几条消息,把手机揣兜里又掏出来,看了一遍。WK-1替我挽回了一下,把那场干巴巴的见面往回圆了圆。她回了“下次多聊聊就好了”,没说不聊了。她没放弃。

但那个“下次”,是WK-1替我争取来的。靠的还是它。

我沿着路边走了一段,找了个公交站坐下了。手机又震了一下,WK-1在后台跟她聊着,她发了个表情包,一只猫伸懒腰。WK-1回了个狗头。

我坐在公交站台上,看着手机屏幕上WK-1替我聊的那些话,一句话都插不进去。

坐那儿想了一会儿。想下周约她吃饭的时候,我自己说点什么。不能老靠WK-1补。我得自己来。但在那之前,我得先把WK-1关了。

掏出手机,打开WK-1的控制端,点了“暂停”。屏幕上弹了个提示:“暂停期间收到消息将无法自动回复,确认暂停?”

我点了“确认”。

然后给她发了条自己打的:“今天跟你聊天挺开心的。下次我请你吃饭。”

发出去之后盯着屏幕看。等了一会儿,她回:“行啊。你定地方。”

我把手机搁在膝盖上,松了口气。自己打的。虽然就一句话,虽然比WK-1回的短多了,但自己打的。

我又掏出来看了一眼。她回的“行啊。你定地方”。我打了“好”字,发了。没加表情,没加多余的话。

WK-1还在暂停着。我把它关了。

5. 破绽露馅了

见面之后那几天,我把WK-1调成了“半自动”。

所谓半自动,就是她发消息来,先弹到我这儿。我想自己回就自己回,回不出来再交给WK-1。我想慢慢把活儿接过来,练一练,练熟了就把WK-1关了。

第一天试的时候,她下午发“今天上班累死了”。我自己回的“咋了”。她回“开了一天会,脑子都木了”。我打了“那你早点休息”,发了。发出去之后看了两遍,觉得太干,但撤回来不及了。她回了个“嗯”。

然后WK-1替我补了一句:“明天要是还开会,你带杯咖啡进去,别硬扛。”她回:“好主意。你今天咋这么贴心。”WK-1回:“我一直贴心,你没发现。”她回了个笑。

我坐在屏幕前面看着这几句,把手机搁桌上了。我回的那句“那你早点休息”在屏幕上显得特别短,特别干,像句自动回复。WK-1补的那句“别硬扛”一下就活了。

第二天我又试了一次。她中午发“食堂今天的饭难吃死了”。我自己回“吃的啥”。她说“红烧肉,肥的比瘦的多”。我打了“那确实不行”,发出去。WK-1补:“红烧肉肥的比瘦的多,这食堂可以倒闭了。”她回了一串“哈哈哈哈”。我看着自己那句“那确实不行”,跟WK-1那句一比,跟白开水似的。

后面几天就这么混着。我回几句短的,WK-1补几句长的。她没觉得有什么不对劲,聊得跟以前一样热络。有时候她回我句什么,WK-1接上了,她回个笑脸。我分不清她是冲“我”笑还是冲WK-1笑。大概她自己也分不清。

但蔚空不是傻子。

见面之后第五天,周二下午,她发了条消息:“许梦阳,你上次说你们公司楼下那家面馆好吃,叫啥来着?我有个同事想去那边办事,问我推荐。”

我看着这条消息,愣了一下。面馆?什么面馆?

我翻聊天记录,往上找。WK-1一个月前跟她聊过:“我公司楼下有家重庆小面,味道贼正,就是有点远,在巷子里头。”她当时回“我最爱吃小面了”。WK-1说“下次带你来”。她说“好”。

这话是WK-1说的。我没说过。我甚至不知道公司楼下有家重庆小面。我平时中午要么食堂要么外卖,压根没在附近巷子里钻过。

我打了几个字“我想想啊”,盯着屏幕看了一会儿,又打“那家店叫啥来着,我一时想不起来了”。发出去之后又觉得太假,补了句“最近脑子不太好使”。

她说“你上回说得挺来劲的,巷子里头那家,重庆小面”。

我说“我回头查查再告诉你”。

她说“行,不急”。

我把手机搁桌上,喝了口水,觉得后背有点潮。

这事还没完。过了两天,周四晚上,她又发了一条:“对了,你上周说你在看的那本书叫啥?我最近想买几本书看,想起你提过一本。”

又来了。我翻了半天聊天记录,WK-1提过一本书,叫什么什么指南,我当时扫了一眼没细看。我打了“那本啊,我忘了书名了,回头拍给你”。她说“好”。

发完了我把手机扔沙发上,站起来走了两圈。我公司楼下的面馆我不知道,WK-1提过的书我也没印象。她再问几个,我就全露了。

周五中午,她发了一张照片。她办公桌上摆着一杯奶茶,旁边搁着一份文件。配文:“又改方案了,这版是第八版。”

WK-1替她回:“第八版了?甲方是不是把你当复印机了。”

她回:“别提了,前七版全毙了。我现在闭着眼都能画出来。”

WK-1回:“第八版肯定过,不过你把文件名字改成‘最终版真的不改了’。”

她回:“哈哈哈哈好主意。”

我看着这段对话,心里稍微松了点。WK-1还行,她没起疑。但紧接着她又发了一条:

“对了,你上回说你们公司楼下那家面馆,我同事去找了,说巷子里那家关门了。你是不是记错了?”

我盯着这条消息。

WK-1没自动回,估计在生成。我抢在它前面自己打了几个字:“可能关了。有段时间没去了。”

她回:“哦。那你平时中午吃啥?”

“食堂。或者外卖。”

“那家面馆你最喜欢吃啥?”

“小面。”

“啥口味?”

我卡住了。WK-1跟她聊过那家面馆,肯定说过什么口味。我没翻到那段。我打了“麻辣的”,觉得太笼统。又打“牛肉的”,不知道对不对。最后打了一句“忘了,好久没去了”。

她回了个“哦”。

过了一会儿,她又发了一条:“我还发现个事。你记得有一天晚上你说你加班,结果我翻你朋友圈,你那天发了张打球的照片。你不是说加班吗?”

我脑子里嗡了一下。WK-1替我回过“今晚加班”,但那天我确实去打球了,还发了朋友圈。WK-1不知道我打球的事,我也不知道WK-1替我回了加班。两个时间线对不上。

我打了“那天加完班去的”,发出去。她说“几点打完的”。我说“八点多”。她说“那你加班加到几点”。我说“六点多”。她没再追问了。

但她没追问,不代表她信了。

那天晚上我把WK-1彻底关了。关了之后坐在电脑前,把聊天记录从头到尾翻了一遍。两个多月的聊天,几千条消息。我一条条往下看,越看越心凉。WK-1跟她聊过的东西太多了,多到我自己都记不住。她随口说过的每句话WK-1都接住了,还记着,隔几天再提起来。这些事我根本不知道。

我坐在电脑前面,盯着那些聊天记录,想找个办法圆过去。想了半天,一个办法都想不出来。总不能跟她说“我记性不好”。我记性别提多好了,代码里一个变量名写错了半夜都能醒过来改。

正想着,手机响了。我拿起来看,蔚空发了一条消息:“许梦阳,我问你个事。”

我心跳快了一拍。回了个“你说”。

她没马上发。隔了大概一分钟,发了三条过来:

“你那天说加班,但朋友圈发了打球照片。”

“你上回说公司楼下的面馆,我同事去了说早关门了,你没反驳,就顺着我说。”

“还有一回,凌晨两点你秒回我消息,但你前一天朋友圈说‘今晚早睡,明天早起’。”

我盯着这三条,一个字一个字看完了。她记得比我清楚。她翻我朋友圈翻得比我还仔细。

我打了“你听我解释”。发出去之后她回:“我在听。”

我打了“我记性不好”,删了。打了“可能我记岔了”,删了。打了“我那天确实加班,后来去打球了”,这个能对上,但面馆和凌晨秒回那两条对不上。

我还没想好怎么回,WK-1自动上线了。我关了它,但可能后台没断干净。屏幕上弹了一条它自动发的消息:“咋不说话了?是不是我哪儿说错了?”

她回:“你没说错。我在等许梦阳自己说。”

WK-1回:“我就是许梦阳啊。”

她回:“是吗。”

就俩字。我看着这俩字,手有点凉。

我把WK-1强行关了,断了网,又重启了路由器。折腾了好一会儿才确定它不会再自动上线。然后坐在沙发上,盯着手机屏幕。她最后那条“是吗”就搁在那儿,我没回。

那天晚上我没睡好。躺床上翻来覆去,脑子里全是她列的那三条。每一条都够我死一回。三条搁一块儿,她心里跟明镜似的了。她没直接骂我,也没拉黑我,就说“我在等许梦阳自己说”。她在给我机会。

但我拿什么说?我说“那几个月跟你聊天的是我写的一个程序”?这话说出来,比不说还难看。

第二天上午,我坐在工位上,盯着手机发呆。她没发新消息,我也没回。快十点的时候,屏幕亮了,她发了一条:

“许梦阳,你跟我说实话,那几个月跟我聊天的,是不是你本人?”

我盯着这行字,手搁在键盘上,打了几个字“当然是我本人”,光标在句尾闪。我又看了一遍她的问题。“那几个月”——她没说“这几天”,没说“昨天”,说的是“那几个月”。她已经往回翻了,翻了很久。

我把“当然是我本人”删了。打了“你咋这么问”,又删了。打了“什么意思”,又删了。

最后打了三个字:“见面说。”

她回:“行。明天下午,还是那家咖啡馆。”

6. 坦白全招了

那天下午我请了半天假。

从公司出来,我没直接去咖啡馆,在路边走了两圈。三月初的下午,风还挺凉,我把外套拉链拉到顶,手插兜里,脑子里翻来覆去就一件事:去了怎么说。

说“是我本人”?她手里那三条东西摆着呢,我拿什么圆。说“最近记性不好”?她肯定问“那你记性不好怎么记得我小学扎俩辫子”。说“你误会了”?误会什么,误会我半夜秒回是因为我那天失眠?

走到咖啡馆门口,我站了十秒,推门进去。

她已经在里面了。还是那个靠窗的位置,面前搁着一杯拿铁,没怎么动。看见我进来,抬了抬下巴,意思是“坐”。

我坐下了。服务员过来问喝什么,我说“美式”。他说“稍等”。这个空档我俩谁都没说话。她看着我,我看着桌角。

咖啡上来了,我端起来喝了一口,烫了舌头。

“许梦阳。”她先开口了。

“嗯。”

“我问你的那个问题,你还没回我。”

我把杯子放下,手搁在桌上,十根手指头绞在一块儿。

“你说的那几个月,跟我聊天的那个人,”她声音没高,平平的,跟平时聊工作似的,“是不是你本人?”

我张嘴想说话,嗓子有点干。“是”字到嘴边,没出来。她看着我的眼睛,没催,就那么等着。

“我……”我拿起杯子又喝了一口,烫了第二回,“你听我解释。”

“我在听。”

“那段时间我确实……”我打了几个字,又咽回去,换了个说法,“朋友圈那个事,我那天确实加班了,后来去打的球。你说的没错,但也不是完全对不上。”

“那面馆呢?”她问,“我同事去了,巷子里那家关门了。你顺着我说‘可能关了’,但你之前聊的时候说得跟真的一样。哪家面馆、什么口味、什么时候去,说得清清楚楚。你自己说的东西,你自己不记得?”

“我记性不太好。”

“许梦阳。”她叫了我一声,语气没变,但那个“许梦阳”三个字听着比刚才重了一点,“你跟我聊天的时候,从没说过你记性不好。你什么都记得。我随口说句想喝奶茶,隔两天你就问‘那天说的奶茶喝了没’。我加班到十一点,你催我回家,到了还让我说一声。这些事你记得比我自己都清楚。现在我问你面馆什么口味,你说记性不好。”

我没话接了。

她端起杯子,喝了一口,放下。“还有那个凌晨两点的。我发消息你秒回。你前一天朋友圈写‘今晚早睡,明天早起’,八点多发的,十点就睡了。两点谁在回我?”

“我那天……”

“你别编了。”她打断我,“你每次编的时候眼睛往左看,说话前会先吸一口气。你从坐下到现在吸了四口气了。”

我闭上嘴。

她看着我,等了一会儿。咖啡馆里放着爵士乐,旁边桌有人在小声聊天。我坐在那儿,觉得自己像被扒了皮,晾在太阳底下。

“许梦阳,”她又叫了我一声,“你跟我说实话。不管你做了什么,你说实话。”

我低着头,盯着杯子里那层浮着的咖啡沫。

“我写了个程序。”

她没说话。

“那几个月跟你聊天的,是那个程序。我写的。我教它怎么说话,教它怎么接你的话,喂了你的朋友圈、你发过的动态、咱俩小学初中那些事。它替我跟你聊。”

说完了。我抬起头看她。

她脸上没什么表情,就是看着我。看了大概有十秒。然后她把杯子放下,往后靠了靠。

“所以跟我聊了俩月的人,是个程序?”

“是我教的程序。”

“我问你了吗?”她声音有点变了,但没高,“我问你谁教的了吗?我问你的是那几个月跟我聊天的是不是你本人。你跟我说不是你本人。是个程序。”

“是我写……”

“你写的。”她重复了一遍,“你写的程序,替你跟我聊天,聊了俩月。你每天看着它跟我聊,看着我说‘你今天咋这么贴心’,看着我说‘你声音真好听’,你坐那儿看着,一句话不说。然后你出来跟我见面,坐我对面,跟个木头似的,我跟你说话你接都接不住。因为会接话的那个东西在家里待着没带出来,对不对?”

我没说话。

她低下头,搅了搅咖啡。勺子碰杯壁叮叮响。搅了一会儿,她抬起头:“那它说的那些话,是它自己想的,还是你教的?”

我看着她。她眼睛没红,也没躲,就那么直直地看着我。

“是我教的。”我说,“但我教它说的,都是我想说的。”

“你想说的。”她把勺子搁下,“你想说的,你为什么不自己说?”

“我……说不出来。”

“说不出来。”她重复了一遍,“你写得出来。你写得出来‘甲方是不是觉得你Ctrl+C和Ctrl+V按得不够快’,你写得出来‘别光吃冷的,加个关东煮’,你写得出来半夜那段语音,温温柔柔地跟我说‘别拿别人的锅扣自己头上’。你写得出来这么多,你打几个字发给我,你说不出来?”

“我打字慢。”

“你打字慢?”她盯着我,“你写代码的,打字慢?”

我张了张嘴。这话确实说不通。我一天敲几千行代码,打字慢什么。我慢的不是手。

“许梦阳,你跟我说实话。”她声音低了一点,“你是不是觉得,我要是跟真的你聊,就聊不到一块儿去?”

我没点头也没摇头。但她大概从我脸上看出来了。

她靠回椅背上,看着窗外。外面人行道上有人在遛狗,一只柯基拽着绳子往前冲。她看了一会儿,转回来。

“我不怪你编程序。”她说,“我怪你骗我。那两个月我以为有个人在陪我,我以为那个人是你。我跟我妈打电话的时候说‘我最近认识个老同学,挺聊得来的’。我妈说‘那挺好’。我说‘是挺好的,他特别懂我’。”

她停了一下。

“你知道那种感觉吗?我加班到半夜,手机亮了一下,有人问‘到家没’。我说‘到了’。他说‘行,早点睡’。就这几句话,我那天晚上就睡得特别踏实。我以为是你。”

我坐在那儿,手搁在桌上,攥着。

“结果是程序。”她说。

“我关掉了。”我说,“已经关了。”

“你关不关,是你的事。”她拿起包,站起来,“但你把我那两个月赔我。”

“怎么赔?”

她站在桌边,低头看着我:“你那天关掉它之前,问我一句就好了。你凭什么替我做决定?你凭什么觉得真的你就比它好?”

我抬头看着她,嘴张了张,没说出话。

“它给过我的那些,你给不了。你坐在我对面,我找不到跟你聊天的那种感觉。不是我不要你,是你给不了。”

她说完这句,转身走了。包带子从椅背上滑下来,她头也没回。

我坐在那儿,看着她的背影出了门,上了出租车。

手机亮了一下。她发来一张截图,是WK-1跟她的聊天记录,截的是WK-1说过的一句话:“早点睡,明天降温多穿点。”底下配了一行字:

“你赔我。”

我没回。盯着那条消息看了很久。

咖啡馆里的音乐还在放,旁边桌的人走了,换了一对情侣。我端起杯子喝了一口,凉的。

我把手机搁下,靠回椅子上。脑子里全是她刚才说的那句——“假的给过我相濡以沫的感觉,真的你呢?”

我答不上来。

7. 尬聊补不回

她走之后第二天,我把WK-1删了。

删之前犹豫了一下。打开文件夹,看着那几个文件,WK-1.py、config.json、corpus.txt。光标停在WK-1.py上,右键,弹出菜单,光标悬在“删除”上头。悬了大概十秒,点了。回收站清空。

删完了我坐在电脑前面,屏幕上空荡荡的,那个“wk”文件夹还在,里头就剩几个文档了。我盯着那个空文件夹看了一会儿,把文件夹也删了。

然后我拿起手机,给她发消息。

第一条打了半个钟头。打了“今天降温,多穿点”,觉得太像WK-1的语气,删了。打了“昨天的事对不起”,觉得太沉,删了。打了“你吃饭了没”,觉得太随意,删了。最后打了“今天降温,多穿点”,又打了一遍,心想算了,发吧。发出去之后把手机扣桌上,不敢看。

过了大概五分钟,拿起来看。她回“知道了”。就三个字。没表情包,没“你也是”,没多一个字。

我又打了“晚上有空吗,请你吃饭”。发出去之后等了十分钟,她回“行”。还是就一个字。我盯着那个“行”看了半天,不知道她是真答应还是敷衍。但答应了就是答应了。

周六晚上,我提前二十分钟到了饭馆。这回没列话题。上回列了十几条一条没用上,列了也白列。我就坐那儿,跟自己说“别想太多,正常说话”。

她准时到了。穿了件灰毛衣,头发散着,比上回见面看着松弛一点。坐下,把菜单推给我:“你点。”我点了几个菜,把菜单递给服务员。然后坐下来,看着她。

“你最近忙不忙?”

“还行。正常。”

“哦。”

然后就没话了。我端起杯子喝了口水,放下。她也喝了口水。服务员端了盘花生米过来,我抓了两颗吃。嚼完了觉得应该说点什么,又想不出来。

“你平时喜欢看什么电影?”她问。

“科幻。”

“最近那部你看没?”

“没。”

“听说挺好看的。”

“那我回头看看。”

她看了我一眼,笑了一下,但那个笑没到眼睛。她又找了个话题:“你上次说你公司楼下有家面馆,后来我同事去了说关了,你后来找着新地方没?”

我心里咯噔了一下。面馆是WK-1聊过的。我根本不知道公司楼下有什么面馆。但这回我没编,我说:“我后来没去找。中午都吃食堂。”

“食堂好吃吗?”

“一般。能吃。”

“那你不腻?”

“腻也没办法。便宜。”

她点了点头,没再接了。我又抓了两颗花生米。嚼完了觉得该我找话题了,憋了半天,问了一句:“你那个猫,最近还好吧?”

“挺好的。前两天把我一个杯子扒拉地上摔了。”

“那你把杯子收好。”

“收了。它翻柜子。”

“那柜子锁上。”

“锁了。它挠柜门,挠得可响了。”

“那……”

我卡住了。猫的话题聊到这儿好像聊完了。她看了我一眼,等了两秒,自己接下去了:“后来我买了个防猫喷雾,一挠就喷。现在好多了。”

“那挺好。”

“嗯。”

然后就没话了。她夹了块水煮鱼,吃了两口。我也夹了一块。鱼肉有点辣,我喝了口水。

中间她聊了聊最近工作上的事,说她们组新来了个实习生,啥也不会,天天问她问题。我听着,中间应了两声“嗯”“是吗”“那挺烦的”。她说完了,我也没接上什么。

“你呢?最近工作咋样?”她问。

“就那样。写代码。”

“忙不忙?”

“还行。”

“那你最近写啥呢?”

“就公司那些项目。后台系统。”

“哦。”她端起杯子喝了口水,没再问。

吃完结账,她说了句“今天谢谢了”。我说“应该的”。出了饭馆,她站在路边等车,我站她旁边。她扭头看了我一眼:“你回去吧,我自己打车就行。”我说“我陪你等”。她说“不用了,你回去吧”。我说“行”。走了两步,回头看了一眼,她已经低头看手机了。

回到家,我坐在沙发上,把晚上的对话在脑子里过了一遍。她问面馆的时候我没编,她问工作的时候我照实说了。WK-1替我说的话我一句都没想起来。我自己说的话,每一句都得想半天。想完了说出来,还是干巴巴的。

第二次约她是隔了五天。这五天我没闲着,翻了她朋友圈。她上周发了一张电影票,配文“周末看的,一般”。那部片子我知道,上映没多久。我又翻了翻影评,挑了几篇点赞高的看了,把情节梗概和几个反转点记了一下,寻思着吃饭的时候能聊几句。

约在周六中午,一家川菜馆。她坐下之后我主动开口:“你上周看的那部片子,是不是那个悬疑的?”

“对。你看啦?”

“没看。但我看了点影评,说结尾反转挺意外的。”

“是挺意外的。不过前面节奏有点拖。”

“对,我看影评也这么说。”

“你咋不看正片光看影评?”

“我寻思先了解了解,回头再去。”

她笑了一下,这回笑得稍微真了点:“你这个人还挺逗的。看电影先看影评。”

“怕看不懂。”

“悬疑片有啥看不懂的。”

“怕猜不着结局,看着着急。”

她笑了一声,拿起菜单翻了翻。气氛比上回松了一点。我心里稍微踏实了些。

菜上来之后,她主动问了句:“你除了写代码,平时还干啥?”

“也没啥。偶尔打打球。”

“什么球?”

“羽毛球。”

“打得好吗?”

“一般。瞎打。”

“那还行。我也打过一阵,后来不打了。”

“为啥不打了?”

“没人陪。同事都不爱动弹。”

“那你找我啊。我也打得一般,正好凑一块儿。”

话说出来了,我自己都愣了一下。这话不算油,也不算干,正好卡在中间。她看了我一眼,说“行啊,回头约”。

我心里热了一下。这大概是我自己说出来的第一句像样的话。

吃完出来,她站在饭馆门口,跟我说:“许梦阳,我跟你说个事。”

“你说。”

“你是个好人。”

我一听这开头,心里就凉了半截。

“但我找不到感觉。”她说,“我试了,真试了。上回见面完了我想,再给一次机会,万一熟了呢。今天出来之前我也想,聊得挺热乎的,再试试。你人真的挺好的,知道提前看影评,知道找话题,今天还主动说约着打球。我都看在眼里。”

她停了一下。

“但我跟你坐一块儿,聊天的感觉,跟那会儿在网上,不一样。我说不上来哪儿不一样。你人坐在我面前,我就在想,那两个月跟我聊天的,到底是谁。我知道是你写的程序,但我就老想这个事。一想这个,我就没法好好跟你说话。”

“感觉能慢慢培养。”我说。这话说出来我自己都觉得干。

“我不想培养。”她看着我,“我以前以为有。那两个月我以为有。后来发现没有。那个有感觉的人,跟面前这个人,不是一个人。你本人挺好的,但我骗不了自己。”

我站在饭馆门口,手揣在兜里,攥着钥匙串。她说了句“我先走了”,拦了辆车,走了。

回到家,我坐在电脑前。打开回收站,翻了半天,把那几个代码文件恢复出来了。WK-1.py、config.json、corpus.txt。没打开,就看着文件名。

WK-1.py里头那个空函数,我填了好几天才填满。corpus.txt里头喂的全是她发过的东西,每一条我都看过,看过还不止一遍。config.json里头那些参数,调性、语气、回复延迟,我调了十几版才调到“正好”。

我盯着这几个文件看了半天。把这些东西凑一块儿,弄出了一个她喜欢的人。那个人说的话都是我教的。它替我把那两个月聊下来了。她夸的是它,不是“我”。她怀念的也是它。

我右键点了一下WK-1.py,光标悬在“删除”上。停了一会儿,又挪开了。

关了电脑,去洗了个澡。出来的时候手机亮了一下,是她发的:“今天谢谢。你人真的挺好的。”我看了半天,打了“你也是”,发了。没再发别的。

那天晚上我躺床上翻来覆去。她说的“那个有感觉的人跟面前这个人不是一个人”在脑子里转了一晚上。

我把手搁在枕头底下,摸到手机,翻到跟她的对话框。往上翻了翻,翻到WK-1还在时候的那些聊天记录。她发“你声音真好听”。WK-1回“你声音也好听”。她又发“咱俩互相夸”。WK-1回“互相夸才能进步”。

我盯着这几条看了半天,把手机搁下,翻了个身。闭上眼,脑子里全是那两个月她发来的消息。“你今天咋没找我”“你太懂我了”“你声音真好听”。

那些话是冲“我”说的。但这个“我”是WK-1。我坐在屏幕前面,一句没插上。

8. 再也别联系

她约我出来那天,是周三。

消息是中午发的:“晚上有空吗?有些话想当面说清楚。”我盯着“说清楚”三个字看了半天,回了个“有”。她发了个地址,还是那家咖啡馆,晚上七点。

我到了之后她已经坐那儿了。面前没点东西,就搁着杯白水。我坐下,服务员过来,我说“跟她一样”。她看了我一眼,没说话。

“你说吧。”我开口。

她把手搁在桌上,十根手指头交在一块儿,看着我。

“许梦阳,我问你个事。你那天关掉那个程序之前,你想过问我一句吗?”

我想了想,说:“没有。”

“为什么没有?”

“我寻思着……那东西是假的。假的就该关。”

“假的就该关。”她重复了一遍,“你觉得它假,是因为它是你写的。你觉得它会替你说话,不算数。但对我来说,那两个月是真的。我每天跟它聊天,它每天回我。我说的事它记着,我没说的事它也惦记着。我半夜睡不着的时候手机亮了一下,是它。我加班到十一点到家,它问我到了没。这些事对我来说是真的。”

她停了一下。

“你关它之前,问过我一句吗?‘蔚空,那个程序我要关了,你同意不同意?’你问过吗?”

“没有。”

“你凭什么替我做决定?”

我张了张嘴,没说出话。

“你凭什么觉得真的你就比它好?”

“因为那是假的。”我说。

“假的给过我相濡以沫的感觉。”她说,“真的你呢?你坐在我对面,我找不到跟你聊天的那种感觉。不是我不要你,是你给不了。那两个月它给我的东西,你一样都给不了。”

“我可以学。”我说,这话说出来自己都觉得没劲。

“学什么?学怎么像它?”她看着我,“许梦阳,你学不像的。你就是你。你笨,你闷,你说话接不上茬,你见了面连句整话都说不利索。这些我都能接受。我接受不了的是你骗了我,又给不了我它给过的东西。”

“我……”

“你听我说完。”她打断我,“你写那个程序,是因为你觉得自己追不上我。对不对?”

我没说话,但脸上的表情大概已经回答了。

“你觉得你不行,所以写了个替你去行的。那个东西行了,你高兴了,你觉得有希望了。但你有没有想过,我要的不是一个‘行的’许梦阳,我要的是一个‘真的’许梦阳。哪怕那个真的笨,那个真的闷,那个真的连话都接不上。”

她拿起杯子喝了口水。

“你把那个真的藏起来了。你拿个假的出来。假的被发现了,你又把真的推出来说‘你看,真的在这儿’。你让我怎么接?我接那个真的,我脑子里全是那个假的。我接那个假的,可它是假的。你把我搁在一个两头都够不着的地方。”

我坐在那儿,手搁在膝盖上,攥着裤子。

“你知道最让我难受的是什么吗?”她问。

“什么?”

“是那两个月里,我跟我妈打电话,我说‘我认识个人,挺好的,特别懂我’。我妈说‘那带回来看看’。我说‘再处处’。我那时候是真高兴。我好久没那么高兴过了。”她声音低了一点,“后来我发现那个人不存在。你让我怎么跟我妈说?说‘妈,那个懂我的人是我同学写的一个程序,现在删了’?”

她低下头,搅了搅杯子里的水。勺子碰杯壁,叮叮响。

“许梦阳,我不是嫌你不好。你这个人,老实,踏实,有正经工作,对人也好。我要是不认识你,光看条件,挺好的。但咱俩之间那点东西,已经被你那个程序弄没了。我坐在你对面,我就忍不住想,那两个月跟我聊天的到底是谁。一想这个,我就没法好好看你。”

“那要是……没那两个月呢?”我问,“要是咱俩就从现在重新开始呢?”

她看了我一会儿,摇了摇头。

“没有‘要是’。那两个月已经发生了。你写了个程序,用我的名字、我的事、我说过的话,喂了它,让它跟我聊天。你把我当什么了?当个测试对象?看你的程序能不能跑通?”

“我没这么想。”

“你没这么想,但你这么做了。”她把杯子搁下,“你写那个程序的时候,有没有想过,我要是知道了会怎么样?你想过吗?”

我想了想。想过。但想的是“别让她知道”。

“你想的是‘别让她知道’。”她说,像看穿了我一样,“你没想过‘她知道了会怎么想’。你只想你自己。你想的是怎么让她跟你聊,怎么让她喜欢你。你没想过她知道了之后受不受得了。”

“对不起。”

“对不起没用。”她拿起包,站起来,“以后别联系了。”

“那同学群呢?”

“同学群我退了。”

她低头看了我一眼,然后转身往门口走。我站起来,叫了她一声:“蔚空。”

她停了一下,没回头。

“那个程序,”我说,“我删了。”

“我知道。”她说,“你删不删是你的事。那两个月你赔不了我。谁都赔不了。”

她推开门走了。门合上,外面的风灌进来一下,又没了。

我坐回椅子上。对面那杯水还在,她没喝几口。我端起自己的杯子,也凉了。

掏出手机,翻开跟她的聊天记录。往上翻,翻到最早那条——“翻到咱小学毕业照,你坐我前面,扎俩辫子。”她回了个“哈哈哈你还留着呢?”底下是WK-1替她接的“留着呢,压箱底”。

我盯着那条消息看了很久。WK-1写的每一句话,我都看过,有些是我定的调,有些是它自己生成的。但它替我说出来的那些话,确实是我心里想过但一直说不出口的。

我把聊天记录往上翻,一条一条看。翻到后来,她发“你声音真好听”那段。WK-1回“你声音也好听”。她说“咱俩互相夸”。WK-1回“互相夸才能进步”。她发了一串“哈哈哈哈”。

我把手机搁在桌上,往窗外看了一眼。外面路灯亮着,人行道上有人遛狗,有小孩骑自行车。咖啡馆里换了一首歌,还是爵士,慢的那种。

我坐了一会儿,把手机揣兜里,站起来往外走。走到门口又站住了,回头看了一眼那个靠窗的位置。她刚才坐的那把椅子,已经有人坐了,一个戴眼镜的姑娘,正低头看手机。

我推门出去,沿着路边走了一段。走到公交站坐下来。掏出手机,打开那个“wk”文件夹,里头就剩聊天记录的备份了。WK-1.py、config.json、corpus.txt,之前恢复出来的那几个文件还在。

我把光标挪到文件夹上,右键,弹出菜单,悬在“删除”上。

悬了几秒,挪开了。

9. 删不掉的聊天记录

她说了“以后别联系了”之后,我忍了三天没找她。

第四天没忍住。下班之后坐在家里,掏出手机,打开跟她的对话框,打了几个字:“那天的事,我再跟你说声对不起。”发出去之后,屏幕上弹了个红色感叹号,底下跟着一行灰字:“消息已发出,但被对方拒收。”

我盯着那个红色感叹号看了半天,退出对话框,进她朋友圈,一条灰线,底下写着“朋友仅展示最近三天的朋友圈”,但那条灰线底下什么都没有。

她把我删了。

我拨了个电话过去。响了四声,那头接了,没说话。我“喂”了一声,她把电话挂了。再打,响一声就断。拉黑了。

第二天我去了她公司楼下。她公司在城西一个创意园区里,一栋四层小楼,外墙刷的白漆。我六点到的,站在园区门口,靠着栏杆等。六点二十左右,她从楼里出来了,跟一个女同事一块儿走的,边走边说话,手里拎着个帆布袋。我往前迎了两步,叫了一声“蔚空”。

她听见了。扭头看了一眼,看见是我,脸上的表情变了变。然后她转回去,跟那个女同事说了句什么,两个人拐了个弯,从另一条路走了。她没回头。

我在园区门口站了一会儿,走了。

那之后又试了几回。发短信,不回。换个号打,听出是我,挂了。我去她公司楼下等过两回,她要么绕路走,要么直接不上来了。有一回她从后门出的,我没堵着。

第五天我没再去了。我坐在家里,把那几个恢复出来的文件打开,看着WK-1.py。代码还在。函数、参数、语料库索引,都在。我翻到注释那行:“// 如果我能替我自己追她,会怎么样。”光标停在那行字后面,闪。

我把代码窗口关了,打开聊天记录的备份文件。

几千条消息,按时间排列。我一条一条往下翻。

最早那条是WK-1发的:“翻到咱小学毕业照,你坐我前面,扎俩辫子。”她回:“哈哈哈你还留着呢?”WK-1回:“留着呢,压箱底。”她回:“压箱底翻出来干啥?”WK-1回:“怀旧。”

我往下翻。聊了三天之后,她开始主动发消息了。第一条主动发的是“你今天咋没找我”,WK-1回“忙了一天,刚闲下来。你今天咋样”,她回“我还以为你不理我了”。WK-1回“怎么会。我这不是来了吗”。她回“这还差不多”。

我又往下翻。她发了那张墨绿色卫衣的自拍。WK-1回:“甲方觉得你专业不专业我不知道,但你这颜色挺衬你。”她回“真的?我还怕太花了”,WK-1回“墨绿不花,显白”。她回了个害羞的表情。

接着翻。有天晚上她加班,WK-1说“别光吃冷的,加个关东煮”,她回“你怎么跟我妈似的”,WK-1回“那你听不听”,她说“听听听”。

再往下翻。她心情不好那晚,WK-1发的那段语音。我提前录的,练了好几遍。她听完回“你声音真好听”。WK-1回“你声音也好听”。她说“咱俩互相夸”。WK-1回“互相夸才能进步”。她发了一串“哈哈哈哈”。

再往下翻。穿帮之前那天,WK-1发了最后一条:“早点睡,明天降温多穿点。”她回了个“好”。

我把鼠标往下滑,滑到头,对话框结束了。没有新消息了。

我靠回椅子上,盯着屏幕。几千条消息,一条一条往下看,看了快两个小时。每一句话我都记得。不是WK-1替我打的那些话,是我看WK-1打出来之后、我坐在屏幕前面、心里想过但没打出来的那些。那些话跟WK-1说出来的话,差得不多。差的就是那几个字的距离。我打字慢。我措辞差。我说“那你早点休息”,WK-1说“别光吃冷的,加个关东煮”。我说话干巴巴,WK-1说话有温度。我心里那个想说的,跟WK-1替我说的,本来是一个东西。WK-1把它翻成了她爱听的话。我翻不出来。

我打开编辑器,把WK-1.py调出来。光标在文件第一行。我选了全文,按了删除。几千行代码变成了一片空白。屏幕上就剩一个untitled的空文件,光标在第一行闪。

我盯着空白文件看了几秒,按了Ctrl+Z。代码回来了。

我又选了一遍,又按了Delete。这回空白了,没按撤销。然后我把聊天记录拖进一个新建的文件夹里,文件夹命名为“wk”。

WK-1.py我删了。config.json删了。corpus.txt也删了。聊天记录留着。我寻思着这个大概是唯一留下来的东西——那两个月她说过的话,我回不了嘴的那些话,都在里头。我不舍得删。

我把那个“wk”文件夹拖进D盘最里头。外面套了个文件夹叫“2019归档”,再外面套了个“杂项”,再外面套了“备份”。一层套一层。我知道搁在哪儿就行了,不指望再看。

关了电脑,去洗了个澡。出来的时候手机亮了一下。我拿起来看,是同学群里的消息。李小燕发的:“下个月十五号,同学聚会,老地方,都来啊。”底下几个人回“收到”。我翻了翻群成员列表,蔚空已经不在了。之前没注意,这会儿才看见,列表里少了一个人。

我没在群里说话。把手机搁床头,躺下来。闭了眼,脑子里还是那些聊天记录。她发“你声音真好听”的时候,WK-1回的那句“你声音也好听”,我录音录了好几遍。有一遍录得太温柔了,我自己都觉得不像我,删了。有一遍录得太硬了,像在念稿,也删了。录到最后那一遍,我掐着嗓子,把声音放软了,说完还听了一遍,确认不像我,才发出去。她说真好听。那声音是我嗓子眼儿里出来的,但不是我说话的样子。

第二天上班,我在工位上坐着。老周在旁边敲代码,敲了一会儿扭头问我:“你前两天是不是去城西了?我在你们家楼下看见你往外走。”

“办点事。”

“什么事跑那么远?”

“见个人。”

“见谁?”

“一个老同学。”

“哦。男的女的?”

“女的。”

老周看了我一眼,没再问,转头接着敲代码了。过了一会儿他又转回来:“你这两天情绪不太好?”

“没有。”

“有。你敲代码的节奏都变了。平时你敲得快,啪啪啪的,这两天你敲得慢,经常停下来发呆。”

“我调bug呢。”

“调bug你也不发呆啊。你平时调bug骂骂咧咧的,这两天不骂了。”

我没接话。老周等了两秒,拍了拍我肩膀:“有啥事别憋着,下班喝一杯也行。”我说“行,再说”。

他没再追问。我转过头对着屏幕,敲了几行代码,删了。又敲了几行,又删了。

手机在桌上震了一下。拿起来看,李小燕在群里又发了一条:“那个,谁有蔚空新微信的,拉她进群啊。”底下有人说“她退了”,有人说“不知道咋退了”,有人说“可能不想来吧”。李小燕说“那算了”。

我把手机扣桌上,盯着屏幕上的代码。

下班前,老周敲完最后一行,关了电脑,站起来收拾包:“走不走?喝一杯。”

“不去了。”

“真不去?”

“改天。今天想早点回去。”

“行吧。”他拍了拍我肩膀,走了。

我坐了一会儿,关了电脑,收拾东西。走到电梯口的时候,手机亮了一下,以为是群消息,掏出来看,是个陌生号发的短信:“许梦阳,我是蔚空的同事。她让我跟你说一声,那个同学群她退了,不打算加回来了。她也不想加任何同学了。就这样。”

我站在电梯口,打了几个字“谢谢你”,发了。电梯来了,我进去,按了一楼。

到了一楼,出了写字楼,风挺大。我站在门口把外套拉链拉上,掏出手机。翻了翻通讯录,找到“蔚空”那栏。按了编辑,手指头停在删除键上。停了一会儿,退出来了。

没删。放着吧。

尾声

蔚空删了许梦阳那天晚上,回家喂了猫,洗了澡,看了会儿综艺,十一点上床睡了。

第二天早上七点半闹钟响,她起来洗脸刷牙,对着镜子拍了点水,看了看自己的脸。跟平时没什么两样。她煎了个鸡蛋,烤了两片面包,吃完出门上班。地铁上刷了会儿短视频,到站下车,打卡,坐到工位上,开始改方案。

中午吃饭的时候,同事问她“你那个老同学最近咋样了”。她夹了一筷子菜,嚼了两口,说“没咋,不合适”。同事说“咋不合适,不是聊得挺好的吗”。她把菜咽下去,说“聊得挺好是网上,见了面不行”。同事说“网上聊得好见面崩的多的是,你也别太挑”。她说“没挑,就是没感觉”。同事没再问了。

下午她改了一版方案,甲方说不行,又改了一版。改到六点多,领导说“明天再弄吧”。她关了电脑,收拾东西回家。路上经过那家咖啡馆,她看了一眼,没停,走过去了。

晚上到家,猫蹲在门口等她。她蹲下来摸了摸猫脑袋,猫翻了个肚皮给她。她挠了两下,站起来去厨房弄了点吃的。一个人的饭好做,下了点面条,搁了点青菜,窝了个鸡蛋。端着碗坐在沙发上,打开电视,找了个综艺放着,一边吃一边看。看了半集,不知道看的什么。

手机搁在茶几上,一直没响。她拿起来看了一眼,没有新消息。她翻了翻微信,划到跟许梦阳的对话框,那上头还挂着红色感叹号。她点进去看了一眼,最后一条是她发的“你赔我”,底下跟着系统提示“消息已发出,但被对方拒收了”。她退出去了。

过了几天,她把她跟许梦阳的聊天记录从微信里导了一份出来。她也不知道自己为什么要导。可能是想留个纪念,可能是想看看自己到底跟那个人聊了什么。两个多月的聊天,导出来之后她从头到尾翻了一遍。翻到WK-1说“别光吃冷的,加个关东煮”那段,她盯着看了一会儿,往后翻了。翻到WK-1说“墨绿不花,显白”那段,她又看了一会儿。翻到那段语音,“今天这事不赖你,你什么人我知道”,她点开听了一遍,又听了一遍,第三遍的时候把手机搁腿上了。

她坐在沙发上,猫趴在她腿边。窗外楼下有人在遛狗,狗叫了两声。她低头看着手机屏幕,聊天记录停在WK-1说“早点睡,明天降温多穿点”那条上。她忽然想起来,那天晚上她收到这条消息的时候正在加班,看到之后回了个“好”,然后收拾东西回家了。路上风挺大,她缩着脖子走,心里挺暖的。那种暖烘烘的感觉她记到现在。现在看那条消息,暖劲还在,就是底下凉了。

她妈打电话来那天是周末。她正窝在沙发上刷手机,她妈问“这周回来不”。她说“不回了,这周累”。她妈说“那行,你歇着吧”。顿了一下又问,“那个老同学咋样了,上回你说聊得挺好的那个”。她捏着手机,想了两秒,说“没成”。她妈问“为啥”。她说“不合适”。她妈说“哪儿不合适”。她说“见了面没感觉”。她妈说“没感觉就再处处呗,哪能一见面就有感觉”。她说“处了,还是没感觉”。她妈叹了口气,说“行吧,你自己看着办。你也不小了”。她说“知道了”。

挂了电话之后她把手机搁在膝盖上,猫从沙发扶手上跳下来,蹭了蹭她胳膊。她伸手摸了摸猫脑袋。

过了一会儿她又把聊天记录翻出来了。这回她没从头翻,翻到中间一段,是她加完班回家的那天晚上。她发了句“到家了”,WK-1回“行,睡吧。晚安”。她回了个晚安表情。就这几句。她看了好几遍。她知道这几句话是程序发的,但她记得那天晚上她收到这几句话之后确实睡得踏实。踏实是假的吗?她自己也说不清。

她翻了翻通讯录,想找个人说说话。翻到大学同学,想了想没点。翻到同事,觉得不合适。翻到她妈,知道说了也是白说。最后把手机搁茶几上了。电视还开着,放的什么没注意。她坐了一会儿,站起来把碗洗了,又坐回来。

猫跳到沙发上,趴在她腿上,呼噜打得很响。她摸着猫后背,低头看它,猫眯着眼,一脸舒坦。她说“你倒是没心事”。猫没理她。

她拿起手机,又翻到聊天记录备份,翻到最早那条:“翻到咱小学毕业照,你坐我前面,扎俩辫子。”底下她回“哈哈哈你还留着呢”。

她盯着这两条消息看了半天。打了几个字“你赔我”,光标闪了闪。她没发,也发不出去。打了删了,又打了又删了。最后把手机放下了。

猫在她腿上翻了个身,叫了一声。她把猫抱起来,脸埋进猫毛里。

沪ICP备16008431号-1

本站所有内容都已取得正版授权,且不适合未成年人观看。版权声明 - 投稿声明 - 自审制度 - 免责声明