2.1 KiB
2.1 KiB
title, type, tags, sources, last_updated
| title | type | tags | sources | last_updated | ||||
|---|---|---|---|---|---|---|---|---|
| 上下文压缩(Context Compaction) | concept |
|
|
2026-04-23 |
Definition
上下文压缩是 AI Agent 在对话填满 Context Window 时,将旧消息压缩成摘要为新消息腾出空间的内置机制。是 OpenClaw 管理上下文长度的核心手段。
How It Works
当对话消息积累到一定量(接近 Context Window 限制)时,OpenClaw 的压缩器运行:
- 扫描历史消息
- 生成摘要(Summary)
- 丢弃原始消息
- 用摘要替代历史
The Problem
压缩摘要丢失细节:
- 姓名、数字、具体决定等关键信息全部消失
- 摘要抓住了要点,但丢掉了可操作的细节
- 精心设计的第 3 条消息指令和第 7 条闲聊得到相同处理
"上下文窗口是有限的。但默认行为对一切一视同仁,这意味着你精心设计的第三条消息指令,和第七条消息的闲聊得到了相同待遇。" — 养龙虾5天血泪史
Solution: Memory Flush
在压缩运行前将重要上下文写入磁盘:
{
"compaction": {
"memoryFlush": {
"enabled": true,
"softThresholdTokens": 4000
}
}
}
当会话接近上下文限制时:
- OpenClaw 触发静默回合
- Agent 将重要内容写入
memory/YYYY-MM-DD.md - 压缩器运行
- 即使摘要丢失,重要内容仍保留在磁盘上
注意:4000 这个数值要根据模型上下文窗口大小调整。大模型(32K/128K/200K tokens)应设置更高值,避免过度压缩导致上下文碎片化。
Key Insight
"压缩不是敌人。压缩过程中丢失信息才是。"
如果只在上下文窗口中,它是临时的。如果在磁盘上,它就能存活。