工作階段修剪
OpenClaw 的工作階段修剪機制,用於在 LLM 呼叫前移除過時的工具結果,最佳化成本與快取效率。
核心功能
工作階段修剪會在 LLM 呼叫前從記憶體中的上下文移除過時的工具結果,而不會變更永久的工作階段歷史檔案。此功能最佳化 Anthropic 模型的成本與快取行為。
啟用條件
當 mode: "cache-ttl" 已啟用且該工作階段的上一次 Anthropic API 呼叫超過 TTL 閾值時,修剪便會生效。此功能僅影響該特定請求中發送的訊息,且僅適用於 Anthropic API 呼叫(以及 OpenRouter 的 Anthropic 模型)。
修剪策略
此過程區分兩種方式:
- 軟修剪(Soft-trim):壓縮過大的結果,保留開頭與結尾部分
- 硬清除(Hard-clear):將整個工具結果替換為佔位字串
使用者與助手訊息始終受保護;僅 toolResult 訊息可被移除,包含圖片區塊的訊息除外。預設會保護最後 3 則助手訊息。
預設設定
系統會自動為 OAuth 和 API 金鑰設定檔啟用 TTL 感知修剪。預設設定包括:
- 5 分鐘 TTL
- 保護最後 3 則助手訊息
- 50,000 字元的最低閾值,超過後才啟動修剪
成本效益
修剪會在 TTL 過期後的首次請求中減少 cacheWrite 大小。這可防止在閒置後恢復工作階段時,對完整對話歷史進行昂貴的重新快取。系統在修剪後會重置 TTL 視窗,讓後續請求能利用新快取的內容。
設定選項
使用者可透過允許/拒絕模式搭配萬用字元支援,將修剪限制在特定工具上,實現對哪些輸出進行修剪的精細控制。
提示: 修剪與 compaction 不同。修剪僅在每次請求時於記憶體中移除工具結果,而 compaction 會摘要並持久化至 JSONL。詳見 Compaction。