排障:上下文乱了怎么收敛
Claude Code 上下文收敛教程:聊久后 CC 可能混淆任务目标、历史讨论和当前改动,需要重新整理目标、现状和下一步。
上下文乱了,是使用 CC 时非常常见的问题。尤其是一个会话里反复改需求、插入新问题、又做排障又做优化时,CC 可能把旧目标、新目标、废弃方案和当前 diff 混在一起。
正确做法不是继续解释更多,而是先收敛。
暂停新需求 -> 盘点事实 -> 区分推测和废弃方案 -> 重新读关键文件 -> 确认下一步最小动作
收敛模板
上下文乱了时,不要继续解释新需求。先暂停,让 CC 把当前事实和废弃讨论分开。
第一句话先冻结动作:
先暂停所有修改。 在上下文重新确认前,不要创建、修改、删除任何文件。
我们重新收敛上下文。 请不要修改文件,只做总结: 1. 原始任务目标是什么。 2. 已经完成了什么。 3. 修改了哪些文件。 4. 哪些内容已经验证。 5. 哪些内容还没验证。 6. 下一步最小动作是什么。 7. 哪些讨论应该忽略。
上下文乱了的表现
- 它反复提已经否定过的方案。
- 它把上一个任务的目标带到新任务里。
- 它说“已经完成”,但其实没有验收。
- 它引用不存在的文件或旧文件名。
- 它开始扩大范围,说要顺便重构。
- 它忘了刚才明确禁止的事项。
- 它开始用“应该是”“大概是”代替文件依据。
一旦出现这些表现,不要继续加需求。继续加只会让上下文更乱。
乱的类型
| 类型 | 表现 | 处理 |
|---|---|---|
| 目标乱 | 新旧需求混在一起 | 收敛成一个主目标 |
| 文件乱 | 不知道改了哪些文件 | 重新检查 diff |
| 方案乱 | 反复提废弃方案 | 明确哪些不要继续 |
| 验收乱 | 不知道是否完成 | 重新做 /verify |
| 入口乱 | CLI、IDE、Web 状态不一致 | 生成交接,回本地复查 |
先做事实盘点
请只做事实盘点,不要修改文件。 请按三类输出: 1. 已确认事实:来自文件、diff、日志或我明确说过的话。 2. 推测内容:你还没有证据的判断。 3. 已废弃内容:之前讨论过但现在不要继续采用的方案。 最后给出下一步最小动作。
事实盘点的关键是把“确认过的内容”和“听起来合理的猜测”分开。CC 一旦把推测当事实,后面就容易沿着错误方向继续做。
diff 是上下文锚点
如果已经改过文件,当前 diff 比聊天记忆更可靠:
请以当前 Git diff 为准重新确认上下文。 要求: 1. 列出当前实际修改文件。 2. 每个文件对应哪个任务目标。 3. 哪些改动来源不明。 4. 哪些改动可能超范围。 5. 下一步是验收、修正还是撤回。
让它重新读关键文件
如果上下文已经乱到无法信任,可以让 CC 重新读文件,而不是靠记忆继续。
请重新只读确认当前状态。 要求: 1. 不要依赖前面的记忆。 2. 重新读取和当前任务直接相关的文件。 3. 重新检查当前 diff。 4. 根据文件和 diff 总结当前状态。 5. 给出下一步最小动作。
如果任务涉及页面、接口或构建失败,还可以要求它列证据:
请用证据重新确认当前状态。 输出格式: - 读取了哪些文件: - 当前 diff 有哪些文件: - 日志或报错关键行: - 已确认的问题: - 未确认的推测: - 下一步最小动作:
收敛成一个任务
上下文乱的本质,往往是会话里同时存在多个任务。收敛时要把它压回一个任务。
请把当前对话收敛成一个可以继续执行的任务。 要求: 1. 只保留一个主目标。 2. 删除或搁置无关目标。 3. 明确允许修改的范围。 4. 明确禁止事项。 5. 给出验收标准。 6. 给出下一步最小动作。
如果还想保留其他想法,让 CC 放进“稍后处理”,不要混进当前任务。
稍后处理清单
请把不属于当前任务的内容放进“稍后处理”。 要求: 1. 当前任务只保留一个目标。 2. 稍后处理只记录标题和原因。 3. 不要在本轮实现稍后处理内容。 4. 如果稍后处理里有高风险问题,请标注。
什么时候重新开会话
- CC 反复引用已经废弃的方案。
- 任务目标已经换了好几次。
- 上下文太长,回答开始变慢或跑偏。
- 已经完成一个独立任务,准备开始新任务。
- 当前会话里混进了太多排障、设计、实现、验收讨论。
- 需要把任务交给另一个入口或另一个人继续。
重新开会话不是失败,而是清理上下文。
新会话怎么开
不要直接说“继续上个任务”。先让旧会话生成交接,再复制到新会话。
请生成新会话继续用的上下文摘要。 必须包含: 1. 当前任务目标。 2. 已经完成的修改。 3. 修改过的文件。 4. 已经验证的内容。 5. 未验证和剩余风险。 6. 下一步最小动作。 7. 不要继续采用的旧方案。
新会话开始时,可以这样说:
下面是上一个会话生成的交接说明。 请先只读确认这些内容是否和当前文件状态一致。 确认后,只执行“下一步最小动作”,不要扩大任务。 【粘贴交接说明】
收敛后继续推进
上下文已经收敛。 请只执行下一步最小动作: 【写下一步】 限制: 1. 不要回到废弃方案。 2. 不要扩大任务。 3. 如果发现新问题,先说明,不要直接改。
推进时要坚持“小步确认”。如果 CC 又开始引入新目标,就再次收敛。
防止上下文再次变乱
可以在一个任务开始时就设定规则:
本任务请保持上下文收敛。 规则: 1. 只围绕当前目标行动。 2. 遇到新问题先汇报,不要顺手修。 3. 每次修改前说明影响范围。 4. 每次修改后总结 diff 和验证结果。 5. 如果发现任务目标变化,请先要求重新确认。
验收结果
- 你能让 CC 重述当前任务。
- 你知道什么时候该重新开会话。
- 你知道下一步要收敛成最小动作。
- 你知道如何区分事实、推测和废弃方案。
- 你知道新会话要靠交接说明继续,而不是靠一句“接着做”。
- 你知道如何防止上下文再次变乱。