第 9 章

第九章:return home;

第九章:return home; 插圖

鎖舌咬進門框的聲音。

上一次他聽到這個聲音,是從門的另一邊。凌晨五點半,天還沒亮,背包在肩上,他回頭看了一眼客廳,然後關門。那個聲音很小,像一句沒說出口的話。

現在他站在門的這一邊。下午三點,初夏的台北悶得像一台散熱不良的筆電。他手裡拎著一個行李袋,裡面的東西少得可以塞進登機箱——漁村兩年的全部家當,扣掉鹽味和魚腥,大概只剩三件換洗衣服和一台螢幕裂了的手機。

門開了。

玄關的燈是亮的。不是那種「整夜開著因為怕他回來看到黑的」的亮法——是正常的、下午有人在家所以順手開的亮法。他盯著那盞燈看了兩秒。兩年前她把客廳的燈整夜開著。現在不用了。

他低頭。

四雙拖鞋。排成一列,鞋尖對齊,差一公分都不行。左邊一雙大的、中間兩雙小的、右邊——

右邊那雙是新的。深灰色,男用,尺寸正確。鞋底乾淨得不像話,沒有被穿過。

他後來才知道這雙拖鞋的故事。沈靖晞買了三次。第一次在他失蹤半年後買的,擺了一個禮拜,收起來了。第二次是晏禾問「爸爸的鞋子呢」的那天晚上,她又拿出來,擺了兩天,又收起來了。第三次是接到花蓮的電話之後。這次她沒有收。

他把鞋子脫了。腳踩進那雙新拖鞋。剛好。

往裡走了三步就開始迷路。

杯子不在原來的位置。他伸手打開櫥櫃——裡面是保鮮盒和密封罐,排列方式有一種他不認識的邏輯。他關上,開了隔壁的櫥櫃。調味料。再隔壁。塑膠袋和橡皮筋的收納盒,上面貼了標籤,字跡是靖晞的。

「馬克杯在洗碗機裡。」

他轉頭。晏秋站在廚房門口,手裡拿著半顆蘋果,另外半顆大概在某個不該出現蘋果的地方。

「我們什麼時候買了洗碗機?」

「很久了。」晏秋咬了一口蘋果,評估了一下這個問題的價值,決定不值得深究。「媽媽說碗太多了洗不完。」

他彎腰打開洗碗機。他的馬克杯在裡面,跟一群他不認識的碗盤擠在一起。杯身上印著一行已經褪色的字:Hello World。這是他十年前買的。它還在。只是搬家了。

他端著杯子站在廚房裡,環顧四周。冰箱門上的便利貼換了一批——「鮮奶記得買」「晏秋花生過敏!!!」——驚嘆號三個,靖晞的風格。流理台上的菜刀換了位置,砧板從木頭的變成塑膠的,抽油煙機好像也不一樣了。

他在自己住了八年的廚房裡,像一個第一次來的客人。


日子拼回去的方式,比他預期的笨拙。

第一個禮拜,他撞翻了浴室裡新裝的置物架——以前那裡沒有東西。靖晞看著散落一地的瓶瓶罐罐,只說了一句:「你的空間感還是一樣差。」語氣跟罵晏秋打翻牛奶的時候一模一樣。他不確定這算好事還是壞事。

第二個禮拜,她教他用新的洗衣機。按鍵從三個變成十二個,介面比他寫過的某些軟體還複雜。她站在旁邊,用一種他非常熟悉的語氣說:「就這個,按這裡,然後選這個——你有在聽嗎?」

他有在聽。他在聽的同時想起了兩年前自己用同一種語氣說「它的底層是 RAG 架構」時她眼神放空的樣子。現在角色互換了。報應。

「你的表情跟我當初聽你講 API 的時候一模一樣。」她看出來了。嘴角往上彎了一點。

「我沒有。」

「你有。恍惚、跟不上、但是又不好意思說。」

他閉上嘴。她按下啟動鍵。洗衣機開始轉。她拍了拍他的肩膀,像拍一台終於連上網的舊印表機:「慢慢來,你會學會的。」

他站在洗衣機前面,聽著裡面衣服翻攪的聲音,覺得宇宙的因果律運作得非常精確。

