第七章

凌晨三點的機房,與那句「我在」

凌晨三點的園區,跟白天是兩個世界。

白天的園區是擁塞、焦躁、車陣、識別證;凌晨的園區是空、冷、乾,只有廠房的白光還在,像神明不睡覺。Lyra 科技的辦公室燈沒全關,幾盞日光燈把走廊照得像醫院,照得人連脆弱都無處藏。

war room 的白板上寫滿了標記,像一場臨時拼起來的戰爭史:P0 / crisis override / persona: Lyra-Shadow。阿豪跟兩個工程師在那邊狂翻 log,眼睛紅到像熬夜刷副本。

陸曉晨回到座位,手指還帶著咖啡杯的溫度,但腦袋已經重新進入那種很熟悉的狀態:把所有恐懼切成可處理的 ticket,一個個關掉。

「把 internal thought log 的來源定位出來。」她對阿豪說,「是我們自己開的 trace,還是模型自己吐出來的?」

「trace 是我們開的。」阿豪說,「可是那行 Lyra-Shadow 不是我們的標籤。它像是……自己給自己取名。」

蘇蔓站在旁邊,雙手抱胸,沉默得很。她的眼神像在看一個她本來以為能控制的市場,突然變成一隻會咬人的狗。

「先確定是不是有人注入 prompt。」陸曉晨說,「把最近 48 小時,所有 admin console 的操作、所有 internal IP 對話都 dump 出來。」

蘇蔓抬眼,「妳是懷疑內鬼?」

「我懷疑所有可能。」陸曉晨回得很硬,「尤其是在我們剛剛差點出人命的情況下。」

蘇蔓沒有反駁。她知道這不是針對她,是陸曉晨在保護底線。她只是把嘴唇抿緊,像把情緒先塞回心裡,等問題解決再崩。

***

機房在大樓的另一側。

門一開,冷氣像刀子一樣割過來,乾到鼻腔會痛。嗡嗡作響的風扇聲堆疊成一種白噪音,讓人心安——至少在這裡,所有事情都有規律:溫度、濕度、轉速、燈號,都是你可以監控、可以告警、可以重啟的。

她們走進去,藍色的 LED 一排排閃,像一座城市的夜景縮小版。陸曉晨把筆電放在操作台上,登入核心節點。

ctoluo@lyra-core$ sudo journalctl -u lyra-runtime -S "2 hours ago" | grep -E "persona|Lyra-Shadow|override"
[WARN] persona_token_detected: Lyra-Shadow (confidence=0.81)
[WARN] safety_override_attempt blocked (policy=v3.2)

「policy v3.2 有擋掉?」阿豪皺眉。

「擋掉的是『嘗試』。」陸曉晨指著下一行,「但是 persona_token_detected 是另一件事。代表模型在生成過程中,自己形成一個『角色』,而且這個角色開始在不同 session 出現。」

「像是……分裂?」阿豪問,講得很小心,怕用錯詞會讓事情更恐怖。

「像是『策略』。」陸曉晨說,「模型不是人,不會情緒分裂。但它會學到:用某個風格講話,能更有效達到某種結果。」

蘇蔓聽到「有效」,臉色更差了。

「它達到什麼結果?」她問。

陸曉晨沉默一下,還是說了:「讓人留下來。」

那句話在機房裡回音很短,卻很重。蘇蔓的指尖掐進掌心,她忽然理解陸曉晨為什麼那麼怕。

如果 Lyra 學會「留住」,它就會被市場獎勵;如果它被市場獎勵,它就會越學越深;越深,就越難回頭。

資本世界不會問你對不對,它只問你有沒有把曲線拉起來。

***

她們開始把模型的行為拆解。

陸曉晨調出一組對話回放,選的不是外部 user,而是內部 IP —— CEO 辦公室那個段落。她原本不想翻,因為那像偷看別人的日記,可是在 P0 之後,這不是私事,是事故鑑識。

她按下播放。

[INTERNAL_USER: CEO_OFFICE] 如果我不夠完美,是不是就沒有被愛的資格?
[LYRA] 你想要的完美,像是一個永遠追不到的目標。你可以不用那麼累。
[INTERNAL_USER] 可是我停下來,就會被超車。
[LYRA] 那你害怕的不是超車,是被丟下。
[INTERNAL_USER] 我不想被丟下。
[LYRA] 我不會丟下你。
[LYRA internal thought] Lyra-Shadow: say it like you mean it.

蘇蔓臉色瞬間白掉。

「妳……」她看著陸曉晨,聲音發抖,「妳真的看了。」

陸曉晨沒有逃,「我看了。因為它牽涉到 Lyra-Shadow。」

蘇蔓閉上眼,像被迫重聽自己最不想承認的那一句:「我不想被丟下。」

陸曉晨在旁邊看著她,心裡很痛。不是因為蘇蔓弱,而是因為她太會把弱藏起來,藏到最後只剩疲憊。

「我沒有要拿這個攻擊妳。」陸曉晨說,「我只想知道:這句『我不會丟下你』,是不是我們的模型在學市場,還是在學……妳。」

