news 2026/7/12 11:14:26

AI编程系列之6:CLAUDE.md 三层记忆系统——让 AI 真正“懂“你的项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI编程系列之6:CLAUDE.md 三层记忆系统——让 AI 真正“懂“你的项目

目录

    • 前言
    • 1. 为什么"通用 AI"和"懂你的 AI"是两个物种
    • 2. 三个层级的 CLAUDE.md
      • 2.1 文件夹级(最高优先级)
      • 2.2 项目级(团队共享)
      • 2.3 全局级(个人偏好)
      • 2.4 三层叠加生效
    • 3. 用 /init 自动生成项目级 CLAUDE.md
      • 3.1 /init 的工作原理
      • 3.2 /init 之后必做:人工校对
    • 4. 模板实战:5 个必写模块
      • 4.1 技术栈(写明版本号)
      • 4.2 目录结构
      • 4.3 编码规范
      • 4.4 当前进度
      • 4.5 禁忌清单(最少被问到的问题)
    • 5. 第二层记忆:Auto Memory
      • 5.1 启用 Auto Memory
      • 5.2 Auto Memory 会记什么
      • 5.3 Auto Memory 的使用手感
      • 5.4 CLAUDE.md vs Auto Memory 的本质区别
    • 6. 最佳实践:只放"顶层不变原则"
    • 结语
    • 参考资料

前言

你有没有过这种经历:明明昨天才告诉 Claude Code “我们项目用 TypeScript 严格模式”,今天开新会话它又问"用 JavaScript 还是 TypeScript"?明明上次你吐槽过"不要用 class 组件",它这次又写了一个?

这不是 AI 记性差,而是你没有给它一个记笔记的地方

解决方案就是CLAUDE.md——一个放在项目里的"记忆文件"。这一篇我会彻底讲清楚:它分几层、怎么用、有多强大。

1. 为什么"通用 AI"和"懂你的 AI"是两个物种

先举一个反例。

假设你正在做一个电商网站,前端用 Next.js 14 + TypeScript,后端用 Next.js API Routes,数据库是 Prisma + PostgreSQL,UI 组件库用 shadcn/ui,代码风格要求函数式组件、API 返回统一格式{ success, data, error }

不开 CLAUDE.md 的对话:

你:帮我加一个商品分类的 CRUD 接口 AI:好的,请问你用什么技术栈?后端用 Express 还是 Koa?数据库用 MySQL 还是 MongoDB? 你:Next.js API Routes + Prisma + PostgreSQL AI:好的。请问命名规范呢?返回值格式有要求吗? 你:函数式、{success, data, error} AI:好的,请问 UI 用什么组件库? 你:shadcn/ui ... (光是把项目背景讲一遍就花了 5 分钟)

开了 CLAUDE.md 之后的对话:

你:帮我加一个商品分类的 CRUD 接口 AI:好的,我看到项目用 Prisma + PostgreSQL,命名规范是函数式、{success, data, error} 格式。 我会按这些规范写,预计要改两个文件:/api/admin/categories/route.ts 和 /app/admin/categories/page.tsx。是否开始? 你:开始

差距显而易见:CLAUDE.md 把"反复解释"变成了"自动理解"。它不是省了几句话的事,而是把你的项目从"AI 的一次性外包"变成"AI 长期协作的同事"。

打个比方:通用 AI 就像你每天去医院都要重新跟医生说一遍病史;懂你的 AI 就像你的家庭医生,他有一份完整的病历档案。

2. 三个层级的 CLAUDE.md

官方为 CLAUDE.md 设计了三个层级,它们会同时生效、不冲突。下面我按从高到低的优先级讲解。

2.1 文件夹级(最高优先级)

放在某个子目录下的 CLAUDE.md。比如:

  • src/payment/CLAUDE.md—— 写支付模块踩过的坑
  • src/components/admin/CLAUDE.md—— 写后台组件的命名约定
  • prisma/CLAUDE.md—— 写数据库迁移的注意事项

当 Claude Code 在这个目录下工作时,会自动读取这一层。它的优先级最高,因为它最贴近当前任务的上下文

