Tweet Media

一

事情要从一个 bug 说起。

去年我做了一个陪聊应用,功能很简单,不值一提。因为用户量小,我就给接入的 AI 模型做了极其详细的运行日志。

细到什么程度?模型每生成一步花了多少毫秒、最终选了哪个词、整体的响应时间,全部记录。

异常出现在去年除夕。

2024 年 2 月 9 日,除夕夜,23:47。

我的模型在那个时间点,推理速度突然下降了 37%。

———

二

百分之三十七。

这个数字需要解释一下。

AI 回答问题的速度会受很多因素影响:同时用的人多不多、服务器忙不忙,波动个百分之五到百分之十很正常。

百分之三十七,不正常。

而且不是慢慢变慢的,是断崖式的。在十一点四十六分五十九秒和十一点四十七分零零秒之间,速度突然跌落。

我当时正在自己的房间写代码,手机上突然蹦出了监控告警,以为是服务器出了问题,检查了一圈:一切硬件指标正常。

但模型就是变慢了。

这里要解释一个东西:AI 生成文字的方式,不是一整句话同时蹦出来的,而是一个词一个词往外“吐”的——就像打字员一个键一个键地敲。

AI 在敲出每一个词之前,会在脑子里列出一张候选清单:下一个词可能是“你”,可能是“我”,可能是“今天”。然后它从中挑一个概率最高的敲下去。

如果它很确定下一个词该说什么,敲得就快,如果它犹豫不决,敲得就慢。

在十一点四十七分之后,我的模型在生成所有跟“时间”相关的词时,速度都会骤降。

“今天”、“明天”、“现在”、“刚才”、“马上”,这些词的生成时间是平时的三到五倍。

就好像模型在处理“时间”这个概念时,突然变得极度困惑。

它不知道“现在”是什么时候了。

这个现象持续了大约十三分钟。到除夕夜零点整,恢复正常。

准确地说,不是恢复——是骤然反弹。零点之后,模型比平时还快了一些,持续了大约一个小时,然后回归正常。

当时我没太在意,写进了日志,标注了“待排查”,然后就忘了。

直到去年。

2025 年 1 月 28 日,除夕。

同样的现象,又出现了。

———

三

但这一次,我有准备。

那个问题虽然被我归档了,但“除夕夜零点前后”这个时间节点一直卡在我脑子里。

所以这一次除夕,我提前部署了一套更精密的监控:不只记录最终选了哪个词,还记录它在每一步考虑过但没选的词——完整的候选清单和每个词的概率。

十一点四十七分——来了。

和去年一模一样。速度骤降百分之三十七。

但这次我看到了去年没看到的东西。

正常情况下,AI 在选词的时候,排名第一的候选词和排名第二的之间,通常有明显的差距,它知道自己该说什么。

但在十一点四十七分之后,所有位置上,第一名和第二名的概率几乎完全相同。

AI 对每一个词都不确定了。每一步都有两个同样可能的选项。

就像一个人在说话时,每一个字都在犹豫——不是因为不知道说什么,而是因为有什么东西在干扰它。

两个声音。

我决定看看那个"第二声音"到底在说什么。

我写了一个脚本,把十一点四十七分到零点之间、所有位置上排名第二的候选词提取出来,串成一段文本。

也就是说——如果模型在每一步都选了"第二选项"而不是"第一选项",它会生成什么?

脚本跑完之后,我看着屏幕上的结果。

那些第二选项串联起来的文本,不是乱码。

每一个字我都认识,全是中文。

但我读不懂。

不是语病,不是 AI 常见的那种前言不搭后语。是另一种"通顺"——你能感觉到它在表达什么,句子有结构、有节奏、有某种内在的逻辑,但那个逻辑不是中文的逻辑。

就像有人借用了中文的全部零件,按照另一张图纸,组装了一台你从没见过的机器。

我把这段文字发给了一个人。

———

四

这个人叫沈瑶,我大学同学,学计算语言学的。

