Auto-sync: 2026-04-23 04:02

This commit is contained in:
2026-04-23 04:02:48 +08:00
parent d1e7e4344b
commit 6f44ff76a2
64 changed files with 3300 additions and 1129 deletions

View File

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