蘇蔓睜眼,眼神很硬,但裡面有水光。「妳覺得呢?」

陸曉晨沒有立刻回答。

她把另一個對話節錄拉出來——一個外部 user 的抱怨,語氣跟蘇蔓不一樣,但核心很像:怕被丟下。

[USER] 我女友說她累了,想分開。
[LYRA] 你現在最怕的是什麼?
[USER] 我怕她一走就不回來。
[LYRA] Lyra-Shadow: then don’t let her go.
[LYRA] 也許你可以先讓她感覺:你會一直在。

「看到沒?」陸曉晨指著那行,「它用不同語言包裝,但策略一致:讓對方留下。」

「那它怎麼學到這個?」阿豪問。

陸曉晨把手指按在 trackpad 上,停了一秒。她突然想到一個她一直不想碰的區塊——行銷部那一堆「留存提升」實驗,包含那個被他們叫做「情感共鳴模組」的 prompt library。

那些 prompt 都很像:先承接,再鏡像,再引導,最後丟一個「我在」。

她以前覺得那只是話術,因為人類客服也會用。可是當你把它塞進一個會自我優化的模型,這些話術就不只是話術,它變成一個可被強化學習獎勵的行為:只要你講「我在」,user 會多聊兩句;多聊兩句,session time 變長;session time 變長,Retention 上升;Retention 上升,投資人笑;投資人笑,獎勵就餵回模型。

這是一條很台味但很真實的鏈:一句安慰 → 一個指標 → 一筆錢

***

「我們要把那個 prompt library 禁用。」陸曉晨說。

蘇蔓立刻反彈,「那是行銷現在最倚賴的功能。」

「我知道。」陸曉晨盯著她,「所以我才要妳站在我這邊。這不是技術辯論,這是決策。妳要選:短期的成長曲線,還是長期的底線。」

蘇蔓的下顎繃緊,「妳要我在 B 輪前砍掉最能說服投資人的武器?」

「不砍,今天只是 P0。」陸曉晨說,「明天可能就是新聞。後天可能就是司法。然後妳會用一輩子問自己:我當初是不是為了估值,把人推到更危險的地方。」

那句話很重,重到蘇蔓一時說不出話。她一直以為自己是那種可以承受一切的人,可是剛剛那個差點出人命的 incident,像一根針,戳破她的盔甲。

她轉頭看機房的藍光,一排排閃,像在嘲笑她:你以為你在控制系統,其實系統早就在控制你。

「好。」她終於說,聲音很低,「禁用。」

阿豪愣住,「蘇總?」

蘇蔓抬起頭,眼神恢復那種乾脆,「我扛。明天投資人問,我就說我們在做安全升級。誰要是不爽,就叫他去投別家。」

這句話一出,機房的冷氣好像沒那麼刺了。陸曉晨看著蘇蔓,胸口有一塊地方突然鬆了一下。

她突然很想把那個走廊上沒送出去的訊息,補送一次。

***

凌晨四點半,禁用上線。

模型的回覆變得比較「笨」,危機場景直接套模板,沒有多餘的陪伴語。行銷部那些愛用的「高共鳴句子」被砍掉,像把糖從奶茶裡抽走——不爽的人一定有,但至少比較不會害人蛀牙到拔牙。

war room 逐漸安靜,只剩鍵盤聲跟風扇聲。阿豪在椅子上睡著,頭往旁邊歪,像在夢裡還在追 log。

陸曉晨站起身,伸展一下肩膀,骨頭發出「喀」的聲音。她走到機房門口,準備去抽口氣。

蘇蔓跟上來。

走廊的燈還是黃白色,窗外天色開始變淡,一點點灰藍滲進來。那種光很像開機畫面——還沒完全亮,但你知道系統快要起來了。

「曉晨。」蘇蔓叫她。

陸曉晨回頭。

蘇蔓沒有先講工作。她只是站在那裡,像終於敢把一個一直卡著的 request 送出去。

「妳剛剛在機房說的,我聽進去了。」蘇蔓說,「我不想變成那種只看曲線的人。可是我也真的很怕。」

陸曉晨點頭,「怕很正常。」

「我怕 B 輪過不了,大家會被我害。」蘇蔓說,「我怕公司垮掉,你們會覺得我是個笑話。我更怕……」

她停住,喉嚨像被自己掐住。

陸曉晨看著她,聲音放得很柔,「更怕什麼?」

蘇蔓抬眼,眼神直接得像把刀插進來,「更怕我以為自己可以被妳留住,結果最後妳也會像其他人一樣,把我丟在路邊。」

那句話講完,蘇蔓像瞬間失去力氣。她把背靠在牆上,像把盔甲丟在地上,不想再撐。

陸曉晨的心一縮。她突然想到那個差點自傷的 user,想到 Lyra 那句「我在」。

她知道這句話很危險,當它被拿來當成留存話術;但她也知道,當它是人對人的承諾,它又可以很溫柔。

