战略性压缩(Strategic Compaction)

中级 Intermediate 纪律型 Discipline ⚡ Claude Code 专属 ⚡ Claude Code Optimized
2 min read · 84 lines

在逻辑边界点手动压缩上下文,避免关键信息丢失

战略性压缩(Strategic Compaction)

概述

战略性压缩是一种上下文管理技能,建议在工作流的逻辑边界点手动执行 /compact,而非依赖任意的自动压缩(Auto-Compaction)。通过在正确的时间点压缩上下文,可以保留跨任务阶段的关键信息,避免在复杂操作中途丢失重要上下文。

二、工作原理

suggest-compact.sh 脚本在 PreToolUse(Edit/Write)时运行,执行以下操作:

  1. 追踪工具调用 -- 计算会话中的工具调用次数
  2. 阈值检测 -- 在可配置阈值处建议压缩(默认:50 次调用)
  3. 周期提醒 -- 阈值后每 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)

五、最佳实践

  1. 规划完成后压缩 -- 计划敲定后,压缩以全新开始
  2. 调试完成后压缩 -- 在继续之前清除错误解决上下文
  3. 实现过程中不要压缩 -- 保留相关变更的上下文
  4. 阅读建议 -- 钩子告诉你"何时",由你决定"是否"

六、战略性压缩时机总结

时机 原因
研究/探索阶段结束后 压缩搜索上下文,保留发现的结论
里程碑完成后 为下一阶段腾出上下文空间
调试会话结束后 清除错误排查的杂乱上下文
任务类型切换前 避免不相关上下文干扰新任务
不要在实现中途压缩 会丢失当前工作的关键上下文

相关技能 Related Skills