Compact 與 Session 管理 SOP
Vibe Coding 對話中的 context 管理 SOP。判斷原則簡單:「如果我是人類工程師,這時候我會起身去吃午餐然後再回來嗎?」如果是——該 compact 了。
典型 Compact 時機
-
探索完 codebase、產出計畫之後
- 這時 context 已被探索 token 灌爆
- 對應 Plan-then-Execute SOP Step 3 → Step 4 之間
-
完成一個子任務、要進入下個子任務之前
- 子任務內部細節對下個子任務沒用
- 留 plan + summary 即可
-
對話長到開始發生「函式名稱漂移」
- 變數名變來變去
- 即使建立了引導文件仍偏離主題
- 重複犯同一個錯誤
對話太長的退化警訊(Context Rot Zone)
| 警訊 | 含義 |
|---|---|
| 函式名稱前後不一致 | AI 開始忘記 own naming conventions |
| 即使建立了引導文件仍偏離主題 | Attention 開始 drift |
| 重複犯同一個錯誤 | 之前的錯誤訊息已從 context 滑出 |
→ 不要硬撐,立即 compact 或開新 session 並餵入精簡 plan。
Compact vs 開新 Session
| 場景 | 適合 |
|---|---|
| 同主題子任務切換 | Compact(保留主題上下文) |
| 切到完全不同主題 | 開新 Session |
| 已 compact 過一次但又開始漂移 | 開新 Session |
| Context 沒滿但思路混亂 | Compact + 重新整理 plan |
餵新對話時的最低必要資訊
開新 session 時,要餵入:
- Plan.md(從上個對話產出)
- CLAUDE.md 等 context 文件(CLAUDE.md 4 層機制 自動 load)
- 必要的 codebase 樣本(譬如「請參考
src/reports/revenue.ts的結構」) - 不可動範圍(scope 限制要重講一次)
- 驗證標準(怎樣算 done)
對應 Prompt 必備六元素。
Claude Code 的 Compact 機制
Claude Code 內建 /compact slash command:
- 自動把目前 context 摘要成精簡版
- 保留關鍵 plan / progress
- 清掉中間 exploration 細節
詳見 Slash Commands。
跟 Plan-then-Execute SOP 的銜接
Plan-then-Execute SOP
Step 1-3 (對話 #1:探索 + 計畫)
↓
↓ ← 此處用 compact 或開新 session
↓
Step 4 (對話 #2:執行)
Compact 不是「等爆了才用」,是 Step 3 → Step 4 之間的標準動作。
跟 Effort 推理強度 的關係
Compact 後可調 effort:
- 探索階段(高 ambiguity)→ 高 effort
- Compact 後執行階段(plan 已定)→ 中 effort 即可
避免長對話內 effort 一路撐高造成成本浪費。
違反時的常見症狀
- ❌ 「對話 200 輪沒 compact,AI 開始亂改檔」→ context rot
- ❌ 「Step 3 產出 plan 後直接 Step 4 在同對話」→ scope 限制 AI 容易忘
- ❌ 「換主題沒開新 session」→ 上一主題的決策殘留誤導
相關
- Vibe Coding / Plan-then-Execute SOP
- Context Rot Zone — 警訊背後的機制
- Effort 推理強度 — compact 後可調整
- CLAUDE.md 4 層機制 — 自動載入 context
- Slash Commands —
/compact機制 - Sub-agent — 替代方案:把探索丟給 sub-agent,主對話保持乾淨