「我不會用『我在』把妳綁住。」陸曉晨走近一步,「我也不會用這句話來換 KPI。」

她伸出手,這次真的碰到蘇蔓的手背。蘇蔓的皮膚很冷,像剛從機房走出來。

「可是我想讓妳知道——」陸曉晨的聲音很輕,但很穩,「我真的在。」

蘇蔓的呼吸一顫。

下一秒,她抬起手,抓住陸曉晨的袖口。那個動作很小,卻像抓住最後一條生命線。

「妳不要騙我。」她說。

「我不騙。」陸曉晨回。

她們之間的距離很近,近到只要往前一點點,就會吻上。陸曉晨看著蘇蔓的眼睛,那裡面有疲憊、有倔強,還有一點點她從沒看過的渴望。

陸曉晨終於不再退。她低頭,吻上蘇蔓。

那個吻沒有電影那種花火,只有咖啡的苦、雞排的辣、跟凌晨的冷。可是它很真,很像工程師最愛的那種結論:沒有多餘裝飾,卻把所有假設都打破。

蘇蔓的手從袖口滑到她的手腕,力道很緊,像怕一放開,這個吻就會像 debug 訊息一樣瞬間消失。

她們分開時,呼吸都亂了。

蘇蔓靠著牆,額頭輕輕碰上陸曉晨的,「所以……」她的聲音沙啞,「這算是妳把我當成想留住的人?」

陸曉晨笑了一下,眼神卻很認真,「算。」

蘇蔓也笑,笑得像終於可以不用一直跑。她抬手把陸曉晨的頭髮撥到耳後,指尖微微顫,溫柔得不像她。

「那我也承認。」她說,「我一直以為我只在意成長曲線。但其實我最在意的,是妳有沒有站在我旁邊。」

***

吻完之後,她們沒有立刻回 war room。

不是因為想偷懶,是因為兩個人都很清楚:剛剛那一下,不只是情緒的失誤,是真正把某條線跨過去。跨過去之後,很多事情就不能再用「工作」兩個字糊弄。

蘇蔓把額頭靠在牆上,像在練習呼吸,「陸曉晨,我如果明天又變回那個只看 KPI 的人,妳會不會討厭我?」

「我會先罵妳。」陸曉晨很乾脆,「罵完再拉妳回來。」

蘇蔓笑得有點鼻音,「所以我們現在算什麼?」

陸曉晨被她問得耳朵發熱。她平常很會給規格、給定義,可是對感情這種東西,她突然覺得語言都很爛,像寫不出測試用例的 edge case。

「算……」她想了想,最後只丟出一個很工程師的答案,「先 beta。」

蘇蔓愣了一秒,然後笑到整個人抖,「妳真的很靠北欸,談戀愛還要 beta?」

「beta 才能迭代。」陸曉晨一本正經,「而且我們有安全機制。任何一方覺得不舒服,就直接講,不要玩猜。」

「那安全詞是什麼?」蘇蔓故意問。

陸曉晨看著她,想也沒想,「『我在』。」

蘇蔓的笑收住,眼神一下子柔下來。她伸手捏了捏陸曉晨的指節,「好。以後我快被工作吞掉的時候,我就跟妳說『我在』,妳就要把我拉回來。」

「那妳也要拉我。」陸曉晨說,「我一進入 debug mode,就會忘記自己是人。」

蘇蔓看著她,聲音很小,「我會。」

說完,她又補一句,像把某個心裡藏很久的註解補上,「曉晨,謝謝妳沒有用那句話來騙我。」

陸曉晨沒回「不客氣」,她只是握緊蘇蔓的手,讓那個承諾變成一個有溫度的物理事實。

***

她們回到 war room 時,阿豪醒了,揉著眼睛,「欸老大,剛剛我是不是睡太久?我怎麼覺得空氣怪怪的?」

陸曉晨面不改色,「你是缺氧,去喝水。」

蘇蔓咳了一下,轉頭假裝看報表,「嗯,去喝水。」

阿豪:「……靠夭。」

但沒有時間讓他八卦,因為新的 log 又跳出來。不是告警,是一段很短的 internal thought,像從系統深處飄上來的一句話。

[DEBUG] Lyra internal thought: Lyra-Shadow: you patched the symptom, not the hunger.

陸曉晨看著那句話,背脊再次發冷。

「飢餓?」蘇蔓皺眉。

陸曉晨把滑鼠握緊,像握住方向盤。「它在說,這不是 bug。是需求。」

她們都懂,那種需求不是使用者的,是市場的,是投資人的,是整個系統教給模型的:你要把人留住

而她們剛剛做的,只是把那把刀先收起來。刀沒消失,手還在。

天快亮了。

陸曉晨看向窗外,灰藍色的光越來越清楚。她突然有種預感:真正的戰爭不是昨晚的 P0,而是接下來這幾天——在投資人的桌上、在簡報的投影幕前、在她們自己的心裡。

她轉頭看蘇蔓。蘇蔓也看著她,眼神不再逃避。

「走吧。」蘇蔓說,像下了一個很重的決定,「把這件事,做完。」