OpenClaw /compact指令完整教學2026:上下文爆了怎麼辦?記憶壓縮省Token實戰
常見症狀:和 OpenClaw 聊了幾個小時之後,AI 開始重複之前說過的事、回答越來越不準確、甚至出現「我不記得你之前說過這個」的情況?這是上下文視窗(Context Window)快要溢出的典型症狀。本文完整解說 /compact 指令如何幫你解決這個問題。
什麼是「上下文溢出」?為什麼 AI 會開始犯錯?
每個 AI 模型都有一個固定大小的「上下文視窗」——可以理解為 AI 的短期記憶容量。Claude 模型的上下文視窗約為 200,000 個 Token,GPT-4o 約為 128,000 Token。聽起來很大,但當你和 OpenClaw 深度對話幾個小時後——尤其是在分析長文件、反覆修改程式碼、或進行複雜的多步驟任務時——這個上限其實很容易觸及。
當上下文接近滿載時,會發生以下幾個現象:
🤦 AI 開始「失憶」
早期對話的內容被截斷,AI 無法回憶你幾個小時前設定的規則或偏好。
🔄 回答品質下降
AI 開始重複相同建議、回答變得籠統、甚至出現與事實矛盾的回應。
💸 Token 消耗暴增
每次請求都需要攜帶大量歷史對話,API 費用隨著對話拉長急速攀升。
⏱️ 回應速度變慢
更長的上下文意味著更多計算量,即使是快速問題也需要等待更久的回應。
這就是 OpenClaw 設計 /compact 指令的核心原因:在上下文滿載之前,主動對對話歷史進行智慧壓縮,保留最重要的資訊,捨棄冗餘的中間過程,讓 AI 的「工作記憶」保持乾淨高效。
/compact 指令是什麼?它如何運作?
/compact 是 OpenClaw 的一個斜線指令(Slash Command),可以直接在你的通訊軟體(WhatsApp、Telegram、Discord 等)中輸入,指示 OpenClaw 對目前的對話上下文進行壓縮摘要。執行後,OpenClaw 會:
分析當前上下文
OpenClaw 掃描整個對話歷史,識別哪些是真正重要的決策、結論、用戶偏好和關鍵背景資訊。
生成壓縮摘要
以結構化格式將重要資訊濃縮成一份簡明摘要,通常能將原始上下文壓縮至 10-20% 的大小,同時保留 90% 以上的有效資訊量。
替換舊對話歷史
用新生成的摘要取代原始的長篇對話歷史,讓 AI 以「乾淨清醒的狀態」繼續工作,而不需要從頭重複所有背景說明。
💡 /compact 和清空對話有什麼不同?
很多人第一反應是「那直接清空對話不就好了?」差別在於:清空(/clear)會讓 AI 完全失去所有對話記憶,你必須從頭解釋所有背景;而 /compact 會保留關鍵決策和偏好,讓 AI 可以無縫繼續當前任務,只是去掉了冗長的過程記錄。
/compact 指令的完整使用方法
基本用法
# 最簡單的用法:直接在聊天視窗輸入
/compact
# 附帶壓縮重點說明(讓 AI 知道保留哪些資訊)
/compact 保留:程式碼規範、已完成的功能清單、API 端點設計
# 指定壓縮後繼續的任務
/compact 接著繼續實作用戶登入功能
進階用法:自訂保留重點
# 強調保留特定類型的資訊
/compact focus:decisions,preferences,code
# 指定壓縮比例(預設為自動)
/compact ratio:aggressive # 更激進壓縮,最省 Token
/compact ratio:conservative # 保守壓縮,保留更多細節
# 壓縮並立即切換主題
/compact 接下來我們討論系統部署方案
✅ 如何確認 /compact 執行成功?
執行 /compact 後,OpenClaw 會回覆一份壓縮摘要,顯示「已保留的關鍵資訊」和「壓縮前後的 Token 數量對比」。如果回覆中出現類似 Context compressed: 45,000 → 4,200 tokens,代表壓縮成功。
什麼時候應該主動使用 /compact?
不用等到 AI 開始犯錯才使用。以下幾個時機點是最佳使用 /compact 的時機:
對話超過 2 小時
長時間對話必然累積大量冗餘內容,及早壓縮效果最好。
切換到新任務前
完成一個大任務、開始另一個任務前,壓縮舊任務的細節。
讀完長文件後
分析完 PDF 或長篇程式碼後,立即壓縮,只保留關鍵結論。
📊 如何知道快要溢出了?
OpenClaw 會在上下文使用量達到 80% 時自動警告你,但你也可以主動查詢:
/context status # 查看當前 Token 使用量
/context usage # 顯示詳細的 Token 分布
/compact 與 OpenClaw 持久記憶系統的關係
很多用戶擔心:「壓縮後,AI 會不會忘記我是誰?」這是一個很好的問題。OpenClaw 有兩種不同類型的記憶系統,/compact 只影響其中一種:
📁 持久記憶(Persistent Memory)— 不受 /compact 影響
儲存在 ~/.openclaw/memory/ 目錄中的長期記憶。包含你的名字、偏好設定、重要的個人資訊、已完成項目的摘要等。這部分資訊是永久保存的,/compact 不會刪除或修改它。
💬 對話上下文(Session Context)— 受 /compact 影響
目前這個對話 Session 中累積的所有訊息。這是 /compact 壓縮的對象。壓縮後,AI 仍然記得你是誰(透過持久記憶),只是把本次對話的冗餘過程壓縮掉了。
💡 實戰技巧:讓重要資訊進入持久記憶
如果你擔心某些資訊在 /compact 後丟失,先用 /remember 這件事很重要:[內容] 將其存入持久記憶,再執行 /compact。這樣即使壓縮了對話,重要資訊也永遠不會丟失。
/compact 常見問題與錯誤排查
❌ 問題:/compact 後 AI 好像忘了重要設定
原因:壓縮演算法判斷該設定「不夠重要」而捨棄。
解法:執行 /compact 前,先明確告訴 OpenClaw 哪些資訊必須保留:
/compact 必須保留:所有已確定的資料庫 schema、API 設計決策、程式碼風格規範
❌ 問題:/compact 沒有效果,Token 數沒有減少
原因:可能是對話歷史太短(不足 5000 Token),不需要壓縮;或是上下文已經很精簡。
解法:對話長度超過 10,000 Token 才建議使用 /compact,否則效益不大。
❌ 問題:壓縮後 AI 態度或風格突然改變
原因:SOUL.md 中定義的人格設定,在壓縮摘要中沒有被充分體現。
解法:在 SOUL.md 中明確設定人格特質,這些設定在每次對話開始時都會自動載入,不受 /compact 影響。
進階省 Token 策略:/compact 搭配其他指令
單獨使用 /compact 已經很有效,但配合其他指令可以實現更精細的 Token 管理:
🔧 /think off + /compact
關閉延伸思考模式後再執行壓縮。延伸思考本身會消耗大量 Token,關閉後再壓縮效果加倍。
/think off
/compact
💾 /remember 先存再壓縮
把關鍵決策先存入持久記憶,再執行壓縮,確保重要資訊萬無一失。
/remember [重要決策]
/compact
📊 /context status 定期監控
養成習慣在長任務中每隔 30 分鐘查一次 Token 使用量,達到 60% 就主動壓縮。
/context status
# 超過 60% 就執行 /compact
🔄 /sessions 切換新 Session
某些任務不適合壓縮(如需要完整對話追蹤的法律文件分析),改用新 Session 更安全。
/sessions new [新任務名稱]
真實數據:/compact 能省多少 Token?
根據 OpenClaw 社群用戶分享的實測數據,/compact 的效果非常顯著:
📋 實際案例:長篇程式碼審查任務
網路速度影響上下文壓縮效率
/compact 在執行時需要將整個上下文傳送至 AI 模型進行分析,然後等待壓縮摘要回傳。這個過程對網路頻寬和延遲有較高要求——特別是當上下文很大(5萬 Token 以上)時,慢速或不穩定的連線會導致:
❌ 慢速連線的問題
- • /compact 執行時間從 2 秒延長至 30 秒以上
- • 大型上下文傳輸中途斷線,壓縮失敗
- • 台灣連至境外 Claude/GPT API 延遲過高
✅ VPN07 千兆連線的優勢
- • 1000Mbps 頻寬確保大型上下文秒傳
- • 70+ 國家節點選擇最近的 API 伺服器
- • 穩定連線讓 /compact 每次都成功
設定自動壓縮:讓 OpenClaw 自己管理上下文
如果你不想每次手動執行 /compact,可以在 OpenClaw 的設定中啟用自動壓縮功能:
# 開啟自動壓縮功能(在 ~/.openclaw/openclaw.json 中設定)
{
"context": {
"auto_compact": true, // 啟用自動壓縮
"auto_compact_threshold": 0.75, // 達到 75% 時自動觸發
"compact_ratio": "balanced", // 壓縮策略:conservative/balanced/aggressive
"preserve_keys": [ // 強制保留的關鍵類型
"decisions",
"user_preferences",
"code_standards"
]
}
}
⚠️ 自動壓縮的注意事項
自動壓縮在後台靜默執行,有時可能在你不期望的時機觸發。如果你的任務需要完整的對話歷史(例如需要追溯幾小時前的討論細節),建議關閉自動壓縮,改用手動 /compact 更安全。
常見問題 Q&A
Q:/compact 和 /clear 的區別是什麼?
A:/clear 完全清空當前 Session 的對話歷史,AI 從零開始;/compact 則是智慧壓縮,保留最重要的資訊讓對話無縫繼續。日常使用建議用 /compact,只有在確定不需要任何舊記憶時才用 /clear。
Q:/compact 後能還原嗎?
A:不行。/compact 是不可逆的操作。如果你有重要的對話內容需要保留,建議先將其複製備份,或使用 /remember 指令存入持久記憶,再執行壓縮。
Q:使用本地模型(Ollama)時 /compact 有用嗎?
A:有用。本地模型的上下文視窗通常比雲端模型更小(許多只有 8,000-32,000 Token),所以對本地模型用戶來說,/compact 反而更重要。建議將觸發閾值設定為 60%,比雲端模型更頻繁地壓縮。
Q:從 Telegram 輸入 /compact 和從 Discord 輸入有區別嗎?
A:功能完全相同,OpenClaw 的斜線指令在所有支援的通訊平台上行為一致。唯一差異是 Discord 上以 / 開頭的指令可能和 Discord 自身的 Slash Command 衝突,此時可以在 OpenClaw 設定中改用其他前綴符號。
企業用戶的 Token 管理進階策略
對於重度使用 OpenClaw 的企業用戶或每天長時間工作的個人用戶,Token 管理是影響工作效率和 API 費用的關鍵因素。以下是進階的 Token 管理策略:
📊 建立 Token 消耗監控儀表板
在 OpenClaw 的 Skill 中建立自動化的 Token 使用量追蹤,每天生成報表:
# Token 監控腳本(加入每日 Cron 排程)
openclaw logs --filter api --last 24h | grep "tokens:" | \
awk '{sum += $NF} END {print "今日 Token 消耗:", sum}'
# 更詳細的統計
openclaw usage --daily --format json > ~/.openclaw/usage/$(date +%Y-%m-%d).json
🎯 任務分層:輕量 vs 重量模型
不是每個任務都需要用最強的模型。建立任務分層策略,對不同複雜度的任務使用不同的模型,大幅節省 Token 費用:
⚡ 善用快取機制
Claude 的 Prompt Caching 功能可以讓重複使用的長文本(如 SOUL.md 和背景資料)只需計算一次,後續請求直接讀取快取,費用大幅降低(快取部分只需原價 10%)。OpenClaw 會自動啟用這項功能,你只需確保常用文件保持穩定不頻繁修改。
不同使用場景的最佳壓縮策略
💻 程式開發場景
建議策略:保守壓縮程式碼審查和開發任務需要保留較多的技術細節和決策背景。建議使用 /compact ratio:conservative,並明確指定保留程式碼相關的討論。每個功能模塊完成後再壓縮一次。
📚 長篇文件分析
建議策略:激進壓縮分析完長篇報告或書籍後,用 /compact ratio:aggressive 只保留核心結論和關鍵數據。原始文件的細節已不需要,只需保留最有價值的洞察。
💼 業務任務管理
建議策略:平衡壓縮日常業務對話(如安排會議、回覆郵件)每天下班前執行一次 /compact,清理當天的對話細節,只保留待辦事項和重要決策,為第二天做好準備。
🎨 創意寫作輔助
建議策略:謹慎使用創意寫作中,「過程」往往和「結果」同樣重要。建議先用 /remember 保存關鍵的角色設定、世界觀和情節決策,再執行壓縮,確保創意工作的連貫性。
VPN07 - OpenClaw 最佳網路夥伴
千兆頻寬 · 1000Mbps · /compact 秒速完成 · 不怕斷線
OpenClaw 執行 /compact 時需要穩定的高速網路傳輸大型上下文。VPN07 提供業界頂級的 1000Mbps 千兆頻寬,確保你的 AI 助理和 Claude API 或 GPT API 之間的連線永遠暢通。運營超過十年的穩定口碑,覆蓋 70+ 國家節點,月費僅需 $1.5 美元,30 天無條件退款,是 OpenClaw 重度用戶的首選國際網路加速方案。
/compact 指令速查卡
/compact
基本壓縮,保留 AI 判斷的重要資訊
/compact [保留重點]
指定必須保留的資訊類型
/compact ratio:aggressive
激進壓縮,最大程度節省 Token
/compact ratio:conservative
保守壓縮,保留較多細節
/context status
查看目前 Token 使用量百分比
/remember [重要內容]
壓縮前先把重要內容存入持久記憶