Anthropic 深度 · Claude Code Memory · 2026.03

Claude Code 的 Memory 机制与对话历史管理
从 MEMORY.md 到 AutoDream 的完整认知架构

Claude Code 构建了业界最完整的 AI 编程助手记忆体系——四层架构覆盖从项目规范到自动整理的全链路,让 AI 能真正"记住"你的项目、偏好和工作方式。本报告全面拆解其设计哲学与实战用法。

4 层
记忆架构
5 种
记忆类型
200 行
索引上限
跨 session 持久化
编辑洞察:Claude Code 的记忆系统不是简单的"聊天历史保存"。它更接近人类的认知架构——CLAUDE.md 是"工作手册"、Auto Memory 是"经验笔记"、Session Memory 是"短期工作记忆"、AutoDream 是"睡眠时的记忆整理"。四层协作,让 AI 能在跨越数百个对话的长期项目中保持一致性。

传统 AI 助手(ChatGPT、Cursor 等)的记忆能力大多停留在"记住你上次说的话"的层面。Claude Code 的做法完全不同:它将记忆拆分为四个层次,每一层有不同的存储位置、生命周期和管理方式,共同构成一个完整的认知架构。[1]

本报告从七个维度展开:Memory 全景(四层架构总览)、CLAUDE.md 详解(项目指令文件)、Auto Memory 系统(自动记忆与索引管理)、对话历史管理(compact / resume / task)、AutoDream(AI 的 REM 睡眠)、最佳实践实战案例[1][2]

§1

Memory 系统全景:四层认知架构

从项目规范到自动整理,覆盖 AI 编程助手的完整记忆链路

Claude Code 的记忆系统由四个层次组成,每一层解决不同的问题。理解这四层的边界和协作方式,是高效使用 Claude Code 的前提。[1]

