OpenClaw 100% Context...问题找到了
摘要:针对对话系统Context超限问题,诊断发现启动加载内容过多(约21k tokens)且压缩配置保守。解决方案包括:1)精简启动内容,按需加载技能和必要文件;2)调整压缩配置为更积极策略,保留15k tokens给回复、8k tokens给近期对话,并自动压缩历史。优化后系统可避免Context超限问题。
·
养小龙虾一时爽,对话几轮就Context超限?也是烦恼
Context 问题分析与修复方案
问题诊断
1. 启动时 Input 太大
从会话记录看,单次启动请求就用了 ~21,000 tokens:
skillsSnapshot加载了 24 个技能的完整描述(几千 tokens)Project Context加载了 AGENTS.md、SOUL.md、USER.md、MEMORY.md 等所有文件- 系统 prompt 本身也有一定长度
- 模型 context window 是 98k,但每次启动就占了 1/5
2. Compaction 配置太保守
compactionCount: 0
说明从未触发过压缩。
建议修复
改动一:减少启动加载
- 精简
skillsSnapshot或按需加载技能 Project Context只加载必要的文件(SOUL.md + USER.md),不要全加载
改动二:调整 compaction 配置
{
"mode": "default",
"reserveTokens": 15000,
"keepRecentTokens": 8000,
"maxHistoryShare": 0.6,
"recentTurnsPreserve": 5,
"memoryFlush": true
}
| 配置项 | 之前 | 现在 | 作用 |
|---|---|---|---|
| mode | safeguard | default | 更积极的压缩策略 |
| reserveTokens | - | 15000 | 保留 15k tokens 给回复 |
| keepRecentTokens | - | 8000 | 最近 8k tokens 完整保留 |
| maxHistoryShare | - | 0.6 | 历史最多占 60% |
| recentTurnsPreserve | - | 5 | 保留最近 5 轮对话 |
| memoryFlush | - | true | 压缩前自动写内存 |
效果
现在对话更长时会自动压缩历史,不用担心 context 超限了。
更多推荐




所有评论(0)