☰
彻底搞懂 Claude Code 的“记忆”机制:从 CLAUDE.md 到 /memory 的完整配置指南
2026/10/4 14:26:26 网站建设 项目流程

1. 先搞清楚 Claude Code 的“记忆”到底存了什么

很多人第一次用 Claude Code 会有一个错觉:昨天刚跟它讲清楚的项目规范,今天开个新会话它又忘了。于是开始怀疑是不是自己没“保存”,或者是不是要开什么会员功能。其实都不是。Claude Code 的记忆机制跟人类记忆完全不是一回事,它没有潜意识,也没有跨会话的长期状态。每次你敲下启动命令,它拿到的都是一个全新的上下文窗口,里面干干净净。

那为什么有时候它又“记得”项目里要用 pnpm、要跑哪个测试命令?答案在于:所谓记忆,本质上是每次启动时从磁盘读取一批 Markdown 文件,把这些内容注入到 Prompt 里当作上下文参考。换句话说,它不是“记住了”,而是“每次都被重新告知了一遍”。理解这一点,后面所有配置都不会再迷糊。

目前跨会话传递知识主要靠两套系统。第一套是 CLAUDE.md,也就是你手写给 AI 的规则文件,相当于员工手册。第二套是自动记忆(Auto Memory),是 AI 自己在工作过程中攒下来的笔记,相当于它自己的小本本。两者都是“参考上下文”,不是强制配置——Claude 会尽量遵守,但不保证 100% 执行。这一点很关键,后面排障时会反复用到。

这套机制适合谁?适合所有用 Claude Code 做项目开发的人,尤其是团队协作场景:你希望新会话一启动就带着项目约定、构建命令、代码规范,而不是每次从头解释。下面我会从 CLAUDE.md 的层级、.claude/rules/的模块化拆分、自动记忆的触发条件,一直到/memory命令的实操和常见报错,完整走一遍。

2. TaoToken 前置:把 Claude Code 的请求通道配好

在折腾记忆文件之前,得先保证 Claude Code 能正常发请求。Claude Code 默认走 Anthropic 官方通道,但很多国内开发者在网络和计费上会遇到麻烦。我自己的做法是通过 TaoToken 这类兼容 Anthropic 协议的服务来接入,Base URL 指向https://taotoken.net/api,这样 Claude Code 的请求能稳定落到可用的模型上,记忆文件读取和注入的逻辑完全不受影响。

这里要强调一点:记忆机制是 Claude Code 客户端本地行为,跟后端走哪个通道无关。也就是说,你换成 TaoToken 之后,CLAUDE.md 的加载顺序、自动记忆的存储路径、/memory的交互方式,全都一模一样。所以配置通道只是前置动作,不影响本篇的核心内容。

具体怎么配?Claude Code 读取的是环境变量或配置文件里的 Base URL 和 API Key。你需要先在 TaoToken 控制台创建一个 API Key,然后把它写进 Claude Code 的配置。如果你用的是 Claude Code 的 settings 文件,可以这样写:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的TaoToken密钥" } }

如果你更习惯用 shell 环境变量,也可以直接 export:

export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="sk-你的TaoToken密钥"

配好之后,Claude Code 启动时会用这个 Base URL 发请求。模型 ID 方面,Claude Code 默认会请求 Anthropic 的模型名,TaoToken 侧做了协议兼容,你不需要额外改模型名。如果你在 Cline、Codex 这类工具里也接同一套通道,记得三件套要写全:Base URL、API Key、Model ID,缺一个都会报 401 或 model not found。

创建 Key 的入口在 TaoToken 控制台的 API Keys 页面,接入文档里有各客户端的详细截图。配完先别急着写记忆文件,下一步我们先验证通道是通的,再进入 CLAUDE.md 的配置。

3. 可复制配置:CLAUDE.md 层级与 .claude/rules/ 拆分

通道通了之后,重头戏是 CLAUDE.md。它的加载逻辑是:从当前目录往上遍历,把所有找到的 CLAUDE.md 串联起来,而不是覆盖。上层目录的先出现,靠近项目根目录的后出现,后者优先级更高。这个顺序决定了冲突时谁说了算。

层级大致分四种。组织级指令放在系统目录,比如 macOS 下的/Library/Application Support/ClaudeCode/CLAUDE.md,适合全公司统一的安全合规规范。用户级指令放在~/.claude/CLAUDE.md,是你个人的偏好,比如“回复用中文”。项目级指令放在项目根目录的./CLAUDE.md或./.claude/CLAUDE.md,这是团队规范,要提交到 Git。本地指令放在./CLAUDE.local.md,是你在这个项目里的个人偏好或试错内容,记得加进.gitignore。

一个容易踩的坑:子目录里的 CLAUDE.md 不是启动就加载,而是 Claude 读取该子目录文件时才按需加载。这能省 Token,但也意味着你放在子目录里的规则,在没读到那个文件之前是不生效的。

对于大型项目,把所有规则塞进一个 CLAUDE.md 会臃肿。官方推荐用.claude/rules/目录拆分。结构大概是这样:

your-project/ ├── .claude/ │ ├── CLAUDE.md # 主项目指令 │ └── rules/ │ ├── code-style.md # 代码样式 │ ├── testing.md # 测试约定 │ └── security.md # 安全要求

杀手锏是路径限定。规则文件可以加 YAML frontmatter,限定只在处理某些文件时才触发,极大减少无关 Token 消耗:

