会话修剪
会话修剪会在每次 LLM 调用之前从上下文中修剪旧的工具结果。它减少了累积工具输出(执行结果、文件读取、搜索结果)导致的上下文膨胀,而不会影响您的对话消息。
长会话会累积导致上下文窗口膨胀的工具输出。这会增加成本,并可能迫使系统过早进行压缩。
修剪对于 Anthropic 提示词缓存尤其有价值。在缓存 TTL 过期后,下一个请求会重新缓存完整的提示词。修剪减少了缓存写入的大小,从而直接降低了成本。
- 等待缓存 TTL 过期(默认为 5 分钟)。
- 查找旧的工具结果(用户和助手的消息永远不会被触动)。
- 软修剪(Soft-trim)过大的结果 —— 保留头部和尾部,并插入
...。 - 硬清除(Hard-clear)其余部分 —— 用占位符替换。
- 重置 TTL,以便后续请求重用新的缓存。
OpenClaw 会为 Anthropic 配置文件自动启用修剪:
| 配置文件类型 | 已启用修剪 | 心跳间隔 |
|---|---|---|
| OAuth 或 setup-token | 是 | 1 小时 |
| API 密钥 | 是 | 30 分钟 |
如果您设置了显式值,OpenClaw 将不会覆盖它们。
对于非 Anthropic 提供商,默认情况下修剪是关闭的。要启用它:
{ agents: { defaults: { contextPruning: { mode: "cache-ttl", ttl: "5m" }, }, },}要禁用:请设置 mode: "off"。
修剪 vs 压缩
Section titled “修剪 vs 压缩”| 修剪 | 压缩 | |
|---|---|---|
| 作用 | 修剪工具结果 | 总结对话 |
| 是否保存? | 否(按请求) | 是(在记录中) |
| 范围 | 仅限工具结果 | 整个对话 |
它们相辅相成 —— 修剪可以在压缩周期之间保持工具输出的精简。
- 压缩 —— 基于摘要的上下文缩减
- Gateway(网关) 配置 —— 所有修剪配置选项
(
contextPruning.*)