ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

彻底搞懂 Claude Code 的“记忆”机制:从 CLAUDE.md 到 /memory 的完整配置指南

彻底搞懂 Claude Code 的“记忆”机制:从 CLAUDE.md 到 /memory 的完整配置指南 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 环境变量也可以直接 exportexport ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的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.log5. 本篇常见错排查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/apiAPI 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 KeyBase URL 用https://taotoken.net/api接入文档里有 Claude Code、Cline、Codex 各客户端的配置截图。想先验证模型对话效果可以直接在模型对话页面试几条请求。长期做编码和 Agent 任务的话Coding Plan 更适合持续使用。最后留一个我自己的习惯每次 Code Review 发现 Claude 不懂某个项目约定或者它第二次犯同样的错误我就往 CLAUDE.md 里加一条。日积月累这个文件就成了团队最值钱的上下文资产。别指望一次写完美边用边补才是正解。
返回列表