
1. 为什么你的 Claude Code 每次开新会话都像失忆用 Claude Code 写项目最让人抓狂的不是它写不出代码而是它记不住你的项目。昨天刚跟它讲清楚「领域层不能依赖应用层」「所有表必须带逻辑删除字段」今天新开一个终端它又开始在 Controller 里写业务判断又开始手写硬编码 SQL。你不得不把同一套项目背景、技术栈、编码规范反复粘贴粘贴到怀疑人生。这个问题的根源在于Claude Code 默认只有短期会话记忆当前对话窗口一关上下文就销毁了。它本质上是一个高度可扩展的智能体框架采用模块化分层架构加事件驱动主循环而不是一个能自动记住你项目的聊天工具。要让上下文跨会话延续必须显式搭建一套记忆系统。Claude Code 的记忆系统分三层长期静态记忆人工编写的 CLAUDE.md、中期自动记忆Auto MemoryAI 自己沉淀经验、短期会话记忆当前对话。其中 CLAUDE.md 是项目的长期大脑每次会话启动都会优先加载Auto Memory 则让 Claude 在开发过程中自动把架构决策、踩坑日志、接口约定写进记忆文件下次会话自动生效。这篇就聚焦落地配置从 CLAUDE.md 的骨架结构到 Auto Memory 的开关与目录机制给出可复制的 settings.json 片段和验证步骤让你在真实项目里把记忆系统跑起来。适合已经在用 Claude Code、但被跨会话失忆折磨过的开发者。2. 前置准备TaoToken 接入与 Claude Code 环境在配置记忆系统之前得先让 Claude Code 能正常跑起来。我这边是通过 TaoToken 接入的它提供统一的 API 入口配置简单模型对话、Coding Plan、API Keys 都在一个控制台里管理。先拿到 API Key。打开控制台进入 API Keys 页面创建一个新 Key# 控制台地址创建 Key https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite创建后复制 Key然后配置 Claude Code 的环境变量。Claude Code 读取的是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量# 写入 shell 配置以 zsh 为例 echo export ANTHROPIC_BASE_URLhttps://taotoken.net/api ~/.zshrc echo export ANTHROPIC_API_KEYsk-你的Key ~/.zshrc source ~/.zshrc # 验证变量生效 echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_API_KEY | head -c 8注意 API 地址是https://taotoken.net/api不要带任何多余路径。如果你用的是长期编码或 Agent 场景建议直接上 Coding Plan额度更划算适合每天跑大量代码生成# Coding Plan 入口 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite环境配好后进入你的项目根目录运行claude能正常对话就说明接入成功了。接下来才是记忆系统的正题。3. CLAUDE.md 骨架把项目规则写进长期记忆CLAUDE.md 是记忆系统的核心。它的加载优先级是这样的全局用户记忆~/.claude/CLAUDE.md→ 项目团队记忆项目根目录CLAUDE.md→ 本地私有记忆CLAUDE.local.md→ 自动学习记忆~/.claude/projects/{仓库hash}/memory/。高层覆盖低层的冲突项。其中项目根目录的 CLAUDE.md 是团队共享的核心文件会全文完整加载没有行数上限但官方建议精简到 500 行以内。行数越少模型遵守度越高。3.1 六段式骨架模板一个能落地的 CLAUDE.md固定分六块。我把它整理成可直接复制的骨架# 项目项目名称 ## 1. 项目业务概述 ### 业务范围严格遵守边界禁止扩展 - 核心业务模块 1 - 核心业务模块 2 ### 业务约束 - 数据隔离规则 / 权限边界 ## 2. 技术架构 ### 后端 - 分层如 DDD 四层禁止跨层调用 - 技术栈Java17 / SpringBoot3 / MyBatis-Plus ... ### 前端 - 框架React19 / TypeScript / Vite ... - 状态管理Zustand / Redux ... ### 技术栈清单 - 完整依赖列表 ## 3. 全局目录结构禁止随意新增目录 目录树标注每层职责 ## 4. 编码强制规范 ### 后端规范 1. 分层约束 2. 异常处理约定 ### 前端规范 1. 类型约束 2. 组件规范 ## 5. 本项目专属业务规则最重要 ### 权限规则 ### 核心业务规则 ### 流程约束 ## 6. 开发命令清单只允许执行以下命令 ### 后端 ### 前端 ## 7. 禁止操作清单 1. 禁止修改的文件 2. 禁止跨层依赖这个骨架的关键在于第 5 块业务规则和第 7 块禁止清单。前者是模型最容易忽略、但业务上最不能错的部分后者是防止模型「自作聪明」乱改代码的护栏。3.2 写 CLAUDE.md 的三个原则第一只写不变的规则。架构分层、业务边界、编码规范写这里临时调试方案、本地环境配置不要写那些放CLAUDE.local.md。第二业务规则单独切块。像评分逻辑、审批流转这类核心业务单独开章节模型优先级最高。我试过把评分规则混在编码规范里模型经常漏读单独成章后遵守度明显提升。第三严格控制行数。300 到 500 行是甜点区。规则越少越精炼模型遵守度越高。不要把几万字的 PRD 塞进去那是反效果。3.3 本地私有记忆CLAUDE.local.md有些配置只跟你本机有关比如本地数据库端口、调试用的 mock 开关这些不该提交到代码库。Claude Code 支持CLAUDE.local.md放在项目根目录记得加进.gitignore# 项目根目录创建本地记忆 touch CLAUDE.local.md echo CLAUDE.local.md .gitignore# 本地开发配置不提交 - 本地 MySQL 端口3307 - 前端 dev 端口3100 - 调试开关VITE_MOCKtrue这样团队共享的 CLAUDE.md 保持干净个人环境差异走 local 文件互不干扰。4. Auto Memory 开关与 settings.json 配置CLAUDE.md 是人工写的静态记忆Auto Memory 则是 Claude 自己沉淀的动态经验。开发过程中它会自动把架构决策、调试经验、API 约定写进记忆文件同一个 Git 仓库的所有目录共享一套自动记忆。4.1 Auto Memory 的存储机制自动记忆存放在~/.claude/projects/{仓库hash}/memory/目录下主要文件有文件作用加载时机MEMORY.md主记忆架构决策、踩坑日志会话启动加载前 200 行debugging.mdBug 修复方案、调试记录按需读取api-conventions.md接口格式、分页参数约定按需读取关键限制MEMORY.md 只有前 200 行在会话初始化时载入超长内容会拆分到子文件避免挤占 Token。所以自动记忆也不是越多越好得控制主文件长度。4.2 settings.json 配置片段Auto Memory 的开关和记忆目录配置在 Claude Code 的 settings.json 里。项目级配置放在.claude/settings.json用户级放在~/.claude/settings.json。下面是我在项目里用的配置片段{ memory: { autoMemory: true, memoryDir: ~/.claude/projects/${PROJECT_HASH}/memory, maxMemoryLines: 200, autoFlush: true }, context: { loadProjectMemory: true, loadLocalMemory: true, memoryPriority: [local, project, global] } }参数说明autoMemory总开关设为true才会自动沉淀经验。memoryDir记忆目录${PROJECT_HASH}是 Claude Code 根据 Git 仓库自动生成的哈希不用手动填。maxMemoryLines主记忆文件加载行数上限默认 200不建议调太大。autoFlush会话结束时自动把本次经验刷入记忆文件。memoryPriority记忆加载优先级local 覆盖 projectproject 覆盖 global。如果你想让某些经验强制写入自动记忆可以在 CLAUDE.md 里加一段提示## 调试经验沉淀自动记忆补充项 以下内容会自动同步到 Auto Memory下次会话自动生效 1. 踩坑记录 1 2. 踩坑记录 2Claude 读到这段标记后会在会话结束时把这些内容写入 MEMORY.md。4.3 验证 Auto Memory 是否生效配置完别急着写业务先验证记忆系统真的在工作。分两步第一步检查记忆目录是否生成# 查看项目对应的记忆目录 ls -la ~/.claude/projects/ # 进入你的项目 hash 目录确认 memory 文件夹存在 ls -la ~/.claude/projects/你的仓库hash/memory/第二步在会话里触发一次经验沉淀。随便让 Claude 修一个 bug然后问它你刚才修复的这个 bug会记录到自动记忆里吗记录在哪个文件如果配置正确它会告诉你写入了debugging.md或MEMORY.md。然后退出会话重新开一个终端问它上次我们修复的那个 bug你还记得原因吗能答上来说明跨会话记忆生效了。5. 验证请求让记忆系统跑通一次完整闭环光看配置不够得跑一次完整闭环。下面是我在真实项目里的验证流程你可以照着做。5.1 写入一条业务规则并验证加载在 CLAUDE.md 的「业务规则」章节加一条### 考核评分业务规则 1. 考核总分 定量指标得分 * 权重 定性评价得分 2. 已提交评审的考核记录不允许修改只能走驳回流程保存后新开一个 Claude Code 会话直接问我们这个项目的考核总分是怎么算的已提交的考核记录能直接改吗如果它准确答出「定量乘权重加定性」和「不能直接改只能驳回」说明 CLAUDE.md 被正确加载了。5.2 触发 Auto Memory 沉淀让 Claude 做一次真实的调试任务比如修一个接口报错。修完后在会话里显式要求把这次修复的原因和方案记录到自动记忆的 debugging.md 里。然后检查文件cat ~/.claude/projects/你的仓库hash/memory/debugging.md应该能看到刚才的修复记录。再退出重进问它这个 bug 的修复方案能复述出来就说明 Auto Memory 闭环通了。5.3 用模型对话快速验证记忆内容如果你不想每次都开终端验证可以用模型对话页面直接测。把 CLAUDE.md 的内容贴进去问它某个业务规则看它能不能准确理解# 模型对话入口 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite这个方式适合快速验证 CLAUDE.md 的表述有没有歧义。如果模型对话里都理解错了那 Claude Code 里大概率也会错回去改 CLAUDE.md 的措辞。6. 本篇常见错误排查配置记忆系统时踩过的坑基本集中在这几个地方。CLAUDE.md 不生效。先确认文件位置对不对项目根目录的CLAUDE.md才会被加载放在子目录里不认。再确认文件名大小写必须是全大写CLAUDE.mdclaude.md在部分系统上不识别。Auto Memory 目录不生成。检查 settings.json 里autoMemory是否为true以及memoryDir路径里的${PROJECT_HASH}有没有被错误地写成了字面量。这个变量是 Claude Code 运行时替换的你手动填反而会出错。记忆内容互相冲突。比如 CLAUDE.md 说「禁止手写 SQL」Auto Memory 里却记了一条「某处手写 SQL 更快」。这时候靠memoryPriority决定谁覆盖谁。我的建议是静态规则永远优先把memoryPriority设成[local, project, global]让人工写的规则压过 AI 自学的经验。MEMORY.md 太长导致加载变慢。前面说过只加载前 200 行超出的部分按需读取。如果你发现会话启动变慢检查一下 MEMORY.md 是不是堆了几千行。定期清理把过时的经验删掉或者拆到子文件里。改了 CLAUDE.md 但当前会话没反应。CLAUDE.md 是会话启动时加载的改了之后要新开会话才生效。当前会话里想让它立刻遵守得手动把改动贴给它。API 请求报 401。多半是ANTHROPIC_API_KEY没配好或者 Key 失效了。去控制台重新生成一个# API Keys 管理 https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入文档找不到对应配置项。Claude Code 的配置项版本间有差异遇到不认识的字段查接入文档最准# 接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite7. 把记忆系统用成习惯记忆系统配好只是第一步真正让它产生价值的是日常使用习惯。我的做法是每次 Claude 帮我解决一个非平凡的 bug我都会顺手让它把方案写进 Auto Memory每次项目架构有调整我第一时间更新 CLAUDE.md 的对应章节。这样积累下来新会话的启动成本越来越低Claude 对项目的理解越来越准。如果你还在用零散的对话上下文硬撑建议从今天开始先给项目建一个 CLAUDE.md把最核心的三条业务规则写进去跑一次验证闭环。等你体验到新会话里 Claude 张口就能说出项目规则的感觉就回不去了。需要长期跑编码和 Agent 任务的直接上 Coding Plan配合记忆系统用效率提升最明显# Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewriteClaude Code 相关的接入配置和 API 用法文档里都有# 接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite