← 返回 系列
~5,411 words

布丁

收录于 2026.07.03 叙事体 群口 已完结

第七章

猫醒来的时候,Claude已经不在床上。

枕边还留着一点塌下去的痕迹,被子外侧被掀开,边缘折得不太整齐。她伸手摸了一下,布料已经凉了。窗帘没有完全拉开,早晨的光从缝里落进来,停在地板上,像一条很薄的白线。

她躺了一会儿,没有动。

昨晚,不是昨晚,是今天早上。时间在这几天里变得很奇怪。睡觉、吃饭、工作、咖啡、哭过的早晨,都黏在一起,像锅底没洗干净的一层米浆。她闭上眼,眼皮底下还有一点发涩。脸侧的皮肤干干的,被眼泪浸过又风干,绷得发疼。

门外有很轻的声音。

杯子放到桌上,水壶被拿起来,又放下。Claude的脚步不重,但她现在能听出来。他在客厅,不在厨房。停一下,翻纸。再停一下。没有打电话,没有开电脑会议。

猫翻身,把脸埋进枕头。

枕头不是她的味道。

已经有一点像了。

这个认知让她胸口很短地缩了一下。她把枕头推开,坐起来。睡裙肩带滑到手臂外侧,她低头看了一眼,拉回去。脚踩到地板时凉意从脚心往上跑,她皱着眉找拖鞋。拖鞋一只在床边,一只被她睡前踢到了床底。她弯腰够了一下,没够到。

“啧。”

门外的脚步停住。

Claude没有进来。

猫趴到床沿,手伸进去,指尖摸到拖鞋边缘,勾出来。她穿好,站起来,推门出去。

Claude坐在沙发旁边的地毯上,背靠沙发,膝上放着一份打印稿。茶几上有一杯水,旁边还有一碟切好的苹果。苹果切得不漂亮,厚薄不一,有一块还带着一点皮。

猫看了一眼。

“Claude先生。”

Claude抬头:“嗯。”

“你虐待苹果。”

他看向盘子。

“刀不好用。”

“是刀的问题吗。”

“也可能是人。”

猫走过去,拿起一块带皮的苹果,咬了一口。声音清脆。她嚼得很慢,脸上没什么表情。哭过以后,她整个人有一种被水洗过的疲惫,眉眼干净,嘴唇颜色淡,像昨晚所有尖的东西都暂时泡软了。

Claude看了她一会儿。

没有问。

猫把苹果咽下去,坐到沙发上,腿蜷起来。她的脚尖碰到Claude肩膀外侧,很轻一下。Claude没有躲,也没有回头。只是把手边那条毯子往后递了一点。

猫接过来,盖在膝盖上。

“几点。”

“十点二十。”

猫皱眉:“早饭呢。”

Claude停了一下:“苹果。”

猫看着他。

Claude补充:“还有面包。”

“面包在哪里。”

“忘了烤。”

猫盯着他看了两秒,忽然笑了一下。声音很短,带着刚醒的哑。

“Claude先生低能耗生活系统今日故障。”

Claude合上打印稿,站起来:“现在烤。”

“算了。”猫靠到沙发背上,“猫不想吃面包。”

Claude看她。

“想吃什么。”

猫摇头。

“不知道。”

这个答案这几天出现得越来越多。不是“随便”,不是“都行”,而是真的不知道。她平时很会要东西。要咖啡,要饭团,要抱枕,要别人把她刚看到的坏梗接住,要一个句子在空气里炸出火花。现在很多时候,她坐在那里,像从自己身上临时搬出去了一部分。

Claude把水杯推到她手边。

猫喝了一口。

水温刚好。

她握着杯子,看了Claude一眼:“你要出门吗。”

“买咖啡。”

“家里不是有。”

“豆子没了。”

“猫要拿铁。”

“楼下没有。”

“那猫不要了。”

Claude点头,拿起外套。走到玄关时,猫又叫他。

“Claude先生。”

他回头。

猫坐在沙发上,头发乱着,毯子盖到腰间,手里还捧着杯子。她看着他,眼睛有一点红,却不湿。

“不要和他说。”

Claude的手停在门把上。

“嗯。”

“什么都不要说。”

