上下文压缩Skill思路【保留:错误堆栈、失败方案、关键数字、用户明确约束、决策理由】
name: context-compaction description: 语义压缩上下文管理。当长会话中上下文膨胀、需要整理历史时使用。触发场景包括会话超过 20-30 轮、tool 输出大量堆积、开始重复试错、用户要求整理上下文/压缩历史/总结进度、或需要在长任务中保持清醒判断。即使用户没有明确要求当检测到上下文接近 60-70% 容量时也应主动触发。语义压缩上下文管理核心理念压缩不是摘要。压缩是维护 Agent 的工作记忆——让 Agent 在长 session 中不忘记自己为什么走到这一步。坏的压缩把关键证据压没。更坏的压缩让 Agent 忘记哪些方案已经失败然后在同一个坑里反复试错。触发时机出现以下任一信号时启动压缩会话超过 20-30 轮上下文占用超过 60%-70%不要等满了再压——在 Agent 还清醒时整理历史tool 结果大量堆积日志、测试输出、代码 diffAgent 开始重复问、重复查、重复试同一条路用户明确要求整理进度短任务可以晚压长会话和高风险任务应该早压。压缩方法三层递进Level 1清理冗长 tool 输出优先处理代价最低。操作把非错误的大段 tool 输出日志全文、API 响应、查询结果替换为摘要占位符保留 Action做了什么遮蔽普通 Observation返回了什么错误类输出不动判断标准如果后续推理不需要逐行回看这段输出就可以压。示例# 压缩前 [tool result: 347 lines of npm install output] # 压缩后 [npm install completed successfully, 234 packages installed, no errors]Level 2维护工作记忆锚点Anchor当 Level 1 不够时触发。把旧历史提炼为结构化的工作记忆。Anchor 必须回答五个问题Intent: 用户要什么 Changes Made: 已经做了什么改动/调用 Decisions Taken: 已经做了哪些判断和选择 Excluded Approaches: 已经排除了哪些方案最重要 Next Steps: 下一步做什么操作从旧历史中抽取上述五类信息增量合并到 Anchor不是每次重写而是演化更新新信息合并进已有 Anchor保持稳定演化关键Excluded Approaches是防止反复试错的核心。很多 Agent 在长 session 里循环尝试失败方案不是因为不会推理而是忘了哪些路已经走不通。Level 3极限压缩退场信号只在不得不用时触发。Level 3 同时是一个退场信号——如果多次触发意味着 session 太长应该考虑开新 session交接给人工导出 handoff summary绝对保护区不可压缩的信息以下信息任何层级都不能压成模糊结论类别示例为什么不能压错误堆栈异常类型、关键参数、文件路径:行号Agent 的反馈回路避开旧坑的唯一依据失败方案调大 pool_size 无效防止重复试错关键数字pool_size20, queue_depth347定量判断的基础用户明确约束不要用 TypeScript、必须兼容 IE11需求边界决策理由选 A 方案因为 B 有性能问题防止后续推翻已验证的选择反例# 错误的压缩 发生了数据库错误 # 正确的压缩 ConnectionPoolExhausted: pool_size20, queue_depth347, timeout in _acquire_connection at pool.py:142。 排除方案调大 pool_size无效问题是连接未释放执行流程当你判断需要压缩时1. 评估当前状态问自己当前 context 中哪些信息对继续推理还有用哪些 tool 输出已经完成使命结论已提取细节不再需要有没有重复或冗余信息2. 按层级执行先 Level 1清理 tool 输出 ↓ 不够再 Level 2构建/更新 Anchor ↓ 不够再 Level 3极限压缩 考虑退场3. 输出压缩后的 Anchor用以下格式向用户呈现当前工作状态## 当前工作状态 **目标**: [一句话说清用户要什么] **已完成**: - [改动1] - [改动2] **已做决策**: - [决策1: 理由] **已排除方案**: - [方案X: 为什么不行] **待解决**: - [下一步1] - [下一步2] **关键证据**: - [错误信息/关键数字/文件路径原文保留]压缩质量自检压缩完成后用三个问题验证连续性如果一个新 Agent 只看压缩后的内容能否理解当前处境并继续工作防重复已排除的方案是否清晰记录新 Agent 会不会走回头路证据链关键错误信息、数字、路径是否保留原文能否支撑下一步判断如果任一答案是否说明压缩过度需要回补信息。特殊场景调试/排错场景错误密度高时更保守地压缩短错误栈原文保留长错误栈保留异常类型 关键数字 文件路径:行号 首尾几行已尝试的修复方案全部记入 Excluded Approaches多文件重构场景文件路径和变更关系是核心记忆哪些文件改了、改了什么文件间的依赖关系未完成的文件列表需求讨论场景用户意图演变是核心记忆最初需求 → 澄清后需求 → 当前共识用户明确否定的方向尚未确认的假设与其他机制的边界机制管什么区别Compaction本 skill当前 session 怎么续命解决窗口压力Memory.claude/memory/跨 session 的经验沉淀解决长期记忆Plan/Task当前任务的结构化进度解决执行跟踪Compaction 处理的是这次对话还能不能继续清醒地往下走。如果某个信息对未来的 session 也有价值它应该进 Memory 而不是只存在 Anchor 里。