上下文压缩技能
为长时间运行的 Clawdbot 会话提供自动化的上下文管理。检测上下文限制接近时,压缩旧的对话历史,并无缝转移到新的会话。
使用场景
- 长时间编码会话,积累了大量的上下文
- 包含多次迭代和优化的项目
- 当注意到 Claude 开始重复或丢失细节时
- 在达到硬性上下文限制之前主动触发
- 在心跳检测或用户未主动等待的空闲时段
工作原理
- 监控:通过会话元数据持续跟踪上下文使用情况
- 压缩:当达到阈值(可配置,默认 80%)时,总结旧消息
- 保留:提取关键决策、代码变更、文件状态和待办事项
- 交接:以压缩后的上下文为基础启动新会话
- 连续性:用户无缝过渡,所有重要上下文得以保留
主要特性
- 智能摘要:保留决策、代码、文件状态,而不仅仅是原始文本
- 可配置阈值:设置触发压缩的时机(上下文限制的 70-90%)
- 后台操作:在心跳检测或低活动期运行
- 选择性保留:保留重要文件、决策、待办事项;压缩无用信息
- 会话状态转移:新会话自动继承所有关键上下文
核心概念
上下文退化模式
随着会话时间增长,注意以下迹象:
- 重复性回答("正如我之前提到的...")
- 缺少对早期决策的引用
- 忘记文件修改
- 要求重复信息
- 整体连贯性下降
压缩策略
-
提取核心信息:
- 所有已做出的决策及其理由
- 文件路径及其当前状态
- 待处理任务及其状态
- 重要的代码片段或配置
- 用户偏好和模式
-
浓缩历史:
- 移除填充内容、回溯、死胡同
- 仅保留高价值对话回合
- 将相关迭代合并为摘要
- 内联保留关键代码片段
-
高效格式化:
- 使用紧凑的表示形式
- 引用文件而非转储全部内容
- 以项目符号列出决策
- 仅包含相关的代码上下文
使用方法
自动模式(推荐)
该技能在心跳检测和空闲时段自动运行。配置阈值:
# 设置上下文使用率达到 75% 时触发压缩
context-compressor set-threshold 75
# 检查当前状态
context-compressor status
手动触发
# 强制压缩并重置会话
context-compressor compress --force
配置
# 查看所有设置
context-compressor config
# 调整摘要详细程度
context-compressor set-depth brief|detailed|comprehensive
# 设置静默时段(压缩不会运行)
context-compressor set-quiet-hours 23:00-07:00
输出
压缩发生时,该技能会产生:
-
摘要文件:memory/compressed-{会话ID}.md
- 会话的执行摘要
- 做出的关键决策
- 修改的文件及其状态
- 待处理任务
- 值得保留的代码片段
-
会话交接:自动启动新会话,包含:
- 用户上下文 (USER.md)
- 项目记忆 (MEMORY.md)
- 压缩后的会话摘要
- 当前工作状态
最佳实践
- 定期压缩:不要等到限制。每隔几小时主动压缩一次
- 保留代码:始终保留实际的代码片段,而不仅仅是引用
- 跟踪决策:明确记录决策的原因,而不仅仅是内容
- 保留待办事项:清晰标记未完成的工作以确保连续性
- 引用文件:指向文件而非嵌入完整内容
集成点
- 心跳检测:在心跳周期内运行压缩检查
- 记忆系统:将压缩摘要写入记忆文件
- 会话管理:与会话生成协调进行交接
- 文件跟踪:准确引用当前文件状态
技术细节
压缩算法
- 将会话记录解析为原子回合
- 根据重要性为每个回合评分(决策=高,聊天=低)
- 按重要性分数保留前 N% 的回合
- 将剩余回合总结为执行摘要
- 单独提取并保留代码块
- 生成会话转移包
阈值
- 保守 (70%):提前触发,保留更多上下文
- 平衡 (80%):默认值,适用于大多数工作流
- 激进 (90%):挑战极限,最大化会话长度
- 仅手动:禁用自动触发,按需压缩
文件引用
压缩器跟踪:
- 修改的文件及其路径
- 配置变更
- 新创建的文件
- 删除的文件
- 目录结构变更
故障排除
压缩过于频繁
# 提高阈值
context-compressor set-threshold 85
交接后上下文丢失
检查:
1. 压缩摘要是否已生成 (memory/compressed-*.md)
2. 新会话是否加载了记忆文件
3. 关键文件是否未被误判为无用信息而丢弃
性能影响
压缩在后台运行,对于典型会话应在 30 秒内完成。如果较慢:
- 降低摘要详细程度
- 提高阈值以减少压缩频率
- 将大文件排除在压缩范围之外
示例
典型工作流
用户:正在处理笔记应用的侧边栏
[会话运行 2 小时,多次迭代]
心跳触发 → 上下文达到 78% → 自动压缩 → 新会话
用户:(无中断,无缝继续)
新会话包含:执行摘要、关键决策、文件状态、待办事项
手动恢复
用户注意到 Claude 在重复自己
用户:"context-compressor compress --force"
压缩器总结 → 新会话启动 → 用户无缝继续
相关技能
- memory-system:底层记忆基础设施
- self-improving-agent:从会话模式中学习
- sessions-spawn:处理新会话创建
另请参阅