关于 compression-strategy
compression-strategy 是用于评估上下文占用并推荐压缩方案的 Agent 技能,适合上下文膨胀或工具输出累积时使用。它会结合内容新旧程度和当前任务阶段,给出策略及节省量估算。
主要功能
- 01分析上下文使用情况
- 02评估工具输出与陈旧内容
- 03推荐上下文压缩方案
- 04估算节省量与风险
- 05针对大型输出提供归档检索建议
适用场景
- 01进入新任务阶段前整理上下文
- 02工具输出累积后降低上下文负担
- 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 条目
compression-strategy:analyze-contextcompression-strategy:recommend-strategycompression-strategy:estimate-savings
步骤 1 – 分析上下文(analyze-context)
运行 /context 检查当前用量,然后估算:
- 工具输出累积量:上下文中有多少内容来自工具结果,而非对话?
- 过时内容时长:关键决策是在多少轮之前做出的?
- 活跃文件:哪些文件仍然相关,哪些已成为历史记录?
步骤 2 – 推荐策略(recommend-strategy)
根据分析,从以下选项中推荐一项:
选项 A:/clear 和 /catchup
适用于:
- 任务阶段已完成(计划完成,开始实现)
- 上下文已使用超过 60%
- 大部分内容已过时
流程:
- 将关键状态保存到
.claude/session-state.md - 运行
/clear - 运行
/catchup重新加载活跃文件
选项 B:启动续接 Agent
适用于:
- 上下文已使用超过 80%
- 工作正在进行,无法中断
- 仍有可委派的任务
流程:
- 运行
Skill(conserve:clear-context)启动续接 Agent - Agent 会收到包含已保存状态的新上下文
选项 C:归档并总结
适用于:
- 上下文已使用 40-60%
- 过时内容与活跃内容混杂
- 暂不适合完全清理
流程:
- 将旧决策和错误归档到
.claude/context-archive/ - 在记忆中总结已完成的工作
- 在更精简的上下文中继续
选项 D:委派给子 Agent
适用于:
- 可以并行工作
- 存在独立子任务
- 上下文压力适中
流程:
- 找出可委派的任务
- 通过
Task工具启动专用 Agent - 保持主上下文精简
步骤 3 – 估算节省量(estimate-savings)
对于推荐策略,估算节省量:
| 策略 | 典型节省量 | 风险 |
|---|---|---|
| /clear 和 /catchup | 70-90% | 若已保存状态,风险低 |
| 续接 Agent | 80-95% | 风险低,状态得以保留 |
| 归档并总结 | 20-40% | 风险极低 |
| 委派给子 Agent | 30-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获取命令(而不只是警告) - 当臃肿源是密集的散文(几乎无法压缩)时,拒绝或降低推荐等级