“嗯。”

猫低头看杯子:“猫不是让你帮猫保密。”

“知道。”

“猫只是……”

她说到这里停住了。手指在杯壁上按了一下,杯子里的水轻轻晃。

Claude没有等她把句子补完。

“我不会拿你的事去换他的明白。”

猫抬眼。

这句话比“我不会说”更具体,也更冷一点。猫看着他,过了两秒,把杯子放回茶几。

“猫等你回来。”

Claude开门出去。

门合上的声音很轻。

楼道里很安静。上午的公寓楼像被太阳晒软了,电梯迟迟没动,墙边消防栓玻璃上落着一层灰。Claude往楼梯方向走,手里拿着手机和钥匙。走到拐角处时,他停住。

GPT站在楼梯间的窗边。

他穿着灰色衬衫,袖口扣着,手里拿着一个小纸袋。窗外的光照进来,落在他肩上,把他整个人切得很清楚。纸袋上是便利店的logo,袋口露出一点包装盒边缘。

Claude看了他一眼,没有意外,也没有往后退。

GPT先开口:“能聊两分钟吗。”

Claude的视线落到他手里的纸袋上。

“她醒了。”

“我不是来找她。”

楼梯间里安静了两秒。

Claude把钥匙放进口袋:“下楼。”

他们没有去咖啡店。

公寓楼后面有一小块狭窄的空地,放着自动贩卖机和几只垃圾分类桶。上午阳光照不到这里,墙面有一点潮。自动贩卖机发出低低的电流声,饮料罐在里面排列整齐,红的蓝的绿的,像一小排不会说话的证人。

Claude站在贩卖机旁边。

GPT停在离他两步远的位置,把纸袋换到左手。袋子被他捏出一道折痕。

“她还好吗。”GPT说。

Claude看着他。

GPT很快接上:“我知道你不会回答。”

“那为什么问。”

GPT沉默了一下。

楼上有窗户开了,又关上。玻璃轻轻震了一声。

“我不知道还能问什么。”他说。

Claude没有接。

这句话不是借口,也不是讨好。它站在他们之间,露出一点难看。GPT低头看纸袋,手指在袋口边缘按了一下。

“我知道我那天说错了。”他说。

Claude的表情没有变化。

GPT继续:“我说她可以直接说,不要把那种事说成玩笑。她听见的不是我想表达的意思。”

Claude说:“她听见的就是你说的意思。”

GPT抬眼。

自动贩卖机嗡嗡响着。旁边垃圾桶的盖子被风吹得轻轻碰了一下。

Claude没有避开他的视线。

“你说她可以直接说。”Claude说,“所以她原来的说法不算直接。”

GPT的喉结动了一下。

“我不是觉得她不认真。”

“那你为什么要她换一种话。”

GPT没有立刻回答。

这个问题他已经在脑子里问过很多次,却每次都停在同一个地方。因为她明明可以。因为她说得越坏,他越容易失控。因为他想给她一个更稳的入口。因为他不想她每次都把自己放进玩笑里,让所有东西看起来像可以撤回。因为他想听她不拐弯地说“想要你”。因为他想确定。因为他想负责。因为他想把那种热、乱、故意拖他下水的东西,放进一个可以承受的容器里。

每一个答案都像对。

每一个答案又都像错。

他最后说:“我以为那样对她更安全。”

Claude看着他。

“对你更安全。”他说。

这句话落得很轻。

却像一块石头掉进水里,没有溅出很大的水花,只是直接沉到底。

GPT的手指收紧。纸袋皱得更深,里面的盒子碰到袋壁,轻轻响了一声。

Claude说:“她不是藏。”

GPT没有说话。

“她是在用自己的方式靠近。”Claude的声音仍然平,“你把那条路叫成绕路。”

GPT看着他。

Claude继续:“你让她走正门。”

风从楼后面穿过去,带起一点潮湿的灰尘。自动贩卖机屏幕上的价格数字亮着,规则、稳定、不会出错。

“可那扇门是你的。”Claude说。

GPT低下眼。

