Auto-compaction 規則衰減

Claude Code 隱藏的坑:對話太長時系統自動 compact 來節省 context window,但壓縮過程中 CLAUDE.md(專案手冊) 裡寫的規則可能會被丟掉。 Hans 實測「壓縮後 AI 對 CLAUDE.md 規則的遵守率可以降到接近 0%」——這條反 pattern 是 Handoff 接力機制 的存在理由。

衰減機制

Session 進行中:
   CLAUDE.md 規則完整 → AI 遵守率 ≈ 100%
                                    ↓
   對話越來越長 → 逼近 context 上限
                                    ↓
              auto-compaction 觸發
                                    ↓
   系統壓縮歷史訊息 → CLAUDE.md 規則被「總結掉」/ 丟失
                                    ↓
   壓縮後:AI 規則遵守率 ≈ 0%(實測)

為什麼會這樣

  • Compaction 是「LLM 自己做 summary」——它不知道哪些是 hard rule、哪些是日常閒聊
  • CLAUDE.md 規則散在 system prompt 之外,被當成「歷史對話的一部分」一起壓
  • 壓縮版本只留「對話大意」→ 細粒度的「不要 force push」「回覆用中文」這類規則就被總結沒了

實測數字

「我實測過,壓縮後 AI 對 CLAUDE.md 規則的遵守率可以降到接近 0%」 —— Hans

→ 不是「打折」,是接近歸零。等於 compaction 後 AI 失憶到不認識你的規則。

解法:Handoff 接力機制

不要寄望 compaction 保留東西——改用文件接力

session 結束前:
  AI 寫 handoff.md(做了什麼 / 還沒做什麼 / 下次要注意什麼)
                                    ↓
session 結束(規則照樣會丟)
                                    ↓
新 session 開頭:
  AI 先讀 handoff.md → 100% 拿回脈絡

→ 配 CLAUDE.md(專案手冊) 加兩條規則自動觸發,見 Handoff 接力機制

配套防禦

防禦機制
新 session 重啟把長 session 切短,避免逼近 compaction 閾值
handoff.md 接力不依賴 compaction,主動寫狀態
CLAUDE.md 精簡短 CLAUDE.md 即使壓也丟得少(套 CLAUDE.md 內容篩選原則
關鍵 hard rule 重提高風險動作前在對話內 inline 重提規則(CLAUDE.md 4 層機制 L4)

跟既有概念的關係

強連結

推斷連結

  • Context Rot Zone ?? — Context Rot Zone 是 30-40 萬 token 衰退帶;compaction 通常在這之前就觸發
  • Externalized Memory ?? — 規則衰減是「沒外部化」的代價

給 LLM agent 的警語

如果你(任何進入此 vault 的 LLM agent)發現自己:

  • 對話超長
  • 不確定 CLAUDE.md 規則是否還生效
  • 連續做了多輪後規則跑掉

→ 觸發 self-check:主動 Read 一次 CLAUDE,重新對齊規則,再繼續。

來源出處