title: 记忆系统与 Agent 定制完全指南三记忆的检索与使用——Claude 如何在对话中调用记忆date: 2026-07-10category: AI 开发工具tags: [Claude Code, Memory, 检索, 使用, 上下文]记忆系统与 Agent 定制完全指南三记忆的检索与使用记忆写好了Claude 就能自动用上吗不一定。记忆的检索机制决定了 Claude 能不能在需要的时候想起来。本篇揭秘记忆系统的检索原理教你让 Claude 准确调用你写的每一条记忆。前言想象一个场景你写了 10 条记忆涵盖编码偏好、数据库信息、团队规范。 但某天 Claude 生成的代码还是用了双引号——明明你记过了用单引号。 为什么因为 Claude 忘记了。这不是 Claude 不听话而是记忆的检索出了问题。记忆系统不是存了就自动生效——它有一个检索机制决定哪些记忆在什么时候被加载。一、记忆的检索机制1.1 加载时机记忆系统在以下时机被加载对话开始时 ↓ 读取 MEMORY.md 索引 ↓ 根据索引描述匹配相关记忆 ↓ 加载匹配的记忆文件到上下文 ↓ 对话过程中引用记忆内容1.2 匹配方式Claude 通过MEMORY.md中的描述文字来判断哪些记忆与当前对话相关MEMORY.md 索引条目 - [编码风格偏好](coding-style.md) — const、箭头函数、单引号 对话内容 帮我写一个用户列表组件 匹配判断 用户列表组件 → 涉及代码编写 → 匹配编码风格偏好 ✅1.3 匹配的关键描述的关键词决定了命中率❌ 差的描述 - [偏好](coding-style.md) — 偏好 ✅ 好的描述 - [编码风格偏好](coding-style.md) — const、箭头函数、单引号、分号、2空格缩进差的描述几乎没有关键词Claude 很难匹配到。好的描述包含多种可能的触发词命中率高。二、记忆的使用场景2.1 代码生成时引用你说帮我写一个登录页面 Claude 读取编码风格记忆后 → 使用 const 声明变量 → 使用箭头函数 → 使用单引号 → 加分号 → 2 空格缩进2.2 配置生成时引用你说帮我配置 ESLint Claude 读取编码风格记忆后 → 配置中使用 singleQuote: true → 配置中使用 arrowParens: always → 配置中使用 semi: true2.3 问题排查时引用你说API 请求报 404 Claude 读取 API 格式记忆后 → 检查请求路径是否以 /api 开头 → 检查 baseURL 配置 → 发现前端请求 /users 而非 /api/users → 定位问题2.4 决策建议时引用你说该用 GET 还是 POST 查询用户 Claude 读取 API 方法记忆后 → 根据团队规范复杂查询用 POST → 简单分页查询可以用 GET → 给出明确建议三、记忆的主动调用3.1 直接询问记忆你有哪些记忆Claude 列出所有记忆 我的记忆 ━━━━━━━━━━━━━━━━━━━━━ 1. 编码风格偏好 内容const、箭头函数、单引号、分号、2空格缩进 2. 项目技术栈 内容Vue 3 TypeScript Vite Element Plus 3. 数据库信息 内容MySQL 8.0, 192.168.31.196:13306 4. API 响应格式 内容统一返回 { code, message, data } ━━━━━━━━━━━━━━━━━━━━━ 共 4 条记忆3.2 查询特定记忆你记得我们的数据库地址吗Claude 检索并回答记得数据库信息 - 类型MySQL 8.0 - 地址192.168.31.196:13306 - 数据库名zkhz-asset - 用户名zkhz_admin3.3 更新记忆数据库地址改成 192.168.31.200 了Claude 更新记忆文件并确认已更新数据库地址 旧192.168.31.196:13306 新192.168.31.200:13306 更新后的记忆 - [数据库信息](database-info.md) — MySQL 8.0, 192.168.31.200:13306四、记忆失效的原因4.1 描述太泛- [信息](some-info.md) — 信息没有任何关键词Claude 无法匹配。修复- [数据库连接信息](database-info.md) — MySQL 地址、端口、数据库名、用户名4.2 记忆过多MEMORY.md 中有 50 条记忆索引太长Claude 可能只读取前几条后面的被忽略。修复合并同类记忆保持索引在 10-20 条以内。4.3 记忆过期- [数据库信息](database-info.md) — MySQL, 192.168.31.196:13306实际地址已改但记忆没更新。修复定期 Review 记忆更新过时的信息。4.4 类型不匹配# 记忆文件类型写错了 metadata: type: user # 实际上是项目信息不是用户偏好虽然不影响功能但会影响 Claude 的分类和检索优先级。修复确保 type 字段准确。五、记忆的组织策略5.1 按类别分组# MEMORY.md ## 编码偏好 - [编码风格](coding-style.md) — const、箭头函数、单引号 - [TypeScript 规范](ts-rules.md) — 严格模式、类型定义 ## 项目信息 - [技术栈](tech-stack.md) — Vue 3 Spring Boot - [数据库](database-info.md) — MySQL 连接信息 - [部署](deployment.md) — Docker Nginx ## 团队规范 - [Git 规范](git-rules.md) — 约定式提交 - [API 规范](api-rules.md) — 响应格式、路径规范 ## 反馈记录 - [API 路径纠正](feedback-api-path.md) — 必须以 /api 开头5.2 按优先级排序# MEMORY.md ## 高频使用每次对话都可能用到 - [编码风格](coding-style.md) - [项目技术栈](tech-stack.md) ## 中频使用开发特定模块时用到 - [数据库信息](database-info.md) - [API 规范](api-rules.md) ## 低频使用偶尔需要查询 - [部署指南](deployment.md) - [团队规范](git-rules.md)5.3 合并与拆分合并❌ 5 条零散记忆 - [引号偏好](quote-style.md) — 单引号 - [分号偏好](semicolon-style.md) — 加分号 - [const偏好](const-style.md) — 用 const - [箭头函数偏好](arrow-style.md) — 用箭头函数 - [缩进偏好](indent-style.md) — 2 空格 ✅ 合并为 1 条综合记忆 - [编码风格](coding-style.md) — const、箭头函数、单引号、分号、2空格拆分❌ 1 条过大的记忆 - [项目信息](project-info.md) — 技术栈、数据库、部署、团队规范、API 格式... ✅ 拆分为多条 - [技术栈](tech-stack.md) - [数据库](database-info.md) - [部署](deployment.md) - [API 规范](api-rules.md)六、实战优化记忆检索6.1 问题Claude 总是用双引号你明明记了用单引号为什么总是生成双引号排查步骤# 1. 检查记忆文件是否存在ls~/.claude/projects/project-id/memory/coding-style.md# 2. 检查 description 是否有足够关键词cat~/.claude/projects/project-id/memory/MEMORY.md# 3. 检查记忆正文是否清晰cat~/.claude/projects/project-id/memory/coding-style.md修复方案# 修改前 - [偏好](coding-style.md) — 偏好 # 修改后 - [编码风格偏好](coding-style.md) — 单引号、const、箭头函数、分号、2空格缩进6.2 问题Claude 不知道数据库地址你说帮我连数据库Claude 问你地址是什么排查# 检查是否有数据库记忆grep-i数据库\|mysql\|databaseMEMORY.md修复# 添加明确的数据库记忆 - [数据库连接信息](database-info.md) — MySQL 8.0, 192.168.31.196:13306, zkhz-asset6.3 问题记忆太多检索不准MEMORY.md 有 60 条记忆Claude 经常忽略某些记忆修复# 1. 合并同类记忆# 2. 删除过时的记忆# 3. 保持索引在 15 条以内# 查看当前记忆数量wc-lMEMORY.md七、记忆系统的最佳实践7.1 黄金法则法则说明描述即索引description 写得好检索才准确结构即清晰列表 段落标题 无标题少即是多10 条高质量记忆 50 条低质量记忆定期清理每月 Review 一次删除过时的不存敏感信息密码、Token、密钥永远不要写7.2 推荐的记忆数量项目规模推荐记忆数小型个人项目5-10 条中型3-5 人团队10-20 条大型10 人团队20-30 条超过 30 条建议考虑拆分到多个项目。7.3 记忆的优先级P0每次对话必用 - 编码风格 - 技术栈 P1开发时常用 - 数据库信息 - API 规范 - 部署方式 P2偶尔查询 - 团队规范 - 外部资源链接 - 历史决策记录八、这一章的核心心得记忆靠 description 检索——描述写得越好命中率越高主动调用很重要——用你记得 xxx 吗可以验证记忆是否生效记忆会过期——定期 Review 和清理是必须的数量不在多——10 条精准记忆胜过 50 条模糊记忆分类组织——按编码/项目/规范/反馈分类便于管理和检索合并同类项——把零散的偏好合并为综合记忆九、下一步记忆系统搞清楚了接下来进入系列的另一大块——Agent 定制。Claude Code 的 Agent 系统允许你定义专业化的角色每个角色有自己的工具权限和行为准则。下一篇我们学习自定义 Agent 的开发。系列目录初识记忆系统——什么是记忆为什么需要记忆记忆文件编写规范——怎么写一条好的记忆记忆的检索与使用——Claude 如何在对话中调用记忆← 本篇自定义 Agent 开发一——Agent 的定义与结构待写自定义 Agent 开发二——Agent 的工具与权限待写Agent 编排与调度待写Agent 与工具的深度集成待写记忆系统与 Agent 配合——构建智能开发助手待写