Session Pruning
Session Pruning
Section titled “Session Pruning”Session pruning 會在每次 LLM 呼叫前從上下文中修剪舊的工具結果。它可以減少累積工具輸出(執行結果、檔案讀取、搜尋結果)造成的上下文膨脹,而不會影響您的對話訊息。
長時間的會話會累積工具輸出,從而膨脹上下文視窗。 這會增加成本,並可能迫使 compaction 過早發生。
Pruning 對於 Anthropic prompt caching 尤其有價值。在快取 TTL 過期後,下一個請求會重新快取完整的 prompt。Pruning 減少了快取寫入的大小,從而直接降低了成本。
- 等待快取 TTL 過期(預設為 5 分鐘)。
- 尋找舊的工具結果(絕不會觸及使用者與助理的訊息)。
- 軟修剪 過大的結果——保留頭部和尾部,插入
...。 - 硬清除 其餘部分——以預留位置取代。
- 重置 TTL,以便後續請求重用新的快取。
OpenClaw 會針對 Anthropic 設定檔自動啟用 pruning:
| 設定檔類型 | 已啟用 Pruning | Heartbeat |
|---|---|---|
| OAuth 或 setup-token | 是 | 1 小時 |
| API 金鑰 | 是 | 30 分鐘 |
如果您設定了明確的值,OpenClaw 將不會覆寫它們。
對於非 Anthropic 提供者,Pruning 預設為關閉。若要啟用:
{ agents: { defaults: { contextPruning: { mode: "cache-ttl", ttl: "5m" }, }, },}若要停用:設定 mode: "off"。
Pruning 與 compaction 的比較
Section titled “Pruning 與 compaction 的比較”| Pruning | Compaction | |
|---|---|---|
| 是什麼 | 修剪工具結果 | 摘要對話內容 |
| 是否儲存? | 否(每次請求) | 是(在記錄中) |
| 範圍 | 僅限工具結果 | 整個對話 |
它們互為補充——pruning 在 compaction 循環之間保持工具輸出的精簡。
- Compaction —— 基於摘要的上下文減少
- Gateway Configuration —— 所有的 pruning 設定選項
(
contextPruning.*)