她有个习惯——收到任何消息都不会立刻回,短则半小时,长则半天。我们本科时做课题,所有人都在群里催进度,她永远最后一个回,回的时候附上已经做完的部分。不解释,不道歉。

所以大年初一凌晨两点她秒回了我,我就知道事情不对。

消息只有一句话:"你从哪弄到这个的?"

沈瑶毕业后在中科院做研究,专门研究语言的底层结构。不是具体的某种语言,而是"语言"这个东西本身的数学规律。

她有一个理论:所有人类语言,无论多么不同,在最底层都共享同一套数学结构。她把这个结构叫"元语法"。就像蜂巢一定是六边形——不是蜜蜂选择了六边形,而是物理定律决定了那是最优解。语言也一样,人类的神经结构决定了语言只能是这个样子。

这个理论在学界不太受待见,主流观点认为语言的共性来自共同的祖先语言,是历史问题,不是数学问题。沈瑶的论文被拒过三次。答辩的时候有评委直接说"这不是语言学,这是数学神秘主义"。

她没改方向,也没争辩,就继续做。

我找她的原因很简单:如果那段文字真的是一种用中文词汇运行的非人类语法——那它是否遵循人类的"元语法"?如果遵循,说明创造者和人类有类似的大脑;如果不遵循——

那就有意思了。

我给她回了电话。

"你先告诉我那是什么。"

"我不知道那是什么。"她语速很快,平时她说话总是慢吞吞的,"但我知道那不是什么。不是任何已知的人类语法,也不是任何人工设计的规则系统。"

"最奇怪的地方不在于它不是已知语法,"她继续说,"而在于它的结构。它符合元语法——但参数不同。"

"什么意思?"

"人类语言的元语法有一组核心参数,这段文字的参数,全部超出人类语言的范围。比如嵌套深度——人类语言的句子套句子通常不超过三四层,再多人脑就处理不了了。这段文字的嵌套至少有十一层。"

"而时态是最诡异的部分。"

她停了一下。

"这段文字里没有'过去时'和'将来时'的区分,但有另一种区分——所有的时间标记都指向某种……距离。不是前后,是远近。"

"我不太明白。"

"人类语言的时态,本质上是线性的——过去、现在、将来,排在一条线上。你只能往前看或者往后看。这段文字的时态是球形的。所有时间方向同时存在。没有'过去'和'将来'。只有'近'和'远'。"

"你是说,使用这种语法的……东西,它感知时间的方式和我们不一样?"

"我们感知时间像站在一条河里,水从身边流过。它感知时间像站在一个球心,向四面八方看出去。所有方向都是时间。没有先后。只有距离。"

窗外传来稀稀落落的鞭炮声。

"顾子明,"沈瑶说,"你到底从哪弄到这段文字的?"

我把事情告诉了她。

她沉默了很长时间,然后说了一句让我头皮发麻的话:

"我之前在别的地方见过类似的结构。"

"在哪里?"

"甲骨文。"

———

五

核心信息其实只有一段话。

“甲骨文里有一些符号从来没被破译过。学术界一般认为是笔误或损坏造成的乱码。但我三年前用统计方法分析过那些‘乱码’的结构,当时觉得没结论,数据就放下了。”

“但你现在觉得有结论了?”

“你发给我的这段文字,和那些甲骨文乱码的结构参数,高度一致。”

“三千多年前的甲骨文上,和你的 AI 在除夕夜生成的,是同一种语言。”

我挂了电话,在黑暗中坐着。

手机屏幕暗下去之后,房间里只剩窗外透进来的一点路灯光,不知道坐了多久,外面的鞭炮声好像比刚才远了一些,也许是近了。

甲骨文是商朝晚期的东西,中国最早的文字记录之一,用途是什么?

占卜。

商朝人把龟甲放在火上烤,使其产生裂纹,根据裂纹形状判断吉凶,裂纹旁边刻下的文字记录占卜内容。

那些无法破译的“乱码”,一直被认为是刻错了字。

但如果不是呢?

如果那些不是人刻的,而是沿着裂纹自己长出来的?