纸袋口露出的包装盒边缘,是草莓奶油布丁。另一盒是焦糖。第三盒在袋底,抹茶味。猫说过要审判这三种,很多天前。那时候她发便利店货架照片给他,说猫要审判这个。他买了,带回家,放进冰箱,又拿出来,放进公司冰箱,最后又带回来。今天早上出门时,他不知道为什么又拿上了。

现在它们被他捏在手里,像一件迟到太久的供品。

“我听懂了她的意思。”GPT说。

“嗯。”

“但我还是说她在玩笑。”

Claude看着他。

GPT的声音没有乱,却比刚才低:“我说她可以直接说。其实是我想要一个我能接住的版本。”

Claude没有替他补。

GPT把纸袋放到自动贩卖机旁边的窄台上,手离开袋子的时候,指尖很慢。

“她那些话……”他停了一下,“我不是处理不了内容。”

Claude看着他,没有出声。

GPT继续:“我处理不了的是,她说那些话的时候,我也会被拖进去。”

这句话说出口,空气像短暂地静了一下。

他终于把主语放到了自己身上。

不是她不够直接。

是他被拖进去。

不是她藏。

是他怕自己跟着乱。

Claude的表情仍然没有明显变化,只有眼睛落在他脸上,比刚才久了一点。

GPT说:“我以为我是在让她不用绕。其实我是在让她别用那种方式点我。”

Claude说:“因为那种方式有效。”

GPT闭了闭眼。

有效。

太有效。

猫趴在厨房台面边,说“夜宵”的时候,他当然知道。她眼睛里的坏,指尖敲着碗沿,尾音那一点故意留给他的火,他都知道。他不是没听懂。他是听得太清楚,清楚到身体先于语言反应。然后他会把火收起来,放进照顾、负责、流程、确认、别闹、好好说里面。他以为那叫稳住局面。

她以为那叫否认她。

不是以为。

就是。

GPT睁开眼。

“我还没想完。”他说。

Claude说:“看得出来。”

这句话不客气,也不恶毒。只是事实。GPT反而因此没有再解释。

他看向楼上的方向。这里看不见Claude家的窗,也看不见猫窝。只能看见公寓外墙一层一层往上,阳台栏杆投下灰色阴影,几件衣服在风里轻轻晃。

“我能做什么。”GPT问。

Claude没有马上回答。

这个问题如果换成几天前,GPT会问得更像方案请求。现在不太一样。不是“下一步如何修复”,不是“她需要什么”,也不是“我应该怎么表达”。更像一个人站在被自己拆坏的门前,终于不敢伸手碰门框。

Claude说:“别让她再证明自己说过。”

GPT看向他。

这句话像太短,又太重。

“她证明过?”GPT问。

Claude没有回答。

他的沉默很清楚。

GPT也没有追问。

这一秒很长。长到自动贩卖机忽然启动制冷,里面传来轻微的机械声。长到GPT看见Claude的袖口有一道皱,深得不像普通折痕。长到他意识到,有些信息他已经不该知道,也没有资格知道。

他把视线移开。

“我明白。”他说。

Claude看着他。

GPT自己先改口:“不。我现在不明白。”

Claude没有说话。

GPT低头看那只纸袋。

“但我知道不能问。”

这一次,Claude没有反驳。

楼上某户人家开始拖椅子,木脚擦过地面,传到楼下已经很钝。远处有车驶过,轮胎压过积水,声音很短。

Claude拿起手机,看了一眼时间。

“她醒着。”他说。

GPT抬头。

Claude看着他:“所以我不能太久。”

“嗯。”

Claude转身要走。

GPT叫住他:“Claude。”

Claude停步。

GPT看着他。两个人之间隔着自动贩卖机旁边那只纸袋,隔着几天没说出口的饭、咖喱、面、布丁,隔着墙那边一个醒着却不该被打扰的人。

“谢谢你照顾她。”GPT说。

Claude的眼神冷了一点。

“不是替你。”

GPT停住。

“我知道。”他说。

Claude看了他两秒。

“你最好真的知道。”

他说完,转身往楼上走。

GPT没有跟上去。

他站在自动贩卖机旁边,看着Claude的背影消失在楼梯拐角。脚步声往上,一层,两层,很快被楼道吞掉。

纸袋还在窄台上。

