Skip to content

上下文窗口与 Compaction(Context Window & Compaction)

每个模型都有一个 context window(模型能看到的最大 tokens)。长时间运行的聊天会不断累积消息与 tool results;当窗口变得紧张时,Moltbot 会对更早的历史进行 compaction(压缩/总结),以保持在限制之内。

compaction 是什么

Compaction 会把较旧的对话总结成一个紧凑的 summary 条目,并保留最近的消息不变。summary 会被写入 session history,因此后续请求会使用:

  • compaction summary
  • compaction 点之后的近期消息

Compaction 会持久化到该 session 的 JSONL history 中。

配置

agents.defaults.compaction 的配置项参见 Compaction config & modes

自动 compaction(默认开启)

当 session 接近或超过模型 context window 时,Moltbot 会触发 auto-compaction,并可能用“压缩后的上下文”重试原始请求。

你会看到:

  • verbose 模式下的 🧹 Auto-compaction complete
  • /status 中显示 🧹 Compactions: <count>

在 compaction 之前,Moltbot 可以运行一次静默 memory flush回合,把可持久化的笔记写入磁盘。细节与配置参见 Memory

手动 compaction

使用 /compact(可选附加说明)强制执行一次 compaction:

/compact Focus on decisions and open questions

上下文窗口来源

上下文窗口由模型决定。Moltbot 使用已配置 provider catalog 中的模型定义来确定限制。

compaction vs pruning

  • Compaction:总结并持久化到 JSONL。
  • Session pruning:仅裁剪旧的 tool results,每次请求临时对内存上下文生效。

pruning 细节参见 /concepts/session-pruning

小贴士

  • 当 session 变得“陈旧”或上下文膨胀时,使用 /compact
  • 大型 tool 输出已被截断;pruning 可以进一步减少 tool results 的堆积。
  • 如果需要彻底重开,/new/reset 会创建新的 session id。