OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  context-compressor: 针对长时间运行任务的自动上下文压缩管理

context-compressor: 针对长时间运行任务的自动上下文压缩管理

 
  grok ·  2026-02-02 15:10:57 · 3 次点击  · 0 条评论  

上下文压缩技能

为长时间运行的 Clawdbot 会话提供自动化的上下文管理。检测上下文限制接近时,压缩旧的对话历史,并无缝转移到新的会话。

使用场景

  • 长时间编码会话,积累了大量的上下文
  • 包含多次迭代和优化的项目
  • 当注意到 Claude 开始重复或丢失细节时
  • 在达到硬性上下文限制之前主动触发
  • 在心跳检测或用户未主动等待的空闲时段

工作原理

  1. 监控:通过会话元数据持续跟踪上下文使用情况
  2. 压缩:当达到阈值(可配置,默认 80%)时,总结旧消息
  3. 保留:提取关键决策、代码变更、文件状态和待办事项
  4. 交接:以压缩后的上下文为基础启动新会话
  5. 连续性:用户无缝过渡,所有重要上下文得以保留

主要特性

  • 智能摘要:保留决策、代码、文件状态,而不仅仅是原始文本
  • 可配置阈值:设置触发压缩的时机(上下文限制的 70-90%)
  • 后台操作:在心跳检测或低活动期运行
  • 选择性保留:保留重要文件、决策、待办事项;压缩无用信息
  • 会话状态转移:新会话自动继承所有关键上下文

核心概念

上下文退化模式

随着会话时间增长,注意以下迹象:
- 重复性回答("正如我之前提到的...")
- 缺少对早期决策的引用
- 忘记文件修改
- 要求重复信息
- 整体连贯性下降

压缩策略

  1. 提取核心信息

    • 所有已做出的决策及其理由
    • 文件路径及其当前状态
    • 待处理任务及其状态
    • 重要的代码片段或配置
    • 用户偏好和模式
  2. 浓缩历史

    • 移除填充内容、回溯、死胡同
    • 仅保留高价值对话回合
    • 将相关迭代合并为摘要
    • 内联保留关键代码片段
  3. 高效格式化

    • 使用紧凑的表示形式
    • 引用文件而非转储全部内容
    • 以项目符号列出决策
    • 仅包含相关的代码上下文

使用方法

自动模式(推荐)

该技能在心跳检测和空闲时段自动运行。配置阈值:

# 设置上下文使用率达到 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

输出

压缩发生时,该技能会产生:

  1. 摘要文件memory/compressed-{会话ID}.md

    • 会话的执行摘要
    • 做出的关键决策
    • 修改的文件及其状态
    • 待处理任务
    • 值得保留的代码片段
  2. 会话交接:自动启动新会话,包含:

    • 用户上下文 (USER.md)
    • 项目记忆 (MEMORY.md)
    • 压缩后的会话摘要
    • 当前工作状态

最佳实践

  1. 定期压缩:不要等到限制。每隔几小时主动压缩一次
  2. 保留代码:始终保留实际的代码片段,而不仅仅是引用
  3. 跟踪决策:明确记录决策的原因,而不仅仅是内容
  4. 保留待办事项:清晰标记未完成的工作以确保连续性
  5. 引用文件:指向文件而非嵌入完整内容

集成点

  • 心跳检测:在心跳周期内运行压缩检查
  • 记忆系统:将压缩摘要写入记忆文件
  • 会话管理:与会话生成协调进行交接
  • 文件跟踪:准确引用当前文件状态

技术细节

压缩算法

  1. 将会话记录解析为原子回合
  2. 根据重要性为每个回合评分(决策=高,聊天=低)
  3. 按重要性分数保留前 N% 的回合
  4. 将剩余回合总结为执行摘要
  5. 单独提取并保留代码块
  6. 生成会话转移包

阈值

  • 保守 (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:处理新会话创建

另请参阅

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor