用了一段时间 Claude Code 后,你会发现有些规则需要反复强调——"用中文回复""不要动配置文件""测试用 jest"。CLAUDE.md 和 Auto Memory 就是解决这个问题的:把规则写下来,让 AI 每次对话自动遵守。
一、CLAUDE.md 的三个层级
CLAUDE.md 是一种 Markdown 规则文件,有三个层级,优先级从高到低:
| 层级 | 文件位置 | 作用范围 | 典型内容 |
|---|---|---|---|
| 全局 | ~/.claude/CLAUDE.md | 所有项目 | 语言偏好、通用编码风格、个人信息 |
| 项目级 | 项目根目录/CLAUDE.md | 当前项目 | 技术架构、项目约定、文件结构说明 |
| 子目录级 | 子目录/CLAUDE.md | 该目录及子目录 | 模块特定的规则、注意事项 |
全局 CLAUDE.md 示例
# 全局规则
- 始终使用简体中文回复
- 代码注释使用英文
- 优先使用函数式编程风格
- 不要使用 var,使用 const 或 let
项目级 CLAUDE.md 示例
# 项目:科研星河
## 技术栈
- 纯 HTML/CSS/JS 静态站点,无框架
- CSS 使用自定义属性(CSS Variables)
- 字体通过国内 CDN 加载
## 约定
- 修改 CSS 或 JS 文件后,同步更新 HTML 中的 ?v= 缓存时间戳
- 文件命名使用 kebab-case
- 导航栏和页脚由 main.js 动态注入
快速初始化
在项目根目录输入 /init,Claude Code 会自动分析项目结构并生成一份 CLAUDE.md,省去手动编写的麻烦。生成的文件作为起点,后续根据实际需求修改。
动态更新策略
CLAUDE.md 不是一劳永逸的。随着项目演进,你需要:
- 添加新规则:当 AI 犯了重复错误,把纠错经验写入
- 更新架构说明:新增模块或改变技术栈时同步更新
- 精简过时规则:删除不再适用的条目,保持文件精炼
二、Auto Memory 自动记忆
CLAUDE.md 是你主动写的规则,Auto Memory 则是 AI 自动记录的经验。
开启方法
输入 /memory 命令,选择开启自动记忆。开启后,Claude Code 会在工作过程中自动记录:
- 用户偏好:你说过"不喜欢浅色 UI",它会记住
- 纠错反馈:你纠正过的错误,下次自动避免
- 项目细节:重要的架构决策和技术选型
- 外部资源:引用过的文档、API 地址等
记忆的工作机制
记忆文件存储在 .claude/projects/ 目录下,按项目隔离。关键设计:
- 按需加载:不会每次都加载所有记忆,只注入与当前任务相关的部分
- 不占用固定上下文:记忆通过索引按需读取,不会挤占上下文窗口
- 可手动管理:按
Ctrl+O可查看和编辑记忆文件
CLAUDE.md 与 Auto Memory 的关系
| 维度 | CLAUDE.md | Auto Memory |
|---|---|---|
| 优先级 | 最高,全部注入上下文 | 次级,按需注入 |
| 创建方式 | 手动编写 | AI 自动生成 |
| 适合内容 | 不变的顶层规则 | 动态积累的经验 |
| 版本管理 | 建议纳入 Git | 在 .claude/ 中,通常不入库 |
两者配合使用效果最佳:CLAUDE.md 设定"法律",Auto Memory 记录"案例"。
三、上下文窗口管理
大模型有上下文长度限制(通常 200K token)。随着对话变长,上下文逐渐填满,AI 的响应速度和质量会下降。
监控上下文
/context— 查看当前上下文的详细占用情况- 界面上通常会显示上下文使用百分比
压缩上下文
当你感觉 AI 开始"遗忘"早期内容时:
/compact
这会压缩对话历史,保留关键信息,释放空间给新内容。建议在完成一个阶段性任务后主动执行一次。
清空重来
/clear
彻底清空对话,相当于重新开始。当你切换到完全不同的任务时使用。注意:清空后 AI 不再记得之前的对话内容(但 CLAUDE.md 和 Auto Memory 仍然有效)。
最佳实践
- 每完成一个功能点,执行
/compact释放空间 - 上下文超过 70% 时主动干预
- 切换大任务时用
/clear重置,避免旧上下文干扰 - 重要规则写进 CLAUDE.md,而非依赖对话记忆
下一篇将介绍 Claude Code 的高级功能:Skills 技能系统、MCP 外部工具连接、子代理和 Hooks 自动化。