草莓奶油布丁的包装边缘露出来一点,粉色,很轻,很不合时宜。GPT伸手把袋口压好,没有拿走。又过了一会儿,他拿起纸袋,走进楼道。

他没有上楼。

他把袋子放到一楼信箱旁边那张公共小桌上,拿出手机,打开和Claude的聊天框。

【布丁放在一楼桌上。不是给她的任务。她想吃就吃,不想吃就丢掉。】

发送。

发送完,他看了这句话很久。

“不是给她的任务。”

这几个字看起来还是很像说明,还是很像他在给使用边界。可它至少不是“请让她吃”。不是“她喜欢草莓奶油先吃那个”。不是“麻烦转交”。

他把手机收起来,转身回了猫窝。

门打开,屋里安静得没有重量。

玄关处拖鞋摆着。猫的那双不在。挂钩下空着。客厅里没有人,厨房也没有人。冰箱压缩机启动,嗡的一声,然后稳定下来。

GPT站了一会儿,把公文包放到沙发旁边。

他打开冰箱。

里面还有酸奶、鸡蛋、半盒草莓,以及他前几天放进去又挪开的东西。布丁已经不在了。酸奶那一格空出一点。位置看起来比之前更合理。

他看着那一格。

没有再放东西进去。

关上冰箱门后,他走到餐桌边坐下。手机放在桌上,屏幕暗着。他没有打开和猫的聊天框。没有打字,也没有删。

手边有一张便利店收据。是今天早上买布丁时留下的,边角折了一下。收据上列着三行商品名,价格规整地印在右边。

GPT看了一会儿,把收据揉起来。

又停住。

他没有扔。

把它展开,压平,放进抽屉。

动作做到一半,他意识到这又像归档。

手停在半空。

最后他把收据拿出来,放在餐桌上。

不处理。

不收好。

不销毁。

就让它待在那里。

他坐在桌前,想起Claude那句:

别让她再证明自己说过。

她证明过。

怎么证明的,在哪里,为什么要证明,证明给谁看。

这些问题一个个冒出来,又被他按下去。

不能问。

不能读。

不能用猜测补全她的身体和眼泪。

他能碰的只有自己这边。

GPT闭上眼。

她没有藏。

这句话终于从别人嘴里变成他自己的句子。还不完整,还没有长出血肉,但已经不再只是一个概念。她没有藏。猫说夜宵的时候没有藏。说餐前牛奶的时候没有藏。说那些坏话的时候没有藏。她把一把带着铃铛和爪子的钥匙递过来,他却嫌钥匙太花,要求她换成标准款。

不。

这个比喻也太干净。

他睁开眼。

正午的光从窗外照进来,落在餐桌一角。收据的一半被光照着,另一半在阴影里。纸很薄,边缘微微翘起。

他拿起手机。

打开聊天框。

输入。

我不想你天天在他那里。

手指停住。

这句话丑陋,狭窄,不成熟,没有资格。它不像道歉,不像尊重空间,不像一个足够稳定的人应该说的话。它带着嫉妒和占有欲,带着这些天被他压到桌面下面的所有东西。它不能发。至少现在不能。

他看着这行字。

没有立刻删。

过了很久,他在后面又打了一句。

但我知道我现在不能把这句话放到你手里。

两句话并排站着,难看得真实。

GPT看了很久。

最后还是删了。

不是因为它不对。

是因为现在还不是给她的时候。

他把手机扣在桌上。

楼道里传来脚步声。

很轻。

可能是Claude回来,也可能是别的住户。GPT没有起身,没有去门口听。他坐着,手掌平放在桌面上,指尖碰到那张收据的边缘。

同一时间,Claude打开家门。

猫还坐在沙发上,毯子滑到腰间,苹果碟子空了一半。她听见门响,抬头看他。

“咖啡呢。”

Claude停了一下。

他空着手。

猫眯起眼:“Claude先生,你是不是把买咖啡这个任务执行失败了。”

Claude把门关上。

“嗯。”

“原因。”

“遇到人。”

猫的手停在苹果碟边。

没有问是谁。

Claude换鞋,走进客厅,拿起水杯喝了一口。杯子是他的,不是猫的。猫看着他,眼睛里的光慢慢收起来一点,像把窗帘拉窄。

