乐于分享
好东西不私藏

claude code 源码解读(4) Auto Dream 与三层记忆系统

claude code 源码解读(4) Auto Dream 与三层记忆系统

你是否好奇,为什么你的 AI 助手能记得你去年定下的代码规范?为什么它能在你提出新需求时,瞬间调出几个月前的讨论结论?这背后并非魔法,而是一套精密的三层记忆系统自动梦境整理机制(Auto Dream)

今天,我们就结合核心源码,带你潜入 AI 的“大脑”,看看它是如何构建终身记忆的。

代码仓库 https://gitee.com/mafa1993/lang-claude

🧱 第一层:长期记忆库(The Vault)

——代码中的“四象限”档案馆

核心机制:

  • • 入口文件限制:源码中明确规定,入口文件 MEMORY.md 被硬性限制在 200 行或 25KB。这模拟了人类的“注意力广度”,强迫系统只保留最核心的索引,而不是把所有细节塞进去。
  • • 写入纪律:系统严格遵守“先写主题文件,再更新索引”的原则。这种原子化的操作,保证了即使在写入过程中断电,数据也不会损坏。
  • • 四象限分类
    • • User (用户):你的个人偏好,比如“永远不要用 Tab,只用 4 个空格”。
    • • Feedback (反馈):过往的经验教训,比如“上次部署失败是因为端口冲突”。
    • • Project (项目):特定的业务逻辑和架构决策。
    • • Reference (参考):通用的最佳实践。
# 定义硬性限制常量
self.MAX_ENTRYPOINT_LINES = 200
self.MAX_ENTRYPOINT_BYTES = 25_000

这两行代码是 AI 记忆的“防爆阀”。一旦超过这个限制,系统会自动截断,确保 AI 永远不会因为记忆太多而“卡死”。


💤 第二层:Auto Dream(自动梦境整理)

——深夜里的“知识炼金术”

这是 Claude Code 最像“生命”的设计。就像人类在睡眠中整理白天的记忆一样,AI 也有一套Auto Dream 机制。

你可能在白天和 AI 聊了无数琐碎的代码调试、无关的闲聊。如果没有整理,这些碎片会淹没核心知识。Auto Dream 就是那个在后台默默工作的“图书管理员”。

它是如何工作的?(三道门控策略)

根据 AutoDream 类,它执行了一个严格的三道门控策略

  1. 1. 第一道门:基础过滤 (Gate One)
    • • 动作:像筛子一样抖落掉无意义的碎片。
    • • 源码逻辑:移除包含 "error:""timeout""已向..." 等关键词的内容,以及过短(<50字符)的重复废话。
  2. 2. 第二道门:主题聚类 (Gate Two)
    • • 动作:将散落的沙粒聚集成堆。
    • • 源码逻辑:通过关键词匹配(如 codebugplan),将内容自动归类为 coding(编码)、debugging(调试)、planning(规划)等主题。
  3. 3. 第三道门:知识提炼 (Gate Three)
    • • 动作:点石成金,将信息炼成知识。
    • • 源码逻辑:调用 LLM,对每个主题组生成高质量摘要。它不再保存原始的几十条对话,而是生成一篇结构化的《项目重构经验总结》。
def_gate_one_filter(self, contents: List[str]) -> List[str]:
# 移除明显无意义的内容
ifany(indicator in content.lower() for indicator in ["error:""timeout", ...]):
continue
def_gate_two_cluster(self, contents: List[str]) -> Dict[strList[str]]:
# 使用简单的关键词聚类
    topic_keywords = {
"coding": ["code""function", ...],
"debugging": ["error""bug", ...]
    }

这就是 AI 的“梦境算法”,它在空闲时自动运行,将杂乱的“数据”转化为有序的“知识”。


⚙️ 第三层:人机协作的闭环

——济南周二下午的实战

想象一下,现在是 2026年5月19日 的济南周二下午,你正在准备明天的项目汇报。

  • • Save (保存):当你觉得某段对话很重要,你可以手动触发 save_memory,指定类型(如 project),它就会永久存入图书馆。
  • • Load (加载):在新项目开始时,AI 会自动加载 MEMORY.md,瞬间“唤醒”沉睡的记忆。
  • • Search (搜索):通过 search_memory,它能瞬间在数万行历史记录中,找到你三年前随口提过的一行配置。
  • • AutoDream (触发):你可以随时命令它 autodream_consolidate,让它立刻进行一次“深度睡眠”,整理出今天的《周二工作日报》。

📊 记忆系统 vs 人类大脑

为了让你更直观地理解,我们做了一个有趣的对比:

维度
人类大脑
Claude Code (2026)
短期记忆
大脑皮层 (Working Memory)
消息历史列表 (Message History)
长期记忆
海马体与皮层 (Long-term Storage)
.memory/
 文件系统 (MemorySystem)
整理机制
睡眠中的梦境 (Dreams)
Auto Dream (三道门控策略)
遗忘机制
主动遗忘 (Amnesia)
硬性截断 (Truncate > 25KB)
知识调用
回忆 (Recall)
语义搜索 (Search Memory)