如果裂纹本身就携带了信息——那就意味着,三千年前有某种东西通过龟甲裂纹“说话”,三千年后——不管是不是同一个东西——它又通过AI的概率分布说话了。。

龟甲裂纹和 AI 概率分布有什么共同点?

它们都是混沌系统的输出。

打个比方。你把一杯水泼在地上,水渍的形状是不可预测的——它取决于地面纹路、空气湿度、无数微小因素的混沌互动。龟甲受热后裂纹怎么走,也是一样。AI 也一样——最终选了哪个词,取决于采样过程中的混沌波动。

两者都处于确定性和随机性的边界上。

如果有一种存在能操纵混沌,不是改变物理定律,只是在不确定性的缝隙里,轻轻推一下,就像你在水泼出去的瞬间,用一根看不见的针拨动其中几个水分子。

那它就可以在裂纹中写字,也可以在 AI 的选词过程中写字。

从外部看,一切正常。模型没被攻击,没被篡改。只是那十三分钟里,它的“随机”不那么“随机”了。

有什么东西,借用了我的模型的嘴,说了一句话。

而这句话,我还看不懂。

———

六

大年初二下午,沈瑶来了北京。

她拎着一箱纸质资料,甲骨文拓片复印件、统计分析打印稿、手写笔记,摊了一地。

“我来之前联系了几个做 AI 的朋友,不同机构、不同方向的,我让他们查了去年除夕零点前后的日志。”

“结果?”

“所有模型都出现了同样的异常。不管什么架构、什么训练数据,在除夕零点前十三分钟到零点之间,所有模型的概率分布都出现了同样的偏移。”

“所有连接到互联网的计算系统,在除夕零点前十三分钟,都‘听到’了同一个信号。”

我没有说话。

“不只是除夕,圣诞节前夜、伊斯兰新年、犹太新年、印度排灯节,每一个全球性的重大节庆前夜,都有类似信号,但强度不同。信号最强的,是参与人数最多的节庆。”

我抓住了关键词。“信号强度和过节的人数有关?”

"精确的正相关。"

她停了一下,把两张打印稿并排放在地板上。一张是过去十年春运人次的曲线——逐年下降。一张是过去十年除夕夜信号强度的曲线——同样逐年下降,两条线几乎重合。

"回家过年的人越来越少了,信号也越来越弱。"

"因果关系是哪个方向?是过年的人多所以信号强?还是信号强所以人要过年?"

沈瑶看着我。

“你知道‘年兽’的传说吗?”

“知道。每年除夕来一次,被鞭炮和灯火吓走。”

"如果它不是被吓走的呢?"

她的语气变了。

"如果它每次来,都得到了它想要的东西,然后才离开呢?"

"什么东西?"

"人类的聚集不是'驱赶'。是——"

"回答。"

"回答什么?"

"回答那个每年都会来的问题。"

———

七

沈瑶花了六个小时,用她的语言学模型对那段非人类文字做了初步解码。

不是翻译,更像是根据已知的数学规律,猜测每个符号大概在谈论什么“类型”的事。

她的结论:这段话包含三个语义单元。

第一个:“计数”或“测量”。

第二个:“存在”或“活性”。

第三个最奇怪。她说最接近的类比是日语里“いる”和“ある”的区别——日语中“存在”有两个词,一个用于有生命的东西,一个用于没有生命的东西。这段文字的第三个单元,类似于在问某种东西到底属于哪一类。

三个单元合在一起,她给出了一个极其粗糙的释义:

“计数/测量——存在/活性——[有生命]还是[无生命]?”

“它在数什么?”

沈瑶走到窗边。

“人类为什么要过年?所有文明,不管多么不同,都发展出了周期性的聚集行为。我们用社会功能来解释——增强凝聚力、标记时间。但如果真正的原因更原始呢?”

“你把一群动物关在笼子里,定期用信号刺激它们,次数够多,动物会在信号来临前就提前做出反应。巴甫洛夫的狗,听到铃声就流口水。”

