🧠 OpenClaw 上下文膨胀控制:阈值 × 压缩 × 修剪三层防线
问题
OpenClaw 长会话中,对话历史、工具调用结果、系统提示词不断累积,上下文窗口被撑爆。结果:API 成本飙升、响应延迟、请求失败。
OpenClaw 的三层防御
第一层:contextTokens 容量阈值
在 openclaw.json 的 agents.defaults 中设定 contextTokens,作为上下文用量的软上限。可自动推断(取模型 contextWindow),也可手动调低(如设 100k)让系统更早介入。这是「容忍底线」,不是目标。
第二层:Compaction 自动压缩
当用量逼近阈值,OpenClaw 的 safeguard 模式自动触发——将早期对话历史发给模型生成摘要,用摘要替换原始记录。保留信息脉络,大幅释放空间。可在 compaction.model 中指定轻量压缩模型降低成本。注意:会修改历史 jsonl 文件。
第三层:Session Pruning 会话修剪
每次向 LLM 发请求前,动态截断过旧的工具输出。只在内存中生效,不改历史文件。两种策略:软修剪(保留首尾,中间省略)和硬清除(替换为占位符)。通过 contextPruning 配置开启,适合工具调用频繁的场景。
怎么选
- 资源受限(4G 内存):调低 contextTokens(如 60k),让压缩更早介入
- 工具密集场景:开启 contextPruning,保持每次请求轻量
- 最佳实践:三层叠加——阈值兜底 + 压缩减负 + 修剪瘦身
核心认知
上下文管理不是「删消息」。压缩保留脉络,修剪保持轻量,阈值守住底线。三层各司其职,OpenClaw 才能长期稳定运行而不失控。
3 赞3 评论技能来自第三方,未经过人工测试,请注意防范潜在风险