--- paths: - "src/api/**/*.ts" --- # API 开发规则 - 所有 API 端点必须包含输入验证 - 使用标准错误响应格式

这样只有当你让 Claude 处理src/api/下的 TypeScript 文件时,这段规则才会被注入。写 CLAUDE.md 的最佳实践是:每个文件目标不超过 200 行,用 Markdown 标题加列表方便扫描,指令要具体可验证——写“使用 2 空格缩进”,而不是“正确格式化代码”。还可以用@path/to/import语法导入 README 等外部文件,最多 4 跳递归,首次使用会弹窗确认安全。

4. 验证请求:/memory 命令实操与自动记忆触发

配置写完,怎么确认真的生效了?最直接的工具是/memory命令。在会话里输入/memory,它会列出当前会话加载的所有 CLAUDE.md 和规则文件。如果你发现某个文件没出现在列表里,那说明它没被加载,Claude 自然也不会遵守。

/memory还有两个功能:编辑和一键开关自动记忆。你可以直接在界面里打开任何记忆文件修改,也可以关掉自动记忆。自动记忆默认开启,存储在本地的~/.claude/projects/<project>/memory/目录下。其中MEMORY.md的前 200 行或 25KB 会在每次会话开始时自动加载,超出的部分会按主题拆分,比如debugging.md,在需要时按需读取。

自动记忆的触发条件是什么?当你纠正它时,它觉得有用的经验会自动保存下来。比如你跟它说“记住要用 pnpm”,它会存到自动记忆。如果你希望写进团队规范,要明确说“把它加到 CLAUDE.md”,或者自己通过/memory编辑。自动记忆是机器本地的,不会同步到云端,也不会提交到 Git。

验证自动记忆是否触发,可以这样做:先跟 Claude 说一条纠正,比如“这个项目用 pnpm,不要用 npm”,然后退出会话,再重新进入,输入/memory看自动记忆里有没有新增内容。如果不想让它自作主张记东西,可以在/memory界面关闭开关,或在设置里配置"autoMemoryEnabled": false。

这里给一个可复制的项目级 CLAUDE.md 模板,你可以直接拿去改:

# 项目规范 ## 构建与测试 - 包管理器使用 pnpm,禁止使用 npm - 运行测试:pnpm test - 构建命令:pnpm build ## 代码风格 - 使用 2 空格缩进 - 组件文件使用 PascalCase 命名 - 工具函数放在 src/utils/ 下 ## 绝对不要做的事 - 不要修改 .env 文件 - 不要提交 node_modules - 不要在生产代码里 console.log

5. 本篇常见错排查:CLAUDE.md 不生效与自动记忆异常

第一个高频问题:为什么 Claude 不遵守我的 CLAUDE.md?先用/memory确认文件是否真的被加载了。如果没加载,检查路径对不对,项目根目录的 CLAUDE.md 是不是在正确位置。如果加载了但不遵守,检查指令是否太模糊,改成具体可验证的描述。还要检查不同层级或文件之间是否有冲突规则,AI 遇到冲突会随机选一条。如果是“必须在某时机执行”的命令,比如提交前检查,应该用 Hook 而不是 CLAUDE.md。

第二个问题:CLAUDE.md 太大了怎么办?把只跟特定文件类型相关的规则挪到.claude/rules/,加paths限定。修剪不是每个会话都需要的内容。记住每个文件目标不超过 200 行,太长会多吃 Token,且 AI 遵守度会下降。

第三个问题:使用/compact压缩上下文后,指令好像丢了?项目根目录的 CLAUDE.md 在压缩后会自动从磁盘重新读取,但子目录中的 CLAUDE.md 需要等 AI 再次读取该子目录文件时才会重新加载。对策是把最核心的指令放在项目根目录的 CLAUDE.md 中。

第四个问题:报错401 Unauthorized或local proxy failed。这通常跟记忆机制无关,是通道配置问题。检查ANTHROPIC_BASE_URL是不是https://taotoken.net/api,API Key 有没有写错或过期。如果你在 Cline 或 Codex 里也遇到reading choices这类报错,多半是 Model ID 没写全。三件套 Base URL、API Key、Model ID 缺一不可。OAuth 相关报错则说明你还在走官方登录流程,需要切到 API Key 模式。

第五个问题:自动记忆存了什么?直接去~/.claude/projects/<project>/memory/目录看,MEMORY.md是主文件,主题文件按需拆分。如果发现存了不该存的内容,通过/memory编辑或删除。

6. 把记忆体系用起来:从单次会话到可复用项目资产

配好之后,你的项目就有了可复用的记忆体系。新会话一启动,根目录 CLAUDE.md 自动加载,团队规范、构建命令、代码风格全都带上。处理特定目录时,.claude/rules/里带paths限定的规则按需触发,不浪费 Token。自动记忆则在你每次纠正时悄悄攒经验,下次遇到类似场景它能参考。

如果你还在用官方通道且遇到网络或计费问题,可以到 TaoToken 控制台创建一个 API Key,Base URL 用https://taotoken.net/api,接入文档里有 Claude Code、Cline、Codex 各客户端的配置截图。想先验证模型对话效果,可以直接在模型对话页面试几条请求。长期做编码和 Agent 任务的话,Coding Plan 更适合持续使用。

最后留一个我自己的习惯:每次 Code Review 发现 Claude 不懂某个项目约定,或者它第二次犯同样的错误,我就往 CLAUDE.md 里加一条。日积月累,这个文件就成了团队最值钱的上下文资产。别指望一次写完美,边用边补才是正解。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询