深度解析六层记忆架构与持久化上下文机制
Claude Code 每次启动都会开启一个全新的上下文窗口,之前会话中积累的项目知识、编码偏好、调试经验会随之消失。记忆系统正是为了让 AI 能够在跨会话记住项目规范和个人偏好。
在项目根目录创建 CLAUDE.md 文件,定义项目上下文、编码规范、技术栈等,Claude 每次会话都会读取。
Claude 会自动学习项目中的重要决策和模式,积累到 ~/.claude/projects/ 目录,无需手动维护。
将不同类型的规则拆分为独立文件,如 coding-standards.md、api-design.md,便于维护和复用。
从当前目录向上递归到根目录,读取所有 CLAUDE.md 文件并叠加生效,覆盖粒度可精细到每个子目录。
Claude Code 采用类似操作系统的分层记忆模型,从全局到项目逐层覆盖:
Anthropic 内置基础行为定义
Claude Code 的核心能力边界和安全规则,由 Anthropic 官方定义,不可修改。
~/.claude/CLAUDE.md
适用于所有项目的通用规则,如编码风格、Git 提交规范、测试要求等。
/project/CLAUDE.md
项目特有的上下文,包括项目概述、技术栈、目录结构、特定业务规则等。
~/.claude/projects/{project-id}/auto-memory.md
Claude 自动学习的重要决策:为什么选择某技术方案、已知问题、绕过方法等。
/project/.claude/rules/*.md
模块化的规则文件,可按功能分类,如 api-guidelines.md、security.md、testing.md。
当前会话的对话上下文
当前会话中的用户指令、Claude 的思考和回复,是实时信息的主要来源。
Claude Code 启动时的完整加载顺序:
关键特性:
Claude Code 在项目中的典型文件结构:
| 章节 | 说明 | 优先级 |
|---|---|---|
| Project Overview | 项目定位、核心用户、优先级 | 高 |
| Coding Conventions | 可执行的编码规范(函数行数限制、命名规则等) | 高 |
| Tech Stack | 技术栈版本、包管理器、禁止使用的库 | 中 |
| Architecture | 目录结构、模块划分、组件层级 | 中 |
| Commands | 常用命令脚本(dev、build、test 等) | 中 |
| Safety Rules | 禁止操作(不修改 schema、不重命名 API 等) | 低 |
| 大小 | 效果 | 建议 |
|---|---|---|
| < 1KB | 太简略,遗漏关键信息 | 补充核心内容 |
| 1~5KB | 理想范围 | 保持 |
| 5~10KB | 良好,部分规则可能被稀释 | 检查冗余 |
| > 10KB | Claude 可能忽略部分规则 | 精简到前 80% |
| 工具 | 配置文件 | 定位 | 持久化方式 |
|---|---|---|---|
| Claude Code | CLAUDE.md | 项目级上下文提示 | 手动 + 自动 |
| Cursor | .cursorrules | 项目级规则 | 手动 |
| GitHub Copilot | 无标准文件 | 代码分析 | 无 |
| Cline/Roo Code | CLINE.md / .clinerules | 类似 CLAUDE.md | 手动 |
300~800 字最佳区间。太短不够用,太长 Claude 的关注力会被稀释。
具体规则而非抽象原则。明确"怎么做"而非"追求什么"。
明确说什么不要做,比列举允许的行为更有效。
随项目演进持续完善。Claude 重复犯错就添加规则,规则失效就删除。
# CLAUDE.md 模板示例 ## Project Overview 这是一个[项目类型],服务于[目标用户]。 核心功能是[核心价值],优先保证[优先级]。 ## Tech Stack - [主要语言/框架] - [数据库] - [包管理器] 禁止引入: - [禁止使用的技术] ## Coding Conventions - 函数不超过 50 行 - 每个文件只导出一个组件 - 条件分支使用早期返回 ## Commands - 开发:npm run dev - 构建:npm run build - 测试:npm test ## Safety Rules 除非明确要求,否则不要: - 修改数据库 schema - 重构超过 3 个文件 - 引入新的依赖