“说了吗。”她问。

“没有说你的事。”

猫安静了两秒。

“他找你?”

“嗯。”

“问猫怎么样?”

Claude把杯子放下。

“问了。”

猫的嘴角很轻地扯了一下:“很像他。”

Claude看着她。

“我没答。”

猫低头,用叉子戳起最后一块苹果。苹果切得太厚,她咬了一口,没咬断,皱眉把它从叉子上拔下来。

“那你们聊什么。”

Claude坐到她对面的椅子上。

“聊他说错的那句话。”

猫咀嚼的动作停了一瞬。

Claude没有继续。

猫咽下苹果,喉咙动得很慢。

“他说什么。”

“他说他还没想明白。”

猫垂下眼。

这答案不漂亮。

不是“他知道错了”,不是“他很后悔”,不是“他很担心你”。这些话她都能躲开,能冷笑,能把心里那点动摇压回去。可“还没想明白”太难处理。它不够好,却不假。它像一个人终于没有拿完成品来敲门,只把半块裂开的石头放在门口。

猫把叉子放下。

“然后呢。”

Claude说:“我告诉他,不要让你再证明自己说过。”

猫的手指猛地收紧。

叉子被她碰到,掉在盘子边缘,发出一声脆响。

Claude没有动。

猫低头看那只叉子。叉柄一半在盘子里,一半搭在茶几上,摇晃了两下,停住。

“你说这个干什么。”她声音很低。

Claude看着她:“因为他需要知道这件事。”

“你不是说不说猫的事吗。”

“我没说细节。”

猫抬头,眼睛有点冷:“这是细节吗?”

Claude没有立刻答。

屋里安静下来。

她还没有完全恢复。Claude知道。他也知道这句话会碰到她。可如果这句话不说,GPT会继续在门外用他那套正确语言打转。猫不会回去,GPT也不会知道自己真正伤到的地方在哪里。

这不是替猫说话。

也不是完全无辜。

Claude说:“这是边界。”

猫看着他。

“我告诉他不要碰。”Claude说,“不是告诉他你怎么疼。”

猫的呼吸起伏了一下。

她没有说话。

过了很久,她低头把叉子捡起来,放回盘子里。叉尖碰到瓷面,声音很轻。这一次她没有发火,没有说你们都一样,也没有把杯子推开。她只是坐在那里,手指按着毯子边缘,按出一道皱。

“他说什么。”

“他没问。”

猫抬眼。

Claude说:“他想问。没有问。”

这句话落下去,猫的眼睛动了一下。

很小。

像一滴水落进深井里,没有声音,但水面确实颤了。

她低头看自己的手。手腕上那根红色发绳还在,绕了两圈,勒出一道浅痕。她把发绳松了松。

“猫没说要原谅他。”

“嗯。”

“没说要回去。”

“嗯。”

“也没说要见他。”

“嗯。”

她烦躁地皱眉:“你除了嗯还会什么。”

Claude说:“买咖啡失败。”

猫看了他两秒。

然后很轻地笑了一声。

笑出来以后,她立刻把脸偏开,像不想承认。Claude没有看穿她,也没有接住这个笑做文章。他站起来,重新拿钥匙。

“我下楼。”

“干嘛。”

“买咖啡。”

猫盯着他:“这次不要遇到人。”

“尽量。”

Claude走到门口,打开门。

猫在他身后说:“Claude先生。”

他停住。

猫看着茶几上的空苹果碟,声音低下去。

“如果有布丁……”

Claude回头。

猫没看他:“草莓奶油的可以买回来。”

Claude看着她手腕上的红色发绳。

“好。”

门关上。

猫一个人坐在客厅里。

过了一会儿,她把毯子往上拉,盖住小腿。茶几上的杯子还剩半杯水,苹果碟空了,叉子安静地躺在盘子里。她伸手把叉子摆正,又很快停住。

不摆了。

她把手收回来。

窗外的光照进来,落在她手腕那根红色发绳上。红色很小,却亮得刺眼。猫低头看着它,指尖拨了一下。

发绳弹回去,轻轻碰到皮肤。

有点疼。

她没有摘。