你按下 /compact,終端機閃過一行「Conversation compacted」,然後畫面就乾淨了。它到底把你剛才那一小時的來回怎麼了?先別急著知道「什麼時候該用」,我們從更底層問起:這個指令按下去的那一瞬間,機器裡發生了什麼事。搞懂這件事,你自己就會推出該按的時機,不用背。

先搞清楚 context 是什麼

想像模型每次要回你話之前,都得先把整張桌子上的紙全部重讀一遍。這張桌子就是 context——它上面攤著你打的每一句話、它讀過的每一份檔案、它自己講過的每一段回覆,還有一堆你根本沒看到的東西:系統提示、專案根目錄的 CLAUDE.md、它給自己的筆記。這些全部加起來,就是模型當下「記得」的全部。

關鍵在於,模型沒有你想像中那種「長期記憶」。它不會把昨天的事存進腦子裡,它每一輪都是把整張桌子重讀一次,才知道現在在幹嘛。所以桌子上的紙,就是它的全部世界。

為什麼桌子會滿

問題來了:這張桌子有邊界。Claude Code 目前一次能攤開大約 20 萬個 token(查文件的,沒逐一實測),聽起來很多,但它消耗得比你想像快。你叫它讀一支三百行的檔案,一疊紙上桌了;跑一次測試,輸出整包貼上來,又一疊;來回討論十幾輪,每一輪的問答都留在桌上不會消失。開場光是那些你沒看到的啟動內容,就先占掉一角。

於是對話拉長之後,桌子逐漸被塞爆。桌子一滿,模型連攤開重讀都做不到,會話就得中斷。這顯然不能接受——你不會希望聊到一半被系統踹出來。

壓縮到底在決定留什麼、丟什麼

這就是 compact 上場的地方。它做的事,白話講就是:把桌上那一大疊逐字的原始紀錄,換成一張手寫的摘要小卡。

根據官方文件(沒逐一實測),這張摘要卡會刻意留下幾種東西:你原本想幹嘛(你的需求跟意圖)、過程中的關鍵技術概念、動過哪些檔案以及重要的程式碼片段、踩過哪些錯以及怎麼修好的、還沒做完的待辦、現在正在進行的工作。換句話說,它留的是「劇情大綱」。

被丟掉的則是:逐字的工具輸出、中間那些繞來繞去的推理過程。那支三百行檔案的完整內容不再攤在桌上了,模型只記得「我讀過它、它大概長這樣、我改了哪幾行」。一字不差的原文,沒了。

這件事平常是自動發生的。當桌子快滿、逼近上限時,auto-compact 會自己觸發,把舊對話換成摘要卡,騰出空間,讓你無縫聊下去。確切在幾 % 觸發官方沒公布,但你可以用 /context 看到那條「autocompact buffer」還剩多少。

摘要卡的代價

天下沒有白吃的午餐。摘要卡騰出了空間,代價就是——摘要不等於原文。一份三頁的會議記錄濃縮成三行結論,那三行救不回中間被砍掉的細節。

所以壓縮之後,你偶爾會遇到模型「忘了」某個你們稍早才敲定的微妙決定,或是搞混一段它其實讀過、但只剩摘要的程式碼。這不是它變笨,是那張紙已經不在桌上了。理解這一點,你就抓到重點了:任何你事後不想弄丟的東西,都不該只活在對話裡。 該寫進 CLAUDE.md、寫進規則檔、落成專案文件——因為這些開場會自動重新上桌,摘要卡不保證留得住。

所以,你什麼時候該手動按它

原理拆到這裡,時機就自己浮出來了。

auto-compact 是機器在猜「什麼重要」。它猜得不差,但它不知道你腦子裡下一步的計畫。手動 /compact 的價值就在這:由你來決定那張摘要卡上寫什麼。

最典型的場景是「換大任務之前」。假設你剛跟它奮戰完一個登入的 bug,接下來要開一個完全不相干的功能。這時桌上還堆著一整疊 bug 的殘骸,既占空間又干擾判斷。你可以按 /compact 保留登入 bug 的修復結論,附上指示告訴它:摘要卡上請幫我留住這段,其餘壓掉。這樣新任務起跑時,桌子清爽,但該記得的結論還在。

另一個訊號是「感覺變鈍」。對話很長之後,如果模型開始回得慢、抓錯重點、或明顯在跟一堆舊 context 打架,那多半是桌子太擠了。這時主動壓一次,往往比等它自動觸發更順手。

要跟 /clear 分清楚。/clear 是把整張桌子擦光、從零開始,適合你要做的事跟前面完全無關、連摘要都不需要留的時候。/compact 是留一張大綱,/clear 是連大綱都不要。搞混了,你要嘛白白弄丟該留的、要嘛拖著一堆該丟的。

這其實是所有長對話 AI 工具的共通課題

退一步看,/compact 教你的不只是一個指令。它把一件平常藏在幕後的事攤到你面前:任何會「記住對話」的 AI 工具,背後都有一張會滿的桌子,也都得面對「留什麼、丟什麼」這道題。

差別只在有些工具替你偷偷做、完全不讓你插手,有些像 Claude Code 一樣,把 /context/compact/clear 這幾個把手交到你手裡。一旦你腦子裡有了「桌子」這個模型,你用任何長對話 AI 的姿勢都會不一樣——你會開始留意自己餵了多少紙上桌、會在換題目前主動清桌、會把真正重要的結論寫進檔案而不是賭它在壓縮後還記得。

指令會改版,這個底層的畫面不會。搞懂桌子,你就不只是會按一個鍵,而是真的知道自己在管什麼。