
對話被壓縮後,AI 代理會重讀檔案,不會重讀你交代的話
OpenAI 那份摘要加密,你讀不到
長對話快塞滿上下文視窗時,AI 代理會自動把前面的歷史壓成一段摘要,這叫壓縮(compaction)。壓完還記得什麼,看的不是那句話重不重要,是你當初把它放在哪:寫進檔案的會重新讀回來,只在對話裡講的只剩摘要。
什麼時候會壓
三家都讓你調觸發點,單位不一樣。
| 產品 | 觸發點怎麼設 |
|---|---|
| Claude Code | 接近上限時自動壓;/autocompact 可指定用到多少 token 就先壓 |
| Gemini CLI | 設成模型上限的一個比例,自動壓縮與手動 /compress 共用 |
| OpenAI Responses API | compact_threshold 給一個 token 數,越過就由伺服器端壓 |
Claude Code 把保留規則寫成一張表
三家裡寫得最細的是 Claude Code 的官方文件。壓縮之後:
| 放在哪 | 壓縮後 |
|---|---|
| 專案根目錄的 CLAUDE.md、自動記憶、計畫模式寫的計畫 | 從磁碟重新讀回 |
| 讀過或改過的檔案 | 挑最近修改的重讀,最多 5 個;超過 5,000 token 的只留路徑 |
| 叫用過的 skill | 每個留前 5,000 token,合計 25,000,最舊的先丟 |
| skill 清單、子目錄的 CLAUDE.md | 不會馬上回來,讀到相關檔案才重載 |
| 對話本身,包括你打字交代的事 | 壓成摘要 |
文件替「壓縮後指示不見了」列的第一個原因,就是它只在對話裡講過。
OpenAI 那一格,你讀不到
OpenAI 的壓縮會回傳一個壓縮項目。文件說它把先前的關鍵狀態與推理帶往下一輪,但它是加密的,不打算讓人讀懂。你打不開來確認它留了哪一句,官方還要你原樣傳回、不要自己修剪。
我怎麼放東西
- 之後每一輪都要守的規則,我寫進專案根目錄的指示檔,不在對話裡交代第二次。
- skill 最重要的幾行放最上面。截斷保留的是開頭,這是 Claude Code 文件自己的建議。
- 開一段長任務前,我先手動壓一次並寫明要留什麼,不等自動那次替我猜。
換一個代理產品,我會先問四件事:什麼時候壓、哪些從磁碟重讀、摘要看不看得到、能不能指定重點。這跟工具清單塞不塞得下是同一本帳的另一頁;把壓縮當方法來用,在上下文工程那篇。
查核備註:三家行為以官方文件為準,我沒有實測任何一款壓縮後漏掉了什麼。Gemini CLI 的預設比例,官方設定頁與程式庫變更紀錄說法不一,故不寫數字;OpenAI 沒有說明壓縮項目保留哪些內容。
LEARN
想系統性學會,不只看這一則?
Claude Code 教學:用終端 AI Agent 完成真正的工作
讓 Claude Code 在你的專案裡完成一個真實任務,而且控得住權限、驗得了 diff、管得住成本。
從第 0 課開始 →SOURCES
- AExplore the context window — Claude Code 官方文件(What survives compaction 表;/autocompact;/compact 可指定重點。2026-09-16 讀)
- AHow Claude remembers your project — Claude Code 官方文件(Instructions seem lost after /compact:根目錄 CLAUDE.md 從磁碟重讀、只在對話中給的指示會消失。2026-09-16 讀)
- AAgent Skills — Claude Code 官方文件(壓縮後重接最近一次叫用的 skill,各留前 5,000 token、合計 25,000 token。2026-09-16 讀)
- ACompaction — OpenAI API 官方指南(compact_threshold 伺服器端壓縮;壓縮項目加密、不可人讀;勿修剪 /responses/compact 輸出。2026-09-16 讀)
- AGemini CLI Configuration — 官方文件(model.chatCompression.contextPercentageThreshold 同時適用自動壓縮與 /compress。2026-09-16 讀)
來源分級:A = 一手公告/論文/官方文件 · B = 可信媒體 · C = 可參考但需脈絡 · D = 觀察用,不可當事實。
本文由 AI 協助研究與起草,矽基前沿編輯部編修,總編輯廖玄同審閱定稿。 編輯方針與 AI 使用說明


