1. Memory 系统概述
1.1 为什么需要 Memory?
问题场景:
bash
# 会话 1
User: "我们的项目使用 TypeScript + React + Vite"
Claude: "好的,我会记住这个技术栈"
# 会话 2 (第二天)
User: "帮我创建一个新组件"
Claude: "你们使用什么技术栈?"
User: "😤 我昨天告诉过你了!"核心挑战:
| 挑战 | 影响 | 传统解决方案的问题 |
|---|---|---|
| 上下文丢失 | 每次会话都是全新开始 | 用户需要重复说明 |
| 知识无法积累 | 无法从历史中学习 | 效率低下 |
| 个性化缺失 | 无法记住用户偏好 | 体验差 |
| Token 限制 | 无法保留所有历史 | 成本高昂 |
1.2 Claude Code Memory 架构
两层记忆系统:
┌─────────────────────────────────────────────────────────────────┐
│ Two-Layer Memory Architecture │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Layer 1: MEMORY.md (Hot Memory) │
│ ├── 始终加载到上下文 │
│ ├── 200 行限制 (约 2k tokens) │
│ ├── 存储最重要的信息 │
│ └── 快速访问,无需检索 │
│ │
│ Layer 2: Topic Files (Cold Memory) │
│ ├── 按需加载 │
│ ├── 无大小限制 │
│ ├── 按主题组织 (debugging.md, patterns.md) │
│ └── 通过链接从 MEMORY.md 引用 │
│ │
└─────────────────────────────────────────────────────────────────┘