Context Window 与 Compaction
每个模型都有一个 Context window(它能看到的最大 Token 数)。长时间运行的对话会积累消息和工具结果;一旦窗口空间紧张,OpenClaw 会 compact 旧的历史记录来保持在限制范围内。
什么是 Compaction
Compaction 会把旧的对话内容总结成一个紧凑的摘要条目,同时保持最近的消息不变。摘要会存储在 Session 历史中,所以后续请求会使用:
- Compaction 摘要
- Compaction 点之后的最近消息
Compaction 会持久化保存在 Session 的 JSONL 历史文件中。
配置
查看 Compaction 配置与模式 了解 agents.defaults.compaction 设置。
自动 Compaction(默认开启)
当 Session 接近或超过模型的 Context window 时,OpenClaw 会触发自动 Compaction,并可能使用压缩后的 Context 重试原始请求。
你会看到:
- 在详细模式下显示
🧹 Auto-compaction complete /status显示🧹 Compactions: <count>
在 Compaction 之前,OpenClaw 可以运行一个静默的 memory flush 轮次,将持久化笔记存储到磁盘。详情和配置请查看 Memory。
手动 Compaction
使用 /compact(可选择性地附带指令)来强制执行一次 Compaction:
/compact Focus on decisions and open questions
Context window 来源
Context window 是模型特定的。OpenClaw 使用配置的 Provider 目录中的模型定义来确定限制。
Compaction vs pruning
- Compaction:总结并持久化保存在 JSONL 中。
- Session pruning:仅修剪旧的工具结果,在内存中,每次请求时进行。
查看 /concepts/session-pruning 了解 pruning 详情。
小贴士
- 当 Session 感觉陈旧或 Context 臃肿时,使用
/compact。 - 大型工具输出已经被截断;pruning 可以进一步减少工具结果的堆积。
- 如果你需要一个全新的开始,
/new或/reset会启动一个新的 Session id。