mcpField
C
compression-strategy

compression-strategy

github.com/atholaAgent 工作流34380 次安装1 天前更新
代码仓库

关于 compression-strategy

compression-strategy 是用于评估上下文占用并推荐压缩方案的 Agent 技能,适合上下文膨胀或工具输出累积时使用。它会结合内容新旧程度和当前任务阶段,给出策略及节省量估算。

主要功能

  1. 01分析上下文使用情况
  2. 02评估工具输出与陈旧内容
  3. 03推荐上下文压缩方案
  4. 04估算节省量与风险
  5. 05针对大型输出提供归档检索建议

适用场景

  1. 01进入新任务阶段前整理上下文
  2. 02工具输出累积后降低上下文负担
  3. 03上下文接近上限时选择处理策略

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/athola/claude-night-market --skill compression-strategy

安装后在 Claude Code 中输入/compression-strategy确认已加载。

附带文件modules/log-debugging-hygiene.mdmodules/reversible-compression.md

详细介绍

压缩策略

分析当前上下文用量,并推荐最佳压缩策略。

适用场景

  • 感觉上下文臃肿或响应迟缓
  • 重要任务阶段转换之前(计划完成,开始实现)
  • Token 配额消耗速度快于预期
  • 大量工具输出累积之后

不适用场景

  • 上下文优化技能已在处理当前场景
  • 上下文极少的简单查询
  • 刚刚清理过上下文

必需的 TodoWrite 条目

  1. compression-strategy:analyze-context
  2. compression-strategy:recommend-strategy
  3. compression-strategy:estimate-savings

步骤 1 – 分析上下文(analyze-context)

运行 /context 检查当前用量,然后估算:

  1. 工具输出累积量:上下文中有多少内容来自工具结果,而非对话?
  2. 过时内容时长:关键决策是在多少轮之前做出的?
  3. 活跃文件:哪些文件仍然相关,哪些已成为历史记录?

步骤 2 – 推荐策略(recommend-strategy)

根据分析,从以下选项中推荐一项:

选项 A:/clear 和 /catchup

适用于:

  • 任务阶段已完成(计划完成,开始实现)
  • 上下文已使用超过 60%
  • 大部分内容已过时

流程:

  1. 将关键状态保存到 .claude/session-state.md
  2. 运行 /clear
  3. 运行 /catchup 重新加载活跃文件
选项 B:启动续接 Agent

适用于:

  • 上下文已使用超过 80%
  • 工作正在进行,无法中断
  • 仍有可委派的任务

流程:

  1. 运行 Skill(conserve:clear-context) 启动续接 Agent
  2. Agent 会收到包含已保存状态的新上下文
选项 C:归档并总结

适用于:

  • 上下文已使用 40-60%
  • 过时内容与活跃内容混杂
  • 暂不适合完全清理

流程:

  1. 将旧决策和错误归档到 .claude/context-archive/
  2. 在记忆中总结已完成的工作
  3. 在更精简的上下文中继续
选项 D:委派给子 Agent

适用于:

  • 可以并行工作
  • 存在独立子任务
  • 上下文压力适中

流程:

  1. 找出可委派的任务
  2. 通过 Task 工具启动专用 Agent
  3. 保持主上下文精简

步骤 3 – 估算节省量(estimate-savings)

对于推荐策略,估算节省量:

策略典型节省量风险
/clear 和 /catchup70-90%若已保存状态,风险低
续接 Agent80-95%风险低,状态得以保留
归档并总结20-40%风险极低
委派给子 Agent30-50%风险低,可并行工作
可逆压缩(CCR)每个归档输出节省 47-92%风险低,原始内容已缓存

CCR 这一行的节省量针对单个超大工具输出,而非整个上下文:大型 Bash、 Read 或 Grep 结果会归档到一个句柄,并替换为摘要,供后续轮次使用。 节省量取决于内容类型(日志压缩率很高,散文则几乎没有)。请参阅 modules/reversible-compression.md。

上下文归档位置

保留的上下文会保存到:

.claude/context-archive/pre-compact-YYYYMMDD-HHMMSS-SESSIONID.md

在任何 /compact 操作之前,都会由 pre_compact_preserve 钩子自动创建此位置。

集成点

  • PreCompact 钩子:压缩前自动保留上下文
  • 工具输出摘要器:在工具输出累积时发出警告
  • 上下文警告钩子:在 40%/50%/80% 时发出三级警报

专项模块

如果臃肿源是粘贴的日志输出(调试跟踪、CI 失败、钩子日志、JSONL),请加载 modules/log-debugging-hygiene.md。 该模块记录了一个包含基准测试片段的三层优先过滤工作流,并如实说明何时需要压缩、何时不需要压缩。对于已提交的 intake_queue.jsonl 测试样例,tail -n 100 比无损压缩高出 25 个百分点;该模块将这种不对称性规范化。

如果臃肿源是大型工具输出(代码搜索、日志转储、文件读取),请加载 modules/reversible-compression.md。 该模块记录了 CCR 模式:tool_output_summarizer 钩子会将任何超大输出归档到 .claude/context-archive/ 下的内容寻址句柄中,而 context_retrieve.py 会按需获取原始内容(或其切片),因此即使执行 /clear,原始内容仍会保留,而不会一直驻留。

示例用法

/compression-strategy

输出:

Context Analysis:
- Current usage: 52%
- Tool output: ~15KB (3 tool results)
- Stale content: ~40% (decisions from 8+ turns ago)

Recommendation: Option C - Archive + Summarize
- Archive old decisions to context-archive
- Keep active files and recent decisions
- Estimated savings: 25-35%

Commands:
1. Read .claude/context-archive/ to see what's preserved
2. Summarize completed work
3. Continue with leaner context

退出标准

  • 已分析上下文:估算了当前用量和工具输出占比
  • 推荐了单一策略(A-D,或可逆压缩),并说明理由
  • 根据第 3 步表格中的风险名称估算了节省量
  • 对于大型工具输出,已给出 CCR 句柄和 context_retrieve.py 获取命令(而不只是警告)
  • 当臃肿源是密集的散文(几乎无法压缩)时,拒绝或降低推荐等级

评论

支持 Markdown