Skip to content

Session Pruning

Session pruning 會在每次 LLM 呼叫前從上下文中修剪舊的工具結果。它可以減少累積工具輸出(執行結果、檔案讀取、搜尋結果)造成的上下文膨脹,而不會影響您的對話訊息。

長時間的會話會累積工具輸出,從而膨脹上下文視窗。 這會增加成本,並可能迫使 compaction 過早發生。

Pruning 對於 Anthropic prompt caching 尤其有價值。在快取 TTL 過期後,下一個請求會重新快取完整的 prompt。Pruning 減少了快取寫入的大小,從而直接降低了成本。

  1. 等待快取 TTL 過期(預設為 5 分鐘)。
  2. 尋找舊的工具結果(絕不會觸及使用者與助理的訊息)。
  3. 軟修剪 過大的結果——保留頭部和尾部,插入 ...
  4. 硬清除 其餘部分——以預留位置取代。
  5. 重置 TTL,以便後續請求重用新的快取。

OpenClaw 會針對 Anthropic 設定檔自動啟用 pruning:

設定檔類型已啟用 PruningHeartbeat
OAuth 或 setup-token1 小時
API 金鑰30 分鐘

如果您設定了明確的值,OpenClaw 將不會覆寫它們。

對於非 Anthropic 提供者,Pruning 預設為關閉。若要啟用:

{
agents: {
defaults: {
contextPruning: { mode: "cache-ttl", ttl: "5m" },
},
},
}

若要停用:設定 mode: "off"

PruningCompaction
是什麼修剪工具結果摘要對話內容
是否儲存?否(每次請求)是(在記錄中)
範圍僅限工具結果整個對話

它們互為補充——pruning 在 compaction 循環之間保持工具輸出的精簡。