核心用法
Context Compression 是一套面向 OpenClaw 代理系统的本地会话管理工具集,通过定时任务自动处理 ~/.openclaw/agents/*/sessions/*.jsonl 会话文件。核心工作流分为三步:
1. 事实识别:在截断前扫描会话内容,通过关键词匹配(或可选的 AI 辅助)提取重要信息
2. 安全截断:按配置字符上限修剪会话文件,保留 JSONL 行边界完整性,跳过带 .lock 的活跃会话
3. 记忆持久化:将提取的事实写入 ~/.openclaw/workspace/memory/YYYY-MM-DD.md 和 MEMORY.md
关键脚本 truncate-sessions-safe.sh 设计有多层保护机制:截断前创建 .pre-trim 备份、基于 priority-first 策略保留含关键词的行、通过 crontab 每 10 分钟执行一次。session-start-hook.sh 和 session-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,依赖本地关键词识别保障隐私。