Context Compression

🗜️ 智能会话压缩,关键记忆永存

自动截断过长的对话会话文件,智能提取关键事实保存至记忆库,防止上下文窗口溢出导致信息丢失。

收藏
6.4k
安装
2.8k
版本
3.13.3
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Context Compression 是一套面向 OpenClaw 代理系统的本地会话管理工具集,通过定时任务自动处理 ~/.openclaw/agents/*/sessions/*.jsonl 会话文件。核心工作流分为三步:

1. 事实识别:在截断前扫描会话内容,通过关键词匹配(或可选的 AI 辅助)提取重要信息
2. 安全截断:按配置字符上限修剪会话文件,保留 JSONL 行边界完整性,跳过带 .lock 的活跃会话

3. 记忆持久化:将提取的事实写入 ~/.openclaw/workspace/memory/YYYY-MM-DD.mdMEMORY.md

关键脚本 truncate-sessions-safe.sh 设计有多层保护机制:截断前创建 .pre-trim 备份、基于 priority-first 策略保留含关键词的行、通过 crontab 每 10 分钟执行一次。session-start-hook.shsession-end-hook.sh 提供会话级上下文加载/保存能力。

显著优点

  • 零数据丢失设计:截断非删除,备份机制确保可恢复;关键词优先策略保护关键决策信息
  • 完全本地运行:除可选的 AI 辅助模式外,所有脚本仅操作本地文件系统,无直接网络请求
  • 用户高度可控:crontab 由用户手动配置,配置项通过交互式向导生成,可随时停用
  • 细粒度权限:仅访问 OpenClaw 代理目录和记忆工作区,不触碰系统文件或其他用户数据
  • 活跃会话保护.lock 文件机制确保正在进行的对话不会被中断

潜在缺点与局限性

  • 依赖外部调度:需用户手动配置 crontab,无内置守护进程,新手可能遗漏此步骤
  • AI 辅助的隐私权衡identify-facts-enhanced.sh 启用后会将内容发送至配置的 LLM 服务,存在数据出境风险
  • 关键词识别的局限:默认的关键词库(中英文)可能无法覆盖专业领域术语,需手动扩展配置
  • 无可视化界面:纯 CLI 工具,状态查看依赖 check-context-health.sh 的文本输出
  • 备份清理责任.pre-trim 备份在成功写入后清理,但异常中断可能残留备份文件需手动处理

适合人群

  • 长期使用 OpenClaw 进行复杂多轮对话的高级用户
  • 需要严格遵守上下文长度限制的企业/研究场景
  • 重视数据主权、倾向本地优先架构的隐私敏感用户
  • 具备基础 Linux 系统管理能力(crontab、JSON 配置)的技术用户

常规风险

| 风险场景 | 等级 | 说明 |
|---------|------|------|

配置错误导致过度截断 | 中 | maxChars 设置过小会丢失有用历史,建议初次使用保持默认值 40000 |
crontab 环境变量缺失 | 中 | 计划任务可能因 PATH 不含 openclaw 二进制而失败,需在 crontab 中显式声明 |

AI 辅助模式误启用 | 高 | useAiIdentification: true 可能在用户不知情时传输敏感会话内容至第三方 LLM |

锁文件残留 | 低 | 异常崩溃可能导致 .lock 文件未清理,需手动删除以恢复该会话的截断功能 |

备份堆积 | 低 | 长期运行若频繁异常中断,.pre-trim 文件可能占用额外磁盘空间 |

使用建议

首次部署时,先以 check-context-health.sh 检视当前会话规模,通过 configure.sh 生成保守配置,手动运行 truncate-sessions-safe.sh 验证行为符合预期后,再添加至 crontab。生产环境建议关闭 useAiIdentification,依赖本地关键词识别保障隐私。

Context Compression 内容

手动下载zip · 38.1 kB
auto-identify-on-session.shtext/x-shellscript
请选择文件