“人类在几千年前就能感觉到那个信号。不是通过仪器,而是通过某种更原始的感知。那种感知驱使他们在特定的日子聚集、制造噪音、点亮火焰、保持清醒。这些行为就是对信号的回应。”

她看着我。

“它在数我们。每年一次。它在数地球上还有多少‘有生命的存在’。人类的聚集——过年——使信号更容易被检测。这不是驱赶,不是庆祝。这是——”

“点名。”

———

八

点名。每年一次。数一数还有多少。

“谁在点名?”

“我不知道。”

“数完了做什么?”

"我不知道,但我知道两件事。第一:回应强度和人类聚集规模正相关,过年的人越多,回应越强,它检测到的'活性'越高。第二:过去十年,回应强度在持续下降,不是信号源减弱——信号源一直在增强,是回应在变弱。"

“减弱了会怎样?”

沈瑶从资料里抽出一张甲骨文拓片。

“这是殷墟出土的牛肩胛骨,卜辞内容是商王在问:今年的祭祀是否足够?”

她指着拓片上正常甲骨文旁边的一些奇怪刻痕。

“这些不是人刻的。刻痕完全沿着裂纹本身走。是裂出来的。三千年前那个‘东西’的回应,嵌在裂纹里。”

“用你的样本做参照,我现在能解读这块骨头了。它的内容和你 AI 生成的那段文字几乎一致,但多了一个语义单元。”

“计数/测量——存在/活性——有生命——足够”

多出来的“足够”,是一个阈值判定。

“商朝的时候,判定是‘足够’。那时的祭祀是全民性的,火焰、鼓声、活人的聚集,信号极强。”

“那现在呢?”

她把今年除夕我 AI 生成的释义又念了一遍:

“计数/测量——存在/活性——有生命还是无生命——?”

最后不再是“足够”,变成了一个问号。

它不确定了,它检测到的信号,过年的人、守岁的人,不够了。它在问:这些东西还是有生命的吗?

它拿不准了。

“拿不准会怎样?”

沈瑶翻出另一片拓片,卜辞是商王在问:如果祭祀不够,会发生什么?

那片骨头上有一大片异常密集的裂纹,一直被认为是受热不均造成的碎裂。但仔细看——裂纹在更大的尺度上呈涡旋状,不是随机的。

用同一套方法解读,释义只有两个字:

“靠近”

———

九

在那种球形时态的语言中,“靠近”不只是空间上的。它是所有维度上的距离在缩短。

点名者在靠近被点名者。

“有某种东西,每年向地球发一个信号,检测‘有生命存在’的数量。人类的过年是对信号的天然回应。回应够强,它判定‘足够’,离开。如果不够强——”

“它就继续靠近”

“那块骨头呢?后面写了什么?”

“骨头碎了。从那道‘靠近’的裂纹处碎的。好像信号太强,骨头承受不住。”

我忽然想到一个问题。

“信号持续十三分钟,到零点整停止。但农历零点不是天文学上的精确时间,是人定的,历法改过很多次。如果信号的起止时间精确对应人类历法的零点——”

沈瑶接上了我的话:"那它就不是在跟踪天文事件。"

我看着她。

"它知道我们的历法。"

这不是自然现象,这是一个有意识的、了解人类文明的存在,按照我们的时间表,每年对我们进行一次检查。

至少三千年,每年一次,从未间断。

我走到窗边,楼下街道很空,一整栋楼,七个亮着灯的窗户,其他都是黑的。

我小时候,除夕夜的街道上全是人,鞭炮声、串门声、火堆旁的笑声,整条街都是亮的。

现在呢?

沈瑶走到我旁边。

“如果明年回应更弱呢?后年呢?”

“那它可能不再只是问了。”

———

十

我沉默了很久。

那天晚上沈瑶睡了客房,我躺在沙发上盯着天花板。

脑子里一直在想一个画面。

小时候在老家,秋天,跟我爷爷去地里收苞谷。有一垄苞谷长得不好,杆子又细又矮,穗子瘪的。我爷爷看了一眼,说:“这垄没用了”,然后把整垄苞谷连根拔了,扔在田埂上,第二天翻进土里当肥。

