压缩
上下文窗口和压缩
每个模型都有一个上下文窗口(它可以看到的最大令牌数)。长期运行的聊天会积累消息和工具结果;一旦窗口紧张,OpenClaw 会压缩旧的历史记录以保持在限制内。
什么是压缩
压缩将旧对话总结为紧凑的摘要条目,并保持最近的消息完整。摘要存储在会话历史中,因此未来的请求使用:
- 压缩摘要
- 压缩点之后的最近消息
压缩持久化在会话的 JSONL 历史中。
配置
在 openclaw.json 中使用 agents.defaults.compaction 设置来配置压缩行为(模式、目标令牌等)。
压缩摘要化默认保留不透明标识符(identifierPolicy: "strict")。你可以使用 identifierPolicy: "off" 覆盖此设置,或使用 identifierPolicy: "custom" 并提供自定义文本 identifierInstructions。
自动压缩(默认开启)
当会话接近或超过模型的上下文窗口时,OpenClaw 触发自动压缩,并可以使用压缩后的上下文重试原始请求。
你会看到:
- 详细模式下的
🧹 Auto-compaction complete /status显示🧹 Compactions: <count>
在压缩之前,OpenClaw 可以运行静默 memory flush轮次以将持久笔记存储到磁盘。参见 Memory 了解详情和配置。
手动压缩
使用 /compact(可选带指令)强制进行压缩传递:
/compact 专注于决策和未决问题
上下文窗口来源
上下文窗口是特定于模型的。OpenClaw 使用配置的提供者目录中的模型定义来确定限制。
压缩与修剪
- 压缩:总结并持久化在 JSONL 中。
- 会话修剪:仅修剪旧工具结果,内存中,每个请求。
参见 /concepts/session-pruning 了解修剪详情。
OpenAI 服务器端压缩
OpenClaw 还支持兼容的直接 OpenAI 模型的 OpenAI Responses 服务器端压缩提示。这与本地 OpenClaw 压缩分开,可以与其一起运行。
- 本地压缩:OpenClaw 总结并持久化到会话 JSONL 中。
- 服务器端压缩:当启用
store+context_management时,OpenAI 在提供者侧压缩上下文。
参见 OpenAI provider 了解模型参数和覆盖。
提示
- 当会话感觉过时或上下文膨胀时使用
/compact。 - 大工具输出已经被截断;修剪可以进一步减少工具结果积累。
- 如果你需要全新的状态,
/new或/reset启动新的会话 id。