跳转至

Claude Code Session 管理与 1M 上下文最佳实践

Ch06.057 Claude Code Session 管理与 1M 上下文最佳实践

📊 Level ⭐⭐⭐ | 7.3KB | entities/claude-code-session-management-1m-context.md

核心洞察:每轮对话都是一个分叉决策点

每次 Claude 完成一轮对话,用户在发送下一条消息前,有五个选项构成上下文管理的核心工具集: | 操作 | 本质 | 适用场景 | |------|------|----------| | 继续(Continue) | 自然延伸 | 同一任务连续性工作时 | | 回退(/rewind / 双击 Esc) | 回到分支点重新发指令 | 方向错误时,比修正更优 | | 清除(/clear) | 手动写简报开新会话 | 需要完全控制上下文转移时 | | 压缩(/compact) | 让模型总结会话后继续 | 会话变长但仍有信息需要保留时 | | 子智能体(Subagents) | 独立干净上下文执行子任务 | 中间输出大量的独立子任务 |

核心策略

1. 开启新任务的时机

经验法则:当你开始一项新任务时,就应该开启一个新会话。 1M 上下文让长任务更可靠(如从零构建全栈应用),但关联任务(如给刚实现的功能写文档)可能需要保留部分上下文。

2. 回退优于修正

这是最重要的上下文管理习惯。当 Claude 尝试某方法失败时:

  • 本能反应:"那没用,试试方法 X" — 失败的步骤仍留在上下文中继续污染注意力
  • 正确做法:回退到读取文件之后的那一刻,重新发指令,结合刚学到的教训 还可以使用"从此处总结(summarize from here)"让 Claude 生成交接消息。

3. 压缩 vs 清除

  • Compact(压缩):有损操作,信任 Claude 决定哪些信息重要。可通过指令引导(如 /compact 重点关注 auth 重构,丢掉测试调试的部分
  • Clear(清除):手动提炼重点后重新开始,更费力但完全可控

4. 糟糕的压缩

当模型无法预测用户工作方向时,常发生糟糕的压缩。例如:漫长的调试后自动压缩总结了排查过程,但用户下一条消息是修复另一个警告,而该警告已在摘要中被丢弃。 对策:1M 上下文给了更充裕的时间,可以根据接下来的计划主动运行带描述的 /compact

5. 子智能体作为上下文隔离工具

子智能体拥有独立的、干净的上下文窗口,适合以下场景:

  • 验证工作成果(基于 spec 文件)
  • 研究其他代码库的实现方式
  • 为 git 改动编写文档 心理测试标准:以后还需要这些工具的原始输出吗?还是只需要结论?

与相关概念的关联

参考

相关实体

深度分析

Claude Code团队成员Thariq揭示了1M上下文时代最核心的工程挑战——Context Rot(上下文腐化):随着上下文增长,模型性能下降,因为注意力被分散到过多token上,陈旧无关内容干扰当前任务。 五个操作的工程本质:Continue是上下文延续、/rewind是状态回滚、/clear是上下文重置、/compact是有损压缩、Subagent是上下文隔离——每一种操作都是对上下文状态的不同干预方式,共同构成完整的状态机。 Rewind优于修正的深层逻辑:当模型失败时本能反应是"告诉它哪个方法不行"——但这会让失败路径继续占用注意力。Rewind的本质是"时光倒流到决策点,重新做选择"——失败的路径被完全移除,而非添加新的否定指令。这比"修正"更符合LLM的注意力机制。 Compaction的不可预测性:当模型处于能力最低点时(长期调试后的autocompact),它的总结往往带有偏差——倾向于保留调试过程的细节而丢失其他上下文。这是1M上下文设计者需要正视的系统性缺陷。 Subagent的心理测试标准:判断一个任务是否适合Subagent,关键是问"我以后需要这些中间输出吗"——如果只需要结论,就适合Subagent;如果需要保留中间过程(调试、多次迭代),则不适合。

实践启示

  1. 在每个回复后强制进行分叉决策:不要默认点"继续",而是主动评估是否需要rewind/clear/compact/subagent——这是区别普通用户和高级用户的关键习惯
  2. 建立"交接消息"机制:使用"summarize from here"生成交接文档,让未来的自己或新的会话能够快速接续当前上下文
  3. 主动Compaction优于被动:根据接下来的计划主动运行带描述的compaction,而非等待autocompact触发——这需要培养对任务走向的预判能力
  4. 新任务开新会话是老生常谈但仍被低估:关联任务可以通过spec文件桥接,而非依赖长上下文保持——这是架构思维而非省事思维
  5. Subagent使用反向训练:不要等到会话变脏才想起Subagent,而是从任务规划阶段就判断是否需要隔离——这需要建立"任务拆分的上下文边界思维"