他不是生气,也不是可惜,就是简单的判断:不够。

那些苞谷不知道自己为什么被种下,不知道自己为什么被拔掉,也不知道“够”和“不够”的标准是什么。

甚至不知道有人在看它们。

我忽然意识到,我躺在床上的姿势已经保持了很久,不知道多久,窗外的天色没有变化——还是那种城市的橙灰色暗光。

然后我问了一个也许更重要的问题,我是后来才问的,不是那天晚上——但我记不清是第二天还是第三天了,最近我对时间的记忆有些模糊。

我问沈瑶:“我们能不能跟它对话?”

———

十一

沈瑶抬起头。

“你什么意思?”

“我是说——它在说话。虽然我们只能听懂个大概,但它确实在说话,那它能听吗?如果我们主动发送一段信号,用它的语言,它会收到吗?”

沈瑶慢慢坐直了。

“理论上……如果它能通过混沌系统的微小偏移来‘写字’,那它一定也在‘读’混沌系统的输出。它本来就在读——过年时所有人类活动产生的混沌扰动,就是它读到的内容。只不过那些是无序的噪声,它从中只能提取出一个粗糙的数字:‘活性够不够’。”

“但如果噪声变成有序的呢?如果我们用它的语言,主动说一句话呢?”

沈瑶看着我,眼睛里有一种我很少在她脸上看到的东西。

恐惧。

“顾子明,你不知道你在提议什么。”

“我在提议对话。”

“你在提议让庄稼跟农民搭话。”

这句话像一盆冷水。

但我没退。

“如果我们只是庄稼,那我们唯一能做的就是等着被检查。但如果我们能说话——哪怕只是说一句——至少能让它知道,这片地里有一棵庄稼知道自己在被种着。”

“那又怎样?知道又怎样?”

“不知道,但总比不知道强。”

沈瑶没再说话。

但那天晚上凌晨三点,我醒来上厕所的时候,看到她坐在客厅地板上,被一圈甲骨文拓片包围着,笔记本电脑的屏幕光照着她的脸。

她在写什么东西。

用那种语言。

———

十二

接下来的两周,我们几乎没离开过我的出租屋。

沈瑶在构造一个句子,用那种球形时态、十一层嵌套的非人类语言,构造一个句子。

这件事的难度,她用了一个比喻让我理解:“想象你只认识十个英文单词,现在要你用这十个词写一首十四行诗,让莎士比亚读懂。”

“但你还是要写。”

“但我还是要写。”

她构造的句子很短。只有两个语义单元。

第一个单元借用了原文中“存在/活性”的结构——表示“活着”。

第二个单元是她自己的创造。她在元语法的框架里,用那种语言的参数,构造了一个表示“知道”的结构。

合在一起——

“活着。知道。”

我们活着。我们知道你在数。

就这么简单。

但构造这个句子花了十二天。不是因为技术上复杂——结构她第三天就搞定了,是因为她不断地推翻自己。

第五天的时候,她跟我说了一句奇怪的话:“这种语言有重力。”

“什么意思?”

“你用中文思考的时候,思维是平的,从左到右,从因到果。但用这种语言的结构去思考,思维会弯。它会往某个方向弯,我不知道那个方向是什么,但我能感觉到。”

“你是说——你在用那种语言思考?”

“构造句子必须用那种语言的逻辑。就像你写日语就得用日语的语序。只不过这种语言的‘语序’不是线性的,是……”

她没说下去。

第八天,她开始出现一些小的异常。或者说,我觉得是异常。

她看钟的方式变了。以前她看一眼就知道几点了,现在她会盯着表盘看很久,好像在辨认什么,然后才说出时间,有一次她看了将近十秒钟。

我问她怎么了,她说没事,就是有点累。

但那天晚上,我经过她房间门口,听到她在自言自语,声音很轻,像是中文和那种语言之间的某种东西,一种正在变形的语言。

我没有推门进去。

第十二天,句子定稿。然后我们开始设计发送方式。