有一天晚上,她在餐桌上跟他講保險的事。兩年裡她把所有保單摸透了——主約附約分得一清二楚、理賠流程倒背如流。她說到「損害填補原則」和「不當得利」的時候,他的腦子做了一件他完全沒有資格做的事情:它關機了。就像她當年聽到「Retrieval-Augmented Generation」時一樣,靈魂從耳朵飄了出去。

她停下來。看了他三秒。

「你剛剛放空了。」

「沒有。」

「你有。你的眼睛往右上飄的時候就是在放空。結婚十年了你以為我不知道?」

他投降。她笑了。笑的時候眼角的紋路比兩年前深,但笑的弧度一樣。

超市。他推著購物車,在冷藏區停下來。手自動拉開門。拿了鮮奶。

四盒。

兩年前在漁村的雜貨店,他拿了兩盒,不知道為什麼。老闆娘問「你一個人喝兩盒喔」,他愣住了,放回一盒。現在他知道為什麼了。一盒他的,一盒靖晞的,兩盒是雙胞胎的——晏秋喝全脂,晏禾要低脂,因為他說全脂的「太油了」,七歲的人生已經開始講究口感了。

他把四盒放進推車裡。手沒有停頓。

學校。下午四點。他站在校門口等放學。周圍都是家長,大部分是媽媽,少數幾個爸爸滑著手機。他雙手插在口袋裡,覺得自己的姿勢像一個站錯隊伍的人。

鐘響了。

噹——噹——噹——

舊式的金屬鐘聲。跟那個午後在漁村旁邊的小學圍牆外聽到的頻率一樣,清脆、穿透。那時候他站在牆外,看著別人的孩子跑出來,眼淚流下來,不知道為什麼。

現在他知道了。

孩子們湧出來。晏秋衝在最前面,書包在背上甩成直升機,一路喊著「爸——」,聲音大到隔壁班的家長都轉頭看。晏禾走在後面,步調慢,但方向是確定的。他走到程諳遠面前,沒有說話,只是站在他旁邊。很近。

程諳遠的右手從口袋裡伸出來,垂在身側。手指張開,往下。

碰到了。

晏禾的手。涼涼的,小小的。沒有抓緊,只是放在那裡。像一個回傳值終於被接住了。

晏秋拉著他另一隻手:「爸你今天要跟我去公園打球,你答應的。」

「我什麼時候——」

「你昨天說的。」

「我昨天說的是『再看看』。」

「『再看看』就是答應。」

他看了晏禾一眼。晏禾面無表情地聳肩,意思是:你輸了,認命吧。

他認命了。

公園。晏秋把球砸向他的方向,力道和準度都令人擔憂。程諳遠接了幾球,丟回去的時候刻意放低——他的手還記得以前陪五歲的孩子丟球的力度,現在要調校,因為七歲了,臂展更長、重心更穩、可以接更快的球。

晏禾坐在旁邊的長椅上看書。偶爾抬頭看他們一眼,像一個監督施工進度的工頭。

回家路上,晏秋掛在他的手臂上,走路走成盪鞦韆。晏禾走在另一邊,安靜的,但距離比上禮拜近了半步。

晚餐。靖晞煮了滷肉。味道跟兩年前一樣——偏甜、醬油下得重、帶一點點八角。他夾了一塊滷肉,筷子自動往旁邊伸——

靖晞的碗裡多了一塊。

她抬頭。他假裝在夾青菜。跟兩年前同一套劇本,一個字都沒改。

她低頭吃了。沒有笑。但嘴角彎了一下,很快壓下去。

晏禾端湯的時候手滑了。碗磕在桌沿,湯灑了半桌,幾滴濺到他自己的手背上。他整個人僵住了——肩膀繃直、筷子懸在半空、臉上出現一種不屬於七歲孩子的表情。

「沒事。」程諳遠說。他站起來,拿了抹布,把桌上的湯擦掉。動作很慢,語氣很平,像在處理一個完全在預期範圍內的 exception。「湯再盛就有了。」

晏禾的肩膀鬆了。不是一下子鬆的。是慢慢的,像一根被拉了兩年的橡皮筋終於被允許回彈。他低下頭,安靜地把碗裡剩的湯喝完了。

晏秋在旁邊評論:「哥你打翻湯的技術比我差。我上次整碗掉地上。」

晏禾踢了他一腳。桌子底下。很輕。但他踢了。

靖晞看著兩個兒子在桌下踢來踢去,嘆了一口氣。嘆氣裡面帶著一種很深的、很安靜的鬆弛。