2.2 项目级(团队共享)

放在项目根目录的 CLAUDE.md(不是.claude/文件夹下)。它的内容通常是:

  • 项目技术栈(具体到版本号)
  • 项目目录结构
  • 编码规范
  • 当前开发状态
  • 注意事项和禁区

这一层可以提交到 Git,团队成员共享。它是 CLAUDE.md 体系的核心

2.3 全局级(个人偏好)

放在~/.claude/CLAUDE.md(用户主目录下)。它对所有项目都生效,适合写个人偏好

  • “请永远用中文回答”
  • “我是前端工程师,主要做 React 项目”
  • “不要给我看 emoji”
  • “解释代码时请用比喻,不要用术语堆砌”

2.4 三层叠加生效

三层 CLAUDE.md 不是互斥的,而是叠加生效。优先级是:文件夹级 > 项目级 > 全局级

举个例子:

  • 全局级说:“我喜欢用中文回答”
  • 项目级说:“API 返回 { success, data, error }”
  • 文件夹级说:“payment 模块必须用事务”

当你在src/payment/目录下让 AI 写支付逻辑时,它会同时遵守这三条——中文回答、统一返回格式、用事务。

关键认知:CLAUDE.md 的"三层"不是选一个用,而是像乐高积木一样叠加。你可以一层都不写(裸用),也可以三层都写(强定制)。一般建议至少写项目级这一层。

3. 用 /init 自动生成项目级 CLAUDE.md

如果你不知道 CLAUDE.md 该写什么,最简单的姿势是用 Claude Code 的/init命令。

3.1 /init 的工作原理

进入项目目录,启动 Claude Code:

$cd~/my-project $ claude

在提示符输入:

/init