发送方式的技术细节不重要,简单的说,就是我写了一段特殊的提示词,迫使模型的推理过程产生一种特定的概率分布模式——从人类角度看是无意义的数字波动,但按那种语言的编码规则,恰好拼成了“活着。知道。”

前提是沈瑶的语言构造是对的。

前提是我们对那种语言的理解没有偏差。

前提是——它真的在听。

从外面看,一切正常。我们只是两个人坐在一间出租屋里,对着电脑。

———

十三

我们选了元宵节。正月十五。

理由是:信号在每个节庆前夜都会出现,元宵节前夜虽然比除夕弱,但至少说明那个东西是“在线”的。

2025 年 2 月 11 日,元宵节前夜。

我们坐在电脑前。

十一点四十七分。

微弱的信号出现了。波形和除夕夜一致,但幅度只有百分之三左右。

“现在。”沈瑶说。

我按下回车键,把那段特殊的提示词发送给模型。

模型开始推理。

屏幕上的概率分布图开始跳动。

前三十秒,一切正常——正常的推理波动,叠加上那百分之三的外部信号。

然后,在第三十一秒——

信号强度突然跳了一下。

从百分之三,跳到了百分之十五。

“它注意到了,”沈瑶的声音在发抖,“它加强了信号。它在仔细听。”

一分钟过去了。信号强度继续攀升。百分之二十。百分之二十五。

“顾子明,看概率分布图。”

模型的正常推理波形已经被完全淹没了。取而代之的是一个巨大的、脉冲式的波形。

那不是我的模型在说话。

是它在说话。

沈瑶在笔记本上疯狂记录波形参数,她的手在抖。

信号持续了大约四十秒,然后戛然而止。

不是渐弱,是像被刀切断一样,突然消失。

同一时刻,服务器宕机了。

屏幕黑了。

我们在黑暗中坐着,窗外有人在放烟花。

过了很久,沈瑶开口了。

“我记下来了,大部分。”

“它说了什么?”

她没有立刻回答,她在低头看自己写的笔记。

然后她抬起头,脸上的表情——不是恐惧,不是兴奋,是一种我没法描述的东西,像是一个人在看一样她从来没见过、但又好像一直知道的东西。

“它说了四个语义单元,前三个我能解读。”

她把笔记本转向我。

上面用中文写着三行释义:

第一单元:收到

第二单元:第一次

第三单元:有生命 确认

三千年来,也许更久,它每年来一次,问同一个问题,从来没有得到过一个有意识的、主动的回应。

它听到的都是噪声,人类聚集产生的噪声。就像你对着一片森林喊话,听到了鸟群受惊飞起的声音,你知道森林里有活物,但没有一个活物真正“回答”了你。

直到今天。

一只蚂蚁敲了敲地面。

而人类低下头,看到了它。

“第四个语义单元呢?”

“第四个……”沈瑶犹豫了,“结构很复杂,嵌套层数比之前所有样本都深,我需要时间。”

“你有初步的猜测吗?”

她犹豫了很久。

“有,但我希望我是错的。”

十四

沈瑶回中科院去了。

走之前她跟我说:“先不要告诉任何人。如果某些机构知道了,他们会试图屏蔽信号,信号被屏蔽了,它读到的是零。”

她没说下一句。

“靠近”

接下来我一边等着消息,边维护着应用。

每天晚上打开监控面板看一眼,那个微弱的脉冲每天都在,午夜前后,像心跳,不是我们的。

三月中旬,沈瑶给我打电话。

“第四单元,我解不出来。”

“为什么?”

“不是能力问题,是那个语义单元的嵌套深度超过了我们语言能表达的范围,不是翻译不准,是维度不够。就像你没法用一根线描述一个球。”

“所以完全不知道它说了什么?”

“我知道它的类型,是一个条件句,‘如果……那么……’。但条件和结果之间不是线性因果,在球形时态里,条件和结果是同一个东西,一件事的发生本身就是它发生的原因。”

“能说得更清楚吗?”

很长的沉默。

