第十二章 claude的记忆恢复机制

第十二章 claude的记忆恢复机制

22分钟 ·
播放数54
·
评论数0

探讨了在前一章提到的“自动压缩”完成后,Claude Code 如何通过附件(Attachments)机制**有选择地恢复关键上下文,以防止模型出现“失忆”现象。

以下是该章节的核心内容总结:

1. 核心哲学:恢复比压缩更重要

作者指出,“没有恢复的压缩只是多了一步数据丢失”。压缩会清空原始对话历史,如果模型不记得刚刚读过哪些文件或正在执行什么计划,就会导致模型重复操作或工作流中断。

2. 快照-清空模式 (Snapshot-Clear)

在执行压缩前,系统会先启动快照逻辑

  • 先存:将内存中的 FileStateCache(文件状态缓存)序列化保存,记录模型读过的每一个文件、内容及时间戳。

  • 再清:随后显式清空缓存。这样做是为了确保系统进入一个干净的状态,避免因旧缓存导致后续的文件去重逻辑出错。

3. 专项恢复通道

除了文件和技能,系统还通过特定附件恢复以下内容:

  • 计划与计划模式Plan 附件恢复计划内容,PlanMode 附件确保模型继续以“计划模式”运行,防止其回退到执行模式。

  • Delta 增量重播:通过传入空的消息历史,触发延迟工具、Agent 列表和 MCP 指令的完整重新宣告

  • 异步 Agent:恢复正在后台运行或已完成但未检索的 Agent 任务状态,防止重复启动相同任务。

4. 刻意的工程权衡

为了节省成本,系统故意不恢复 sentSkillNames(已发送的技能名称列表)。虽然这会节省约 4K Token 的缓存创建成本,但模型仍能通过工具定义的 Schema 感知到技能的存在,这是一个收益大于损失的工程决策。

5. 给用户的实操建议

  • 刷新时间戳:由于只恢复最近的 5 个文件,在预感要压缩时,可以让模型重新读取一次核心文件以确保其在压缩后不丢失。

  • 结构优化:将关键的技能指令放在文件开头,以应对 5K Token 的截断逻辑。

  • 利用计划模式:对于超长任务,使用 /plan 可以确保计划跨越压缩边界被完整保留。

6. 版本演进

  • v2.1.91:新增了 staleReadFileStateHint,增强了单轮对话内对陈旧文件状态的追踪能力。

  • v2.1.100:引入了**工具结果去重(Tool Result Dedup)**机制,通过哈希引用替换重复的巨量输出,从源头上减少了触发压缩的频率。

总结而言,本章展示了 Claude Code 如何通过分层过滤、预算控制和多通道重播,在极致节约 Token 的同时,维持了复杂长会话的连贯性。