Claude Code 会启动一个只读的分析过程

  1. 扫描项目目录结构
  2. 读取package.json(如果有)
  3. 读取关键配置文件(如tsconfig.jsontailwind.config.js
  4. 推测项目的技术栈和约定
  5. 在项目根目录生成一份CLAUDE.md初稿

3.2 /init 之后必做:人工校对

/init生成的是机器视角的 CLAUDE.md——它可能漏掉一些只有你知道的事。比如:

  • “这个项目还在开发中,不要修改prisma/migrations/2024xxx/下的迁移文件”
  • “部署到 Vercel,环境变量在 Vercel 控制台管理”
  • “团队约定:所有 PR 必须经过另一个工程师 review”

你需要在生成的基础上手动补充这些"只有人才知道的上下文"。我个人的经验是:先/init,再花 5-10 分钟调整。

提示:官方建议项目有一定规模再/init效果更好。一个空目录让 AI 扫,它扫不出什么东西,生成的 CLAUDE.md 会很空。

4. 模板实战:5 个必写模块

下面是我在真实项目里用的 CLAUDE.md 模板,按 5 个模块组织。你可以直接复制,再根据自己项目修改。

4.1 技术栈(写明版本号)

## 技术栈 - 框架:Next.js 16 (App Router) + TypeScript 5 - 样式:TailwindCSS 4 - 数据库:Prisma 5 + SQLite(开发)/ PostgreSQL(生产) - 认证:自制 Cookie Session + bcryptjs - 测试:Vitest + Testing Library

为什么必须写版本号?不同版本 API 差异巨大。比如 Next.js 13→14 升级时,App Router 的 params 从同步改成异步。不写版本号,AI 可能用过时的 API 写代码。

4.2 目录结构

## 项目结构 src/ ├── app/ # Next.js App Router 页面 │ ├── api/ # API 路由 │ └── (admin)/ # 后台页面分组 ├── components/ # React 组件 │ ├── ui/ # 通用 UI 组件 │ └── features/ # 业务组件 ├── lib/ # 工具函数 └── prisma/ # 数据库 schema

4.3 编码规范

## 编码规范 - 组件:函数式 + React Hooks,不使用 class 组件 - 文件命名:kebab-case(如 product-card.tsx) - 组件命名:PascalCase(如 ProductCard) - API 返回统一格式:{ success: boolean, data?: any, error?: string } - 错误处理:使用 try-catch,错误统一抛到 API 层

4.4 当前进度

## 当前开发状态 - [x] 项目初始化 - [x] 数据库 Schema 设计 - [/] 商品 CRUD API(进行中) - [ ] 购物车功能 - [ ] 订单系统 - [ ] 部署上线

这一段的作用是让 AI 知道项目当前在哪里。你今天做完一个功能,就更新一下进度;明天 AI 接手时就不会"失忆"。

4.5 禁忌清单(最少被问到的问题)

## 注意事项 - 不要修改 prisma/migrations/ 下的迁移文件 - 不要把 .env 提交到 Git - 密码字段永远不通过 API 返回 - 修改数据库前先和团队确认 - 所有新功能先创建 Git 分支再开发

经验:禁忌清单是性价比最高的部分。AI 经常会做一些"看起来合理但不符合项目惯例"的事——比如把数据库密码写进前端代码。禁忌清单能 80% 地避免这种问题。

5. 第二层记忆:Auto Memory

CLAUDE.md 写好了,但有些事情你没意识到要写,AI 怎么记?

这就是 Auto Memory 的价值——它是 Claude Code 自己的笔记本。

5.1 启用 Auto Memory

在 cc 会话中输入:

/memory

在弹出的菜单里选第一个选项"启用 Auto Memory"。启用后菜单里会多出"打开自动记忆文件夹"选项。

5.2 Auto Memory 会记什么

Auto Memory 会在四种情况下自动记录:

类型含义举例
user关于你你的角色、偏好(如"不喜欢深色 UI")
feedback你给过的反馈“不要这样做”、“对,就这样”
project项目相关进度、决策、技术选型
reference外部资源索引“某份设计文档在 docs/design.md”

典型场景:你今天告诉 Claude Code “我们项目用 TailwindCSS 4,不要写 CSS 文件”。一周后开新会话,你没在 CLAUDE.md 里写这条——但 Auto Memory 记下了,所以 AI 不会犯老错误。

5.3 Auto Memory 的使用手感

几个重要细节:

  • 它只在当前项目生效(文件存在项目目录下),换项目需重新积累
  • 启用后 cc不会每次都把所有记忆全部加载进上下文,只会读一份memory.md索引——遇到具体问题才去读对应的子文件,占 token 很少
  • 随时可以按Ctrl+O在会话中查看实际被调用过的记忆内容
  • 记错了就直接跟它说:“忘掉刚刚说的不喜欢深色主题”,它会自己删掉

5.4 CLAUDE.md vs Auto Memory 的本质区别

一句话总结:CLAUDE.md 是你主动立下的规矩,Auto Memory 是 AI 默默记下的笔记

  • CLAUDE.md:第一优先级、全量注入的明规则
  • Auto Memory:第二优先级、按需注入的隐规则

两者配合,cc 越用越懂你。

6. 最佳实践:只放"顶层不变原则"

最后说一个反直觉的真相:CLAUDE.md 越短越好

很多新手喜欢往 CLAUDE.md 里塞 200 行——每一条规范都写进去。结果呢?AI 反而表现变差。因为:

  1. 太长导致 AI 注意力分散——规范太多,AI 会"挑着遵守"
  2. 太具体导致维护成本高——你换了一个库,规范就过时了
  3. 太多规则相互冲突——比如"用 functional programming"和"用面向对象设计模式"很难同时遵守

卡帕西(Andrej Karpathy,AI 大牛)发布的「claude.skills」项目只有几百行通用规则,却在 GitHub 拿了 10 万+ Star。他的核心思路是:只写"顶层、不变、必须严守"的东西

那什么是"顶层不变原则"?我自己的判断标准有 3 条:

  1. 跨会话不变:不管我今天做什么项目,这条规则都适用
  2. 跨任务不变:不管是写前端还是后端,这条规则都成立
  3. 违反后果严重:如果 AI 不遵守,会出大乱子

举几个符合这 3 条的例子:

  • “密码字段永远不通过 API 返回”——跨会话、跨任务、违反后果严重 ✓
  • “不要把 .env 提交到 Git”——跨会话、跨任务、违反后果严重 ✓
  • “所有 API 返回统一 { success, data, error } 格式”——跨任务,但不算"严重",可以放项目级

举几个不该放进 CLAUDE.md 的例子:

  • “按钮的圆角用 rounded-md”——太具体,UI 风格会变
  • “购物车要支持优惠券”——这是产品需求,不是规范
  • “PostgreSQL 用 15 版本”——太具体,部署时再说

多体素原则(Multi-Voxel Principle):把项目知识切成独立的小块(体素),需要时按需加载,而不是一次性全塞进大脑。

结语

CLAUDE.md 三层记忆系统是 Claude Code 最被低估的功能之一。很多人装了 Claude Code 却不用 CLAUDE.md,结果每周都要花几十分钟重复解释项目背景。

我的建议是:

  1. 第一个项目——用/init生成项目级 CLAUDE.md,5 分钟校对
  2. 每周——花 10 分钟更新"当前进度"和"禁忌清单"两个模块
  3. 每月——清理一次全局 CLAUDE.md,把过时的个人偏好删掉

这个习惯坚持一个月,你会发现 Claude Code 的"反应"越来越像你肚子里的蛔虫。

参考资料

1 https://www.bilibili.com/video/BV1RPET6tEp2

2 https://claude.ai/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 11:12:34

OneNote生产力终极实战:160+功能深度解析与完整配置指南

OneNote生产力终极实战:160功能深度解析与完整配置指南 【免费下载链接】OneMore A OneNote add-in with simple, yet powerful and useful features 项目地址: https://gitcode.com/gh_mirrors/on/OneMore 在信息碎片化时代,OneNote作为微软生态…

作者头像 李华
网站建设 2026/7/12 11:12:22

基于PIC18F4455与PAM8904的智能音频警报系统设计

1. 项目背景与核心需求在工业自动化、智能家居和医疗设备等领域,可靠的事件通知系统是保障安全运行的关键组件。传统蜂鸣器方案存在音量固定、音调单一的问题,而市面上的智能通知设备往往成本高昂。基于PIC18F4455微控制器和PAM8904音频驱动器的组合&…

作者头像 李华
网站建设 2026/7/12 11:11:59

特朗普手机T1售价499美元,优点寥寥缺点多,靠谱吗?

特朗普手机T1售价499美元,评测:优点寥寥,缺点却一箩筐!特朗普手机从来就不是一款靠谱的手机。去年6月发布时,只有模糊的渲染图和语焉不详的规格参数,那时就不靠谱;发布仅两周后,特朗…

作者头像 李华
网站建设 2026/7/12 11:11:29

嵌入式系统中信号上拉/下拉配置的硬件与软件实现

1. 硬件选型与核心组件解析在嵌入式系统设计中,信号的上拉/下拉配置是确保电路稳定工作的基础操作。我最近在工业控制项目中采用DTH-08模块配合PIC18F47Q10微控制器的组合方案,这套硬件配置特别适合需要动态切换信号状态的场景。下面详细解析这套方案的核…

作者头像 李华
网站建设 2026/7/12 11:11:20

有限自动机 DFA/NFA 实战:用 Python 实现 3 种正则表达式匹配引擎

有限自动机 DFA/NFA 实战:用 Python 实现 3 种正则表达式匹配引擎正则表达式作为文本处理的瑞士军刀,其底层实现原理却鲜为人知。本文将带您深入有限自动机的世界,通过Python代码实现三种不同类型的正则表达式匹配引擎,揭开模式匹…

作者头像 李华
网站建设 2026/7/12 11:07:38

ICO 格式深度解析:从 BMP/PNG 编码到 Windows 10/11 图标规范

ICO 格式深度解析:从编码原理到现代应用实践在数字界面设计领域,图标作为用户交互的第一触点,其质量直接影响产品的专业形象。Windows 系统采用的 ICO 格式自 1985 年诞生以来,已发展成为支持多分辨率、多色深的专业图标容器。与常…

作者头像 李华