Claude Code越聊越笨?4個指令管好「上下文」,用量60%就該主動壓縮
用Claude Code寫到一半,它突然忘了前面交代的規則?問題可能出在上下文快滿了。作者拆解 /context、/compact、/clear、/resume 等4個指令,教你看懂上下文用量,在對的時機壓縮或清空。本文節錄自《Claude Code全攻略》。
文/曾慶良(阿亮老師)
本文目錄(點擊可快速前往)
為什麼要管上下文?上下文、對話歷史、費用的關係【指令1】用 /context 查上下文佔比【指令2】用 /compact 主動壓縮(60%觸發點)【指令3】用 /clear 徹底清空【指令4】/resume 對話恢復【進階】客製化statusline顯示上下文用量【建議】上下文管理SOP
使用工具:Claude Code(需付費方案,免費版不能用)
安裝說明:https://code.claude.com/docs/zh-TW/setup
不想用終端機:下載電腦版,直接在桌面程式中使用Claude Code
為什麼要管上下文?
已經學會用 /usage 看Token用量、用 /cost 看費用。但有一件事這兩個指令看不到:Claude Code的對話有「容量上限」,超過了就會開始忘東忘西。
這個容量上限叫做Context Window(上下文視窗),所有對話歷史(你的提問 + Claude的回覆 + 讀過的檔案內容)都會疊在裡面。容量越接近滿,發生的問題會越多:
上下文用量你會遇到的狀況0–40%對話流暢,Claude記得所有細節40–60%還沒事,但開始要留意60–80%Claude偶爾忘記前面講過的小細節80–90%明顯漏掉指令、忽略CLAUDE.md規則90–100%自動壓縮觸發,回覆變短、品質下降
結論:不要等Claude變笨才處理上下文。60%就該主動行動。
上下文、對話歷史、費用的關係
很多人把這3件事搞混,先釐清:
項目是什麼用什麼指令查滿了會怎樣上下文視窗這次對話Claude能「同時記住」的容量上限/contextClaude開始忘事對話歷史從這次session開始累積的所有訊息滾動畫面看持續累積,不會自動消失Token用量/費用從這次session累積的計費基礎/usage /cost撞到月費用上限
關鍵差別:
上下文滿了 → 影響智慧,要靠 /compact 或 /clear 處理
費用滿了 → 影響額度,要靠升級方案或省模型處理
兩件事獨立發生,要分開管。
【指令1】用 /context 查上下文佔比
啟動Claude Code,隨便聊幾句之後輸入:
/context
[模擬] /context 報表:
Context Window Usage
╭───────────────────────────────────╮
│ ████████░░░░░░░░░░░░░░░░░░░░░░ 28% │
╰───────────────────────────────────╯
Total capacity: 200,000 tokens
Used: 56,420 tokens (28%)
Available: 143,580 tokens (72%)
Breakdown by source:
• System prompt + CLAUDE.md 2,340 tokens (1.2%)
• User messages 14,250 tokens (7.1%)
• Assistant responses 18,920 tokens (9.5%)
• Tool results (file reads) 20,910 tokens (10.5%)
─────────────────────────────────────
Status: 健康(建議已用量保持在 60% 內)
總容量以你的模型為準:多數模型是200K tokens,但Sonnet 5 / Fable 5已提供1M context選項——/context第一行的Total capacity才是你當下的真實上限。
Fable 5的完整脈絡規格:context window 100萬(1M)token、單次輸出上限12.8萬(128K)token、資料保留30天、不支援零資料保留(ZDR)。1M聽起來很多,但單次輸出被128K綁住——長文件產出要拆段,不能期待一次吐完。
別讓模型「自己嚇自己」提早收工。高階模型有時會在額度還很充裕時,就主動說「上下文快滿了、要不要開新對話」而中斷任務。這不是真的滿了,而是它保守過頭。你可以在CLAUDE.md補一條反制指令:
可用額度充裕時,不要因為接近上限就停手、總結或建議我開新 session,
請直接繼續完成手上的工作。
這條屬於「駕馭Fable 5的指令範本」之一,和CH05那組(防過度思考、防自作主張、診斷vs.修復、memory寫法)是同一套心法——把模型保守或雞婆的預設行為,用一句話校正回來。
重點看4個分項:
來源為什麼會大Tool results讀檔次數多、檔案大時會迅速膨脹Assistant responsesClaude生成大量程式碼時User messages你貼了長文件、長日誌System prompt + CLAUDE.md永遠都在,無法縮減
/context多久看一次?沒有硬規則,但建議跑完一個複雜任務後看一次、感覺Claude變笨時看一次。
【指令2】用 /compact 主動壓縮(60%觸發點)
當 /context 顯示60%以上,就該主動壓縮。
操作:
/compact
[模擬] /compact執行畫面:
Compacting conversation...
Before: 142,830 tokens (71%)
After: 38,420 tokens (19%)
Saved: 104,410 tokens
✓ 對話歷史已壓縮成摘要,關鍵決定與檔案內容保留
✓ Claude 仍記得這次 session 做過的事,但細節已濃縮
繼續對話即可。
/compact 做了什麼?它讓Claude自己回顧整個對話,輸出一份摘要,然後用這份摘要取代原始的長對話歷史。結果是:
上下文騰出空間
主要工作脈絡保留
細節(例如某個變數的精確命名)可能會被略掉
壓縮過程本身要消耗一些Token(但通常划算)
壓縮完,馬上再跑一次/context驗證:
/context
確認已用百分比真的降下來了(例如71% → 19%)。這一步5秒鐘,能讓你確定壓縮有效,也順便體會前後差異。
何時該/compact、何時該 /clear?
情境該用還在做同一個任務,但Claude開始迷糊/compact同一個任務跑很久了,想保留脈絡/compact要切換到完全無關的新任務/clear進入第二個工作天,重新開始/clear我把上一份工作的secret不小心貼進去了/clear(立刻清掉)
【指令3】用 /clear 徹底清空
/clear
注意:/clear 是立即執行、沒有確認畫面、不可逆。按下Enter的瞬間對話歷史就清空了。清空前如果有想保留的結論,先用 /export 把整段對話匯出成檔案再清。
清空後Claude不再記得任何先前的訊息;CLAUDE.md與已安裝的Skills / Plugins不受影響。
和 /compact 的本質差別:
/compact:「我把房間整理好,東西還在」
/clear:「我把房間清空了,換新主題」
【指令4】/resume 對話恢復
有兩種情境會用到 /resume。
情境A:你不小心關掉Claude Code視窗
重新啟動:
claude --continue
[模擬]:
✓ Resuming last session from 2 minutes ago...
✓ Restored 47 messages, 38% context
> ▌
情境B:你想回到幾天前的某次對話
/resume
[模擬]對話歷史選單:
Recent Sessions
[1] 2026-05-11 14:23 (47 msgs) Flask Hello World 專案
[2] 2026-05-10 09:51 (132 msgs) 程式碼審查與重構
[3] 2026-05-09 17:08 (28 msgs) CLAUDE.md 設定
[4] 2026-05-08 11:30 (89 msgs) Skills 開發
↑↓ Navigate Enter: Resume Esc: Cancel
選擇要恢復的對話,按Enter,Claude Code把那次的所有上下文載回來。
/resume 的價值:
不需要重新貼背景資料
不需要重新解釋專案脈絡
跨日工作流可以自然續接
小提醒:claude --continue 是「續接最後一次」的快捷;/resume 是「進選單選哪一次」的完整版。
【進階】客製化statusline顯示上下文用量
這節是進階選作,只想入門的話可以直接跳過。下面整段程式碼你完全不用看懂——最省事的做法是把這整節複製起來丟給Claude,說「幫我照這節設定好statusline」,它會自己幫你寫好、掛上去。等你之後想深入再回來研究原理即可。
Claude Code的輸入框下方有一條statusline。它的機制是「外掛腳本」;Claude Code會把當前狀態打包成一包JSON從stdin餵給你指定的指令,你的腳本輸出什麼文字(第一行),statusline就顯示什麼。設定長這樣:
{
"statusLine": {
"type": "command",
"command": "python ~/.claude/statusline.py"
}
}
沒有format、refreshInterval這類欄位——顯示邏輯全部由你的腳本決定,這正是它強大的地方。
目標效果:
> ▌
~/Desktop/flask-hello | Sonnet 5 | ctx 已用 42%
步驟1:建立statusline腳本
把下面的跨平台Python腳本存成~/.claude/statusline.py(直接把本節整段丟給Claude請它代勞也行):
#!/usr/bin/env python3
# ~/.claude/statusline.py — 顯示「目錄 | 模型 | context 已用%」
import sys, json, os
data = json.load(sys.stdin)
# 1) 目前工作目錄(家目錄縮寫成 ~)
cwd = data.get("workspace", {}).get("current_dir") or data.get("cwd", "")
home = os.path.expanduser("~")
if cwd.startswith(home):
cwd = "~" + cwd[len(home):]
# 2) 模型顯示名
model = data.get("model", {}).get("display_name", "?")
# 3) context 已用百分比(欄位名依版本而異,逐一嘗試;拿不到就顯示 --)
pct = None
ctx = data.get("context_window") or data.get("context") or {}
used = ctx.get("used_tokens") or ctx.get("used")
size = ctx.get("max_tokens") or ctx.get("size") or ctx.get("context_window_size")
if used and size:
pct = round(used * 100 / size)
if pct is None:
ctx_text = "ctx --"
else:
color = "\033[32m" # 綠:健康
if pct >= 80: color = "\033[31m" # 紅:立刻 /compact 或 /clear
elif pct >= 60: color = "\033[33m" # 黃:準備行動
ctx_text = f"{color}ctx 已用 {pct}%\033[0m"
print(f"📁 {cwd} | 🤖 {model} | 🧠 {ctx_text}")
Claude Code傳入的JSON欄位會隨版本演進(以官方文件Status line章節為準)。想親眼看看拿到什麼,可在腳本開頭暫時加一行 open(os.path.expanduser("~/statusline_debug.json"), "w").write(json.dumps(data)) 再打開檔案研究。
步驟2:把腳本掛進settings.json
編輯 ~/.claude/settings.json,加入(或請Claude加入)本節開頭那段statusLine設定。Windows用戶把command寫成:
"command": "python \"%USERPROFILE%\\.claude\\statusline.py\""
步驟3:重啟Claude Code驗證
/exit
claude
[模擬]啟動後的statusline:
> ▌
~/Desktop | Sonnet 5 | ctx 已用 8%
聊一陣子後,已用量爬到60%會轉黃、80%轉紅——紅色就是強烈建議 /compact 或 /clear 的時刻。
設定完成後,輸入框下方顯示目錄、模型與上下文已用百分比(圖/博碩出版《Claude Code全攻略》)
【建議】上下文管理SOP
把這套流程記下來,之後不用每次想:
任務開始
↓
[每次切換主任務] → /clear
↓
工作中⋯
↓
[statusline 顯示已用 60% 以下(綠)] → 繼續
[已用 60–80%(黃)] → 留意,準備收尾或 /compact
[已用 80% 以上(紅)] → 立刻 /compact 或 /clear
↓
任務完成
↓
[需要明天續接] → 直接 /exit(明天 claude --continue)
[已徹底完成] → /clear
[要切換到無關的新任務] → /clear
↓
明天回來
↓
[續上次任務] → claude --continue
[選歷史對話] → /resume → 選清單
[全新主題] → 直接 claude
節錄自:博碩文化《Claude Code全攻略:從一句話到部署上線,打造你的AI Agent開發團隊》/曾慶良(阿亮老師) 著
將【104職場力】加入Google偏好來源
推薦閱讀:
Claude Code Subagent怎麼用?3分鐘建好子代理,判斷何時該多Agent分工
商務Email好難回?用Claude Skill建回信SOP,4大類型自動判斷
「Skill」和「提示詞」差在哪?6大差異與SKILL.md寫法一次看
2026-10-20 18:30:03