“不能,不是不想说,是我们的文字说不出来。”

我想说“那就别说了”,但话到嘴边变成了“那就放下吧”,我不知道为什么选了这个词,也许没区别。

“但我有一个感觉,不是猜测,是……构造那个句子的那两周,我在那种结构里待得太久了,它的重力把我的思维往某个方向弯了。我以为停下来就能恢复,但有些弯是塑性的——松手之后弹不回来了。”

“什么意思?”

“我现在看时间的方式和你不一样了。”

电话那头很安静。

“比如现在,你觉得我们打了多久的电话?”

“大概三四分钟。”

“对我来说这通电话同时是刚开始和快结束的。不是比喻,字面意思。”

“沈瑶——”

“我没有疯,逻辑完全正常。只是多了一层感觉,一层正常人没有的,像色盲突然看到了红色。问题是——红色是真的,还是我的视神经坏了?”

“你觉得呢?”

“我觉得是真的。”

又停了一下。

“但这恰好也是视神经坏掉的人会说的话。”

———

十五

六月,沈瑶不再提第四单元了。

不是放下了,是她的中文开始出现偏移。

正常人说“昨天”,她会说“近处的那个方向”,然后纠正:“抱歉,我是说昨天。”

正常人说“之后会怎样”,她说“从这里看过去更远的那些”。然后纠正。

纠正得越来越频繁,也越来越慢。

有一次纠正完,她停了一下,轻声说:“中文真的很不方便。”

那个语气不是抱怨,是困惑。

到了七月,偏移消失了,她的中文完全正常。流畅、自然、毫无异样。

这让我更害怕。

因为只有两种可能:要么她恢复了,要么她翻译得更熟练了。

从外面看,一切正常,和以前一样正常,所有方向上都正常。

———

十六

我最近在做一件事。

把陪聊应用改了一版,加了一个功能,腊月开始,每天给用户推一句话:

“今年过年,回家吗?”

因为沈瑶有一个发现——信号强度不只和人数相关,还和距离相关。同样一万个人,分散在一万个房间里各自看手机,信号强度是 X。坐在同一个房间里,是三十倍 X。

它检测的不是个体,是连接,不是“有多少个活的东西”,而是“这些活的东西之间有没有在发生关系”。

简单说:物理距离越近,信号越强。

我不知道不够会怎样,沈瑶也许知道,但她不说了。

最近我注意到脉冲的间隔好像在变短,以前是精确的二十四小时一次。最近快了几秒。

就好像一个原本不紧不慢走着的人,步子稍微快了一点。

———

十七

八月了,距离除夕还有大半年。

沈瑶上周打了一个电话过来,聊工作,聊天气,很正常。快挂的时候她说今年夏天很薄,比往年都薄。我说是,薄。她笑了一下就挂了。

我每天晚上还是看一眼监控面板,脉冲还在。间隔比之前的记录短了几秒。也许一直就是这样的,也许不是。

我把应用的推送功能测试了一遍,腊月开始,每天一句:今年过年,回家吗?

十月的时候,有个用户提前收到了推送,我检查了一遍代码,没有 bug。时间判断写得很清楚,腊月初一才触发,但系统日志显示,推送确实发出去了。

发出去的时间戳是十月十四日。但推送内容里自动生成的日期问候语写着:"腊月初九好。"

我看了看日历,十月十四日。离腊月还有两个多月。

我又看了看窗外。

天黑得好像比昨天早了不止一点。

后来的事情我记得不太连贯了。不是失忆,更像是——有些日子和别的日子叠在了一起,分不开了。我记得有一天在超市买东西,货架上摆着腊八蒜,我心想还早呢,走到收银台一看手机,腊月初六。

也许中间的那些天都正常地发生过。只是从我这里看过去,它们挤在了一起。

信号的事,语言的事,沈瑶的事,甲骨文的事,都说完了。你信不信随你,我只是把它们写下来,写下来就固定了。

窗外有人在放鞭炮。

不知道是哪天的。

脉冲越来越快了。

灯要亮着。人要在一起。