📁 Claude Code 记忆文件详解

不同类型记忆文件的实际内容、文件大小与 Token 关系、以及上下文长度对性能的影响

🗂️ 记忆文件类型全景

Claude Code 使用 多个独立的 md 文件 存储不同类型的记忆,而不是把所有东西塞进一个文件:

📝

CLAUDE.md

~/CLAUDE.md 或 ./CLAUDE.md

项目的核心记忆文件,定义项目概述、技术栈、编码规范、目录结构、命令脚本等。

手动维护 会话开始时加载 上下文注入

auto-memory.md

~/.claude/projects/{id}/auto-memory.md

Claude 自动学习的记忆,存储重要决策、已知问题、解决方案记录。

自动生成 增量更新 无需手动维护
📋

PLANNING.md

./PLANNING.md

项目愿景、架构设计、技术选型、约束条件、成功指标、发展路线图。

项目规划 大项目必备 战略视角

TASKS.md

./TASKS.md

任务追踪清单,按里程碑/冲刺组织,包含完成状态、优先级、负责人。

任务管理 敏捷开发 持续更新
📦

.claude/rules/*.md

./.claude/rules/{name}.md

模块化规则集,按功能分类如 coding-standards.md、api-guidelines.md。

模块化 可复用 按需加载
📄

PRD.md

./PRD.md

产品需求文档,描述功能需求、用户故事、验收标准、非功能性需求。

产品需求 需求管理 团队协作

📄 真实文件内容示例

1. PLANNING.md 示例(项目规划)

📋 PLANNING.md
# 项目愿景 核心使命:创建一个AI驱动的生产力教练,将15本影响力生产力书籍的精华,通过极简、美观的聊天界面,转化为个性化的可执行指导。 # 技术栈 - React 18+ / TypeScript / Vite / Tailwind CSS / Framer Motion - Gemini 2.5 Pro API(2M+ token 上下文窗口) - 部署:Vercel # 架构流程 用户浏览器React 应用Serverless APIGemini API # 知识库(15本书) | 序号 | 书名 | 核心主题 | |------|------|----------| | 1 | Atomic Habits | 习惯养成、系统 | | 2 | Deep Work | 专注力、注意力管理 | | 3 | The Power of Habit | 习惯回路、行为改变 | | ... | ... | ... | # 发展路线图 | 阶段 | 时间 | 内容 | |------|------|------| | Phase 1: MVP | 2-3 周 | 核心聊天界面、知识库集成 | | Phase 2: 增强体验 | 1-2 周 | 跨会话历史、智能建议 | | Phase 3: 高级功能 | 未来 | 用户账户、个性化学习路径 |

2. TASKS.md 示例(任务追踪)

TASKS.md
## Milestone 1: 工作原型 (Week 1) - [x] 项目结构搭建 - [x] 知识库系统集成 - [x] 玻璃拟态设计系统 - [x] 核心 UI 组件 (GlassCard, GlassButton) - [ ] 浏览器玻璃效果测试 - [ ] API 层开发 (Gemini) ## API 集成 - [ ] 安全 serverless 函数 - [ ] 错误处理与重试机制 - [ ] 限流保护 ## 移动端优化 - [ ] 触摸交互优化 - [ ] 键盘布局适配 ## Phase 2 (Week 4-5) - [ ] 对话会话管理 - [ ] 性能优化 - [ ] 高级功能 (问题建议、快速操作)

3. CLAUDE.md 示例(项目核心规则)

📝 CLAUDE.md
## Project Overview AI驱动的生产力教练应用,服务于希望提升效率的知识工作者。 核心功能是聊天式知识问答,优先保证:回复质量 > 用户体验 > 新功能。 ## Tech Stack - React 18+ / TypeScript (strict mode) - Vite / Tailwind CSS / Framer Motion - Gemini 2.5 Pro API - Vercel 部署 禁止引入: - Redux (无状态管理必要) - styled-components (已用 Tailwind) - jQuery ## Coding Conventions - 函数不超过 50 行 - 组件不超过 150 行 - 每个文件只导出一个组件 - 条件分支使用早期返回 - 禁止遗留死代码和注释掉的代码 ## Architecture - src/components/ — 可复用 UI 组件 - src/lib/ — 工具函数和共享逻辑 - src/features/ — 业务逻辑模块 - src/app/ — 页面和路由 ## Commands - npm run dev — 开发服务器 - npm run build — 生产构建 - npm run lint — 代码检查 ## Safety Rules 除非明确要求,否则不要: - 修改 API 密钥或环境变量 - 重构超过 3 个文件 - 引入新的第三方依赖 - 修改数据库 schema ## File Usage - Always read PLANNING.md at start of conversation - Check TASKS.md before starting work - Mark completed tasks in TASKS.md immediately

4. rules/coding-standards.md 示例(模块化规则)

📦 .claude/rules/coding-standards.md
# Coding Standards ## TypeScript - 使用 strict mode - 禁止使用 any 类型,使用 unknown 代替 - 优先使用 const,必要时使用 let - 接口命名使用 PascalCase - 函数命名使用 camelCase ## React - 使用函数组件 + Hooks - 组件文件名使用 PascalCase.tsx - 提取可复用的 UI 到 components/ - 业务逻辑提取到 hooks/ 或 lib/ ## CSS / Tailwind - 优先使用 Tailwind 工具类 - 复杂样式使用 CSS 变量 - 避免内联样式 ## Git Commits - feat: 新功能 - fix: 修复 bug - docs: 文档更新 - style: 代码格式 - refactor: 重构 - test: 测试 - chore: 构建/工具

5. auto-memory.md 示例(自动记忆)

auto-memory.md
# Auto Memory # Last updated: 2026-05-07 ## 重要决策 - 选择 Gemini 2.5 Pro 而非 GPT-4:原因:2M token 上下文窗口更适合知识库打包 - 采用玻璃拟态设计:参考 Apple iOS 设计语言 - 知识库直接打包进 React:避免 RAG 复杂度 ## 已知问题 - 移动端触摸事件需要额外处理 - Tailwind 玻璃效果在某些 Android 浏览器不支持 - Gemini API 有速率限制,需要实现重试机制 ## 解决方案记录 - 玻璃效果兼容性:使用 @supports 特性检测 - API 重试:使用指数退避策略,最多重试 3 次 - 包体积优化:使用 dynamic import 懒加载知识库 ## 用户偏好 - 用户偏好简洁的回复,避免冗长的解释 - 用户经常忘记运行测试,需要在提交前提醒

📊 文件大小与 Token 关系

Claude Code 的上下文窗口是 200,000 tokens,但这并不意味着你可以无限塞内容:

交互式 Token 计算器

拖动滑块查看不同文件大小对上下文的影响

CLAUDE.md 3 KB
PLANNING.md 5 KB
TASKS.md 3 KB
auto-memory 2 KB
rules/ 1 KB
系统
10%
CLAUDE
5%
Auto
3%
Rules
2%
对话
75%
系统提示 (~20K tokens)
CLAUDE.md
Auto Memory
Rules
可用对话空间

📊 总计:14 KB~3,500 tokens

💡 200,000 token 上下文窗口 ≈ 150,000 中文字符 ≈ 150 页文档

文件大小与 Token 换算

文件大小 估算 Token 数 占上下文比例 建议
< 1 KB ~250 tokens 0.1% 太简略,补充内容
1-5 KB 250-1,250 tokens 0.1-0.6% ✅ 理想范围
5-10 KB 1,250-2,500 tokens 0.6-1.3% 良好,注意精简
10-50 KB 2,500-12,500 tokens 1.3-6.3% ⚠️ 开始影响对话空间
> 50 KB > 12,500 tokens > 6.3% ❌ 建议拆分或精简

⚠️ 上下文长度与性能衰减

上下文使用量与响应质量关系

20K
0-10%
60K
30%
100K
50%
147K
73% ⚠️
170K
85% 🔴
200K
100%
🟢 最佳区间 (0-70%)

响应质量最佳,模型注意力分布均匀

🟡 衰减开始 (70-80%)

"中间迷失"效应开始显现

🔴 严重衰减 (80%+)

对话历史被大幅压缩

上下文消耗构成

组成部分 Token 数 占比 说明
系统提示 ~20,000 10% Anthropic 内置的基础行为定义
CLAUDE.md 等记忆文件 ~10,000 5% 项目记忆,通常 1-5KB
Auto Memory ~5,000 2.5% 自动学习的知识
MCP 工具定义 900-51,000 0.5-25% 取决于配置的 MCP 服务数量
自动压缩缓冲区 ~33,000 16.5% 用于压缩对话历史的预留空间
可用对话空间 ~114,000 57% 实际可用于对话的 token

💡 核心问题解答

CLAUDE.md 文件太大会影响模型速度吗?

会,但影响有限。

Claude Code 的上下文窗口是 200,000 tokens,CLAUDE.md 通常只有 1-5KB(约 250-1,250 tokens),只占上下文的 0.1-0.6%

真正影响速度的是:

  • 对话历史长度 — 这是主要因素,会不断增长
  • 代码文件内容 — 当你需要读取多个大文件时
  • MCP 工具定义 — 如果配置了很多 MCP 服务

💡 最佳实践:保持 CLAUDE.md 在 3-5KB 以内,让对话历史有足够的空间。

"中间迷失" 是什么意思?

"Middle Lost"(中间迷失) 是 LLM 的一个特性:模型对上下文开头和结尾的信息注意力最强,中间部分的信息容易被降权。

在 150K tokens 时,Claude Code 的响应质量开始下降,即使上下文窗口还有 50K tokens 的余量。

💡 解决策略

  • 定期使用 /compact 命令压缩对话历史
  • 保持 CLAUDE.md 简洁,把重要规则放在文件开头
  • 大项目使用多个 CLAUDE.md,按子目录组织
什么时候会自动压缩对话历史?

当上下文使用量达到 64-75%(约 128,000-150,000 tokens)时,Claude Code 会自动触发压缩机制:

  1. 清除旧的工具输出(文件读取、grep 结果等)
  2. 将对话历史压缩为结构化摘要
  3. 以摘要为新基线继续对话

⚠️ 注意:自动压缩可能在任务中途打断你。建议在逻辑断点手动执行 /compact

多个 md 文件会影响性能吗?

不会,反而是优化策略。

Claude Code 采用递归向上加载机制:

  • 从当前目录向上搜索所有 CLAUDE.md
  • 遇到 .claude/rules/ 目录才加载规则文件
  • 不在上下文中的文件不会被加载

💡 模块化设计的好处

  • 按需加载,只读取当前相关的文件
  • 便于团队分工维护不同规则
  • 避免单文件过大

🎯 最佳实践总结

维度 ✅ 推荐 ❌ 避免
文件数量 按功能拆分(CLAUDE.md + rules/) 所有内容塞进一个 CLAUDE.md
文件大小 每个文件 1-5KB 单个文件超过 50KB
内容位置 重要规则放在文件开头 规则散落在文件各处
规则表述 "函数不超过 50 行" "写高质量代码"
自动记忆 让 Claude 自动学习重要决策 从不更新 auto-memory
上下文管理 定期 /compact 压缩 让对话无限增长