上下文窗口与 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。