层次名称谁来写存储位置生命周期加载时机
L1CLAUDE.md开发者项目根目录 / ~/.claude/永久(随 Git 提交)每次对话开始时
L2Auto MemoryClaude 自动~/.claude/projects/*/memory/永久(跨 session)MEMORY.md 前 200 行启动加载
topic 文件按需读取
L3Session MemoryClaude 自动本地对话记录单次 session(可 resume)对话过程中 / resume 时注入
L4AutoDreamClaude 子代理修改 L2 文件周期性(约 24h / 5+ sessions)后台运行,无需手动触发

四层架构的设计哲学

这四层并非简单的叠加,而是模仿了人类认知的不同阶段。CLAUDE.md 相当于"入职培训手册"——新员工(新 session)到岗时第一时间阅读;Auto Memory 是"个人工作笔记"——随工作积累自动记录;Session Memory 是"工作台上的便签"——当前任务的临时记忆;AutoDream 是"晚上回家整理笔记"——定期清理、归并、更新。[1][3]

L1
CLAUDE.md
项目规范 / 开发者编写
L2
Auto Memory
自动笔记 / Claude 写入
L3
Session Memory
会话上下文 / 实时摘要
L4
AutoDream
记忆整理 / 后台子代理

与其他 AI 工具的记忆机制对比

特性Claude CodeChatGPTCursor
项目级指令CLAUDE.md(多层级、Git 可控).cursorrules(单层).cursorrules / .cursor/rules
自动记忆Auto Memory(结构化 frontmatter、topic 文件)Memory(key-value 条目)
记忆整理AutoDream(自动去重、合并、时间归一化)无(手动管理)
上下文窗口1M tokens(Opus 4.6)128K tokens依赖底层模型
上下文压缩即时 compact(后台持续摘要)自动截断手动清理
跨 session 恢复--continue / --resume需手动提示重新开始
记忆持久化文件系统(可 Git 管理)云端同步无持久化
关键差异:ChatGPT 的 Memory 是简单的 key-value 存储("用户喜欢 Python"),无法表达复杂的项目上下文。Cursor 几乎没有跨 session 记忆能力。Claude Code 通过文件系统 + frontmatter 元数据 + 自动整理,构建了目前最完整的 AI 编程助手记忆体系。[1][4]
§2

CLAUDE.md 详解:项目的"宪法"

开发者编写的持久化指令文件,每次对话自动加载

CLAUDE.md 是 Claude Code 记忆系统的基石。它是一个 Markdown 文件,放在项目根目录下,Claude Code 在每次新对话开始时自动读取。你可以把它理解为项目的"宪法"——定义了 AI 在这个项目中应该遵循的所有规则。[2]

多层级 CLAUDE.md 体系

Claude Code 支持在多个位置放置 CLAUDE.md,形成从全局到局部的层级体系。所有层级的内容会被合并加载——更具体的规则在冲突时优先级更高。[2][5]

层级路径作用范围典型内容
企业级系统目录(组织配置)公司所有项目安全策略、代码规范、审批流程
用户级~/.claude/CLAUDE.md当前用户所有项目个人编码风格、通用偏好
项目级./CLAUDE.md./.claude/CLAUDE.md当前项目架构说明、部署流程、数据库结构
子目录级./src/api/CLAUDE.md特定子模块该模块的 API 规范、测试要求

应该写什么 vs 不该写什么

应该写进 CLAUDE.md

  • 项目架构概览(技术栈、目录结构)
  • 编码规范(命名、测试模式)
  • 部署流程(命令、环境变量)
  • 数据库结构(表名、字段说明)
  • 不可违反的硬规则(如"禁止修改 docs/human/ 目录")
  • 路由结构和权限控制
  • 版本管理规范
  • 外部 API 的使用方式

不该写进 CLAUDE.md

  • 临时状态信息(应放 Auto Memory)
  • 个人偏好(应放 ~/.claude/CLAUDE.md 或 memory)
  • 过于频繁变化的数据(如当前数据库行数)
  • 环境变量的值(安全风险)
  • 大段代码(代码应在代码文件中)
  • 对话历史和临时决策

实战案例:AI Insight 项目的 CLAUDE.md

以 AI Insight(ai-insight.org)项目为例,其 CLAUDE.md 超过 600 行,涵盖了一个生产级 Web 应用的完整上下文。以下是其关键结构片段:[2]

# AI Insight 项目开发规范

## 重要规则
- `docs/human/` 目录下的文件是 Vincent 本人手写的内容,AI 禁止修改

## 当前版本
- v1.6.0 — 资讯解读 + APP + 研报 + 短信切换(2026-03-28)

## 项目架构
ai-insight/
├── app.js          # Express 主文件(路由 + 静态数据 + 中间件链)
├── auth.js         # Google OAuth 认证
├── db.js           # Supabase PostgreSQL 连接(pg Pool,17 表)
├── dashboard.js    # 用户 Dashboard 路由
├── views/          # 203 个 EJS 模板
└── public/         # 静态资源

## 设计规范
- **配色**: Tailwind Stone 色系 + 琥珀强调色(#c4956a)
- **导航**: 首页 | 研报 | 播客/访谈 | 活动 | 资讯

## 数据库 (Supabase PostgreSQL, 17 表)
- 连接: `pg` Pool,环境变量 `SUPABASE_DB_URL`
- 表: news, videos, users, api_keys, custom_reports...

这份 CLAUDE.md 的特点是:结构化(清晰的层级标题)、可操作(包含具体的表结构和路由规则)、有边界(明确了"AI 禁止修改"的目录)。这使得每一个新 session 都能立即理解项目全貌。[2]

快速初始化:如果你的项目还没有 CLAUDE.md,可以在 Claude Code 中运行 /init 命令,Claude 会扫描你的代码库并自动生成一份基础的 CLAUDE.md。建议以此为起点,逐步完善。[5]
§3

Auto Memory 系统详解:Claude 的自动笔记本

Claude 在工作中自动积累知识,无需你手动记录

如果说 CLAUDE.md 是"你写给 Claude 的指南",那么 Auto Memory 就是"Claude 写给未来自己的笔记"。当你在对话中纠正 Claude 的错误、表达偏好、或做出重要决策时,Claude 会自动判断这些信息是否值得记住,并将其保存到 memory 文件中。[1][3]

存储结构

Auto Memory 的存储位置位于 ~/.claude/projects/{project-path-hash}/memory/ 目录下。该目录包含一个 MEMORY.md 索引文件和多个按主题组织的 topic 文件:[1]

~/.claude/projects/-home-vansin-ai-insight/memory/
├── MEMORY.md                    # 索引文件(前 200 行启动加载)
├── daily-workflow.md            # 日报工作流
├── video-rules.md               # 视频制作规则
├── pro-business-status.md       # 商业化状态
├── services.md                  # 外部服务依赖
├── team-report-workflow.md      # 团队协作流程
├── sms-login-retrospective.md   # SMS 登录复盘
└── ... (20+ topic 文件)

Frontmatter 格式

每个 topic 文件都以 YAML frontmatter 开头,包含三个元数据字段:[1][6]

---
name: daily-workflow
description: 机智流 AI 日报 = 推特资讯版(非 HF 论文日报)
type: feedback
---

五种记忆类型

👤 user

用户个人偏好和习惯。如编码风格、沟通方式、工具选择。跨项目通用。

示例:用户偏好 TypeScript strict mode

💬 feedback

用户纠正 Claude 后的经验教训。Claude 犯了错被纠正时自动记录,避免下次重犯。

示例:视频首帧必须是完整封面,不能有 fade-in

📁 project

项目级别的状态和决策。如架构选择、商业数据、技术决策的原因。

示例:Pro 会员 20 人/周,需增长策略

📚 reference

参考资料和技术文档摘要。如 API 端点、数据库结构、服务配置清单。

示例:12 个外部服务的配置和环境变量清单

code(已废弃)

早期版本中用于存储代码片段,现已不推荐使用。代码应放在代码文件中,而非 memory 中。

已在 2026 年初弃用

MEMORY.md 索引:200 行上限的设计

MEMORY.md 充当整个 memory 目录的索引。Claude Code 在每次对话启动时只加载其前 200 行(或 25KB,取较小值),这意味着它不能无限增长。超过 200 行时,Claude 会收到警告并被要求将详细内容拆分到 topic 文件中。[1]

MEMORY.md 的核心职责是"索引",而不是"存储"。以下是 AI Insight 项目的 MEMORY.md 实际结构示例:

# AI Insight 项目记忆

## 商业化
- [pro-business-status.md](pro-business-status.md) — Pro 20人/周,需增长

## 日报工作流
- [daily-workflow.md](daily-workflow.md) — 机智流 AI 日报 = 推特资讯版

## 视频制作规则
- [video-style-preference.md](video-style-preference.md) — Style 2 + Style 3
- [video-rules.md](video-rules.md) — 首帧必须是完整封面

## 环境配置
- Node.js: v20.20.0 (via nvm)
- 部署: `vercel --prod --yes`
- 线上地址: https://ai-insight.org

每一条都是一行索引 + 简短描述,指向更详细的 topic 文件。Claude 在需要某个 topic 的详细信息时,会主动读取对应文件。[1]

实战示例:一个真实的 memory 文件

以下是 AI Insight 项目中 video-rules.md 的完整内容,展示了 feedback 类型记忆的典型结构:

---
name: video-first-frame-rule
description: 视频首帧必须是完整封面,不能有任何 fade-in
type: feedback
---

视频首帧必须是完整的封面图,可以直接用作 B 站/YouTube 封面截图。

**Why:** 用户明确要求"首帧一定要可以直接用为封面"。B 站/YouTube
的封面可以从视频帧截取,第 0 帧如果是空白或半透明就无法使用。

**How to apply:**
- Remotion 视频的第一个场景所有元素在 frame=0 时 opacity=1
- 不做任何 fade-in
- SceneWrapper 的 `skipFadeIn` prop 必须在第一个场景设为 true

注意其结构:结论先行(首帧必须完整)+ 原因(Why:平台截图需求)+ 操作指南(How to apply:具体代码级指导)。这种格式让 Claude 在未来遇到相同场景时能直接应用。[1]

什么会触发自动记忆?Claude 并不是每个 session 都会写 memory。它会基于以下信号判断是否值得记住:用户纠正错误("不对,应该是...")、明确偏好("以后都用...")、反复出现的主题重要的架构决策。日常的编码任务通常不会触发记忆写入。[3]

登录后阅读完整报告

包含详细分析、数据图表、竞品对比、参考文献等

Google 登录