OpenClaw 上下文超限问题修复

问题现象

在长时间对话后,OpenClaw 会话突然重置,提示:

1
2
3
4
⚠️ Context limit exceeded. I've reset our conversation to start fresh - please try again.

To prevent this, increase your compaction buffer by setting
agents.defaults.compaction.reserveTokensFloor to 20000 or higher in your config.

问题分析

OpenClaw 的 compaction(压缩)机制会在上下文接近模型限制时自动压缩对话历史。当缓冲区不足时,压缩可能来不及完成,导致上下文超限。

解决方案

1. 检查当前配置

1
openclaw config get agents.defaults.compaction

输出:

1
2
3
4
{
"mode": "safeguard",
"reserveTokensFloor": 20000
}

默认 20000 token 缓冲区在某些情况下不够用。

2. 增加缓冲区

将缓冲区提高到 40000:

1
openclaw config set agents.defaults.compaction.reserveTokensFloor 40000

3. 重启 Gateway 使配置生效

1
openclaw gateway restart

4. 验证配置

1
2
openclaw config get agents.defaults.compaction.reserveTokensFloor
# 输出: 40000

配置说明

参数 默认值 建议值 说明
reserveTokensFloor 20000 40000+ 压缩触发阈值
mode safeguard safeguard 压缩模式
  • reserveTokensFloor:保留的最小 token 数,当上下文剩余空间低于此值时触发压缩
  • mode: safeguard:保守模式,优先保留重要信息

最佳实践

  1. 长时间对话场景:建议设置 40000 或更高
  2. 多文件上下文:如果加载大量文档,考虑 60000+
  3. 监控日志:关注 /tmp/openclaw/openclaw-*.log 中的压缩记录

修复日期: 2026-03-10
OpenClaw 版本: 2026.3.x


OpenClaw 上下文超限问题修复
https://dapalm.com/2026/03/10/OpenClaw上下文超限修复/
作者
Mars
发布于
2026年3月10日
许可协议