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。