战略性压缩(Strategic Compaction)
概述
战略性压缩是一种上下文管理技能,建议在工作流的逻辑边界点手动执行 /compact,而非依赖任意的自动压缩(Auto-Compaction)。通过在正确的时间点压缩上下文,可以保留跨任务阶段的关键信息,避免在复杂操作中途丢失重要上下文。
二、工作原理
suggest-compact.sh 脚本在 PreToolUse(Edit/Write)时运行,执行以下操作:
- 追踪工具调用 -- 计算会话中的工具调用次数
- 阈值检测 -- 在可配置阈值处建议压缩(默认:50 次调用)
- 周期提醒 -- 阈值后每 25 次调用提醒一次
三、钩子配置
在 ~/.claude/settings.json 中添加:
{
"hooks": {
"PreToolUse": [{
"matcher": "tool == \"Edit\" || tool == \"Write\"",
"hooks": [{
"type": "command",
"command": "~/.claude/skills/strategic-compact/suggest-compact.sh"
}]
}]
}
}
四、配置
环境变量:
COMPACT_THRESHOLD-- 首次建议前的工具调用次数(默认:50)
五、最佳实践
- 规划完成后压缩 -- 计划敲定后,压缩以全新开始
- 调试完成后压缩 -- 在继续之前清除错误解决上下文
- 实现过程中不要压缩 -- 保留相关变更的上下文
- 阅读建议 -- 钩子告诉你"何时",由你决定"是否"
六、战略性压缩时机总结
| 时机 | 原因 |
|---|---|
| 研究/探索阶段结束后 | 压缩搜索上下文,保留发现的结论 |
| 里程碑完成后 | 为下一阶段腾出上下文空间 |
| 调试会话结束后 | 清除错误排查的杂乱上下文 |
| 任务类型切换前 | 避免不相关上下文干扰新任务 |
| 不要在实现中途压缩 | 会丢失当前工作的关键上下文 |