
关于
在逻辑间隔点建议手动上下文压缩,以在任务阶段间保留上下文,而非依赖任意的自动压缩
name: strategic-compact description: 在逻辑间隔点建议手动上下文压缩,通过任务阶段保留上下文,而非依赖任意的自动压缩。 origin: ECC
策略性压缩技能
在工作流的策略性节点建议手动 /compact,而非依赖任意的自动压缩。
何时激活
- 运行接近上下文限制的长会话(200K+ tokens)
- 处理多阶段任务(研究 → 计划 → 实现 → 测试)
- 在同一会话中切换不相关的任务
- 完成一个重要里程碑后开始新工作
- 当响应变慢或变得不连贯时(上下文压力)
为什么需要策略性压缩?
自动压缩在任意时间点触发:
- 经常在任务中途触发,丢失重要上下文
- 不感知逻辑任务边界
- 可能中断复杂的多步骤操作
在逻辑边界进行策略性压缩:
- 探索之后、执行之前 — 压缩研究上下文,保留实现计划
- 完成里程碑之后 — 为下一阶段全新开始
- 重大上下文切换之前 — 在不同任务之前清除探索上下文
工作原理
suggest-compact.js 脚本在 PreToolUse(Edit/Write)时运行,并:
- 跟踪工具调用 — 计算会话中的工具调用次数
- 阈值检测 — 在可配置阈值(默认:50 次调用)时建议
- 定期提醒 — 超过阈值后每 25 次调用提醒一次
Hook 设置
添加到你的 ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"hooks": [{ "type": "command", "command": "node ~/.claude/scripts/hooks/suggest-compact.js" }]
},
{
"matcher": "Write",
"hooks": [{ "type": "command", "command": "node ~/.claude/scripts/hooks/suggest-compact.js" }]
}
]
}
}
配置
环境变量:
COMPACT_THRESHOLD— 首次建议前的工具调用次数(默认:50)
压缩决策指南
使用此表格决定何时压缩:
| 阶段转换 | 是否压缩? | 原因 | |----------|-----------|------| | 研究 → 计划 | 是 | 研究上下文体积大;计划是提炼后的输出 | | 计划 → 实现 | 是 | 计划在 TodoWrite 或文件中;为代码释放上下文 | | 实现 → 测试 | 视情况 | 如果测试引用最近的代码则保留;如果切换焦点则压缩 | | 调试 → 下一个功能 | 是 | 调试痕迹会污染不相关工作的上下文 | | 实现中途 | 否 | 丢失变量名、文件路径和部分状态代价高昂 | | 失败方案之后 | 是 | 在尝试新方案前清除死胡同推理 |
压缩后保留的内容
了解什么会持久化有助于你放心地压缩:
| 保留 | 丢失 |
|------|------|
| CLAUDE.md 指令 | 中间推理和分析 |
| TodoWrite 任务列表 | 之前读取的文件内容 |
| 记忆文件(~/.claude/memory/) | 多步骤对话上下文 |
| Git 状态(提交、分支) | 工具调用历史和计数 |
| 磁盘上的文件 | 口头表达的细微用户偏好 |
最佳实践
- 计划后压缩 — 计划在 TodoWrite 中确定后,压缩以全新开始
- 调试后压缩 — 在继续之前清除错误解决上下文
- 不要在实现中途压缩 — 为相关更改保留上下文
- 阅读建议 — Hook 告诉你何时,你决定是否
- 压缩前写入 — 压缩前将重要上下文保存到文件或记忆中
- 使用
/compact加摘要 — 添加自定义消息:/compact 接下来专注于实现 auth 中间件
Token 优化模式
触发表懒加载
不在会话开始时加载完整技能内容,而是使用触发表将关键词映射到技能路径。技能仅在触发时加载,将基线上下文减少 50% 以上:
| 触发词 | 技能 | 加载时机 | |--------|------|----------| | "test"、"tdd"、"coverage" | tdd-workflow | 用户提到测试时 | | "security"、"auth"、"xss" | security-review | 安全相关工作时 | | "deploy"、"ci/cd" | deployment-patterns | 部署上下文时 |
上下文组成感知
监控什么在消耗你的上下文窗口:
- CLAUDE.md 文件 — 始终加载,保持精简
- 已加载的技能 — 每个技能增加 1-5K tokens
- 对话历史 — 随每次交互增长
- 工具结果 — 文件读取、搜索结果增加体积
重复指令检测
常见的重复上下文来源:
- 相同规则同时存在于
~/.claude/rules/和项目.claude/rules/中 - 重复 CLAUDE.md 指令的技能
- 覆盖重叠领域的多个技能
上下文优化工具
token-optimizerMCP — 通过内容去重实现 95%+ 的 token 减少context-mode— 上下文虚拟化(已演示 315KB 到 5.4KB)