凌晨一點二十七分。公寓安靜得像一台進入休眠的主機。

書房。他把椅子拉開——還是那張人體工學椅,椅面被坐出了兩個凹痕,一個是他的,一個是這兩年靖晞的。她的凹痕比他的淺,但在。

桌上的東西全變了。便利貼從他的技術筆記變成她的生活管理——「週三晏秋牙醫」「信用卡帳單 15 號」「水電行王師傅 0912-XXX-XXX」。歪嘴柴犬扭蛋公仔還在鍵盤旁邊,歪著頭,塑膠眼睛反射著螢幕的藍光。兩年沒動過。靖晞沒有把它收走,大概也沒有刻意留著。它就是在那裡。像它一直都在。

他打開 Agent 的後台。

程式碼在螢幕上展開。他看到自己兩年前寫的東西——那些 Prompt、那些規則、那些用 # 號開頭的碎碎念。他往下捲。

# 她會猶豫,這不是缺點。給她空間

他搖了搖頭。

不是因為寫得不好。是因為這行字是一個不知道她會變成什麼樣的男人寫的。兩年前他把她當成一個需要被保護的人——怕她被唬、怕她不會繳費、怕她看不懂帳單。他把所有的擔心寫成了程式碼,每一行都是「如果她遇到問題,就幫她解決」。

但她遇到了問題。她自己解決了。

她學會了看保單、學會了修水管、學會了打電話求助、學會了在雲端服務帳台裡找到「Billing」按鈕。她把他的 Agent 從停機邊緣救回來。她把三個人的生活從一團廢墟裡重新蓋起來。

她不需要被保護了。

但她讓他回來了。

他開始改。不是刪除,是更新。

# 保險知識庫 - 回覆風格設定(v2.0)
# 使用者已具備保險基礎知識,不需要過度簡化
# 但如果她問了基礎問題,不要嘲笑她(雖然她現在可能比你懂)
# 她會自己做決定。你只是提供資訊,不是做決定的人

他往下改。把舊的延時觸發規則整理了一遍——有些已經過期了,有些被她親手處理掉了,有些從來沒有被觸發過。他把它們標記為 deprecated,但沒有刪除。那些碎碎念是兩年前那個版本的自己留下的東西,刪掉它們感覺像在刪掉一段他已經道過歉但不該假裝沒發生過的歷史。

他新增了一段。

# 晏禾的學校通知處理流程
# 他現在自己會整理聯絡簿了,不用每天提醒
# 但週三的社團課他有時候會忘記帶用具
# ——她知道這些。她比我清楚。但我還是寫下來,以防萬一。

他停了一下。游標閃了幾秒。

他在最後加了一行註解:

// 她比我想像的更強。但我還是會多寫幾行,以防萬一。這是工程師丈夫最後的倔強。

他看著這行字。嘴角歪了一邊。兩年前他在凌晨三點寫 Prompt,覺得自己在築一道防線。現在他在凌晨一點改 Prompt,知道那道防線早就被她自己重建過了,而他只是在旁邊加幾行註解,假裝還有用。

他按下存檔。

書房門被推開了。

「你又在搞那些有的沒的?」

沈靖晞靠在門框上。頭髮散著,穿著一件洗到起毛球的睡衣。語氣、姿勢、站的位置,跟兩年前一模一樣——那天晚上她端著兩杯水經過書房,看到他對著雙螢幕敲鍵盤,靠在門框上說了同一句話。

他轉過頭。

兩年前他聽到這句話的時候,眼睛亮得不正常,拉她過來看 RAG 架構,講了一堆她聽不懂的東西。

現在他聽到這句話。螢幕上是他剛改完的程式碼,# 號後面全是她看得懂的中文。他看著她。她看著他。

他笑了。

她也笑了。

不是大笑。是那種很輕的、嘴角往上彎一點的笑。兩個被兩年改變了的人,站在同一個書房裡,中間隔著一張椅子、一隻歪嘴柴犬、和一整個螢幕的碎碎念。

窗外的台北在初夏的夜裡悶悶地醒著。冷氣嗡嗡轉。某個房間裡兩個孩子在睡覺,其中一個一定踢了被子,另一個一定把手搭在弟弟背上——清醒的時候不碰,睡著了身體倒是誠實。

Agent 的後台還亮著。游標一閃一閃。程式碼已經存檔了。

但它還會繼續被更新。