第八章:记忆系统与 Skills
记忆系统工作原理
Claude Code 的记忆系统是其智能化的核心基础设施之一。它允许 Claude Code 在会话之间持久化存储和检索信息,避免每次启动都需要重新了解你和你的项目。你可以把记忆系统想象成 Claude Code 的 "长期大脑"——它不会因为对话结束而忘记重要信息。
记忆系统的架构分为三个层次:
- 短期记忆:当前对话的上下文窗口,对话结束后消失
- 长期记忆:持久化存储在记忆文件中,跨会话保留
- 项目记忆:存放在项目目录下的记忆文件,团队成员共享
当 Claude Code 启动时,它会自动加载所有相关的记忆文件,将其中存储的信息注入到当前会话的上下文中。这个过程是透明的,你不需要手动指定要加载哪些记忆。
三种记忆类型
用户记忆(User Memory)
用户记忆存储的是与你个人相关的偏好和信息。例如你喜欢的代码风格、常用的工具链、个人工作习惯等。这些记忆保存在全局目录中,对所有项目生效。
用户记忆适合存储:
- 个人编码风格偏好(如使用分号、缩进大小)
- 常用命令别名和工作流
- 个人 API Key 和凭证位置(不存储密钥本身)
项目记忆(Project Memory)
项目记忆是与特定项目绑定的,存储在项目目录下的 .claude/memory.json 文件中。所有参与该项目的团队成员共享这份记忆。
项目记忆适合存储:
- 项目架构决策和设计文档
- 团队约定的代码规范
- 项目特有的构建和部署流程
- 关键模块的说明文档
参考记忆(Reference Memory)
参考记忆用于存储 Claude Code 可以查阅但不主动注入上下文的参考资料。你可以把它理解为一个可搜索的知识库,Claude Code 在需要时会主动查询。
参考记忆适合存储:
- 框架和库的官方文档摘要
- 技术方案调研记录
- 常见问题的解决方案
记忆的读写规则与最佳实践
Claude Code 的记忆系统遵循以下读写规则:
写入规则:
- Claude Code 根据对话内容自动判断何时需要写入记忆
- 你也可以使用
/memory命令手动管理记忆 - 记忆按主题组织,每个主题下的内容有长度限制
读取规则:
- 启动时自动加载所有用户记忆和项目记忆
- 参考记忆按需查询,不会主动加载
- 记忆加载顺序影响优先级:用户记忆 > 项目记忆 > 参考记忆
最佳实践:
- 定期审查记忆内容:过时的记忆会产生误导,建议每月审查一次
- 按主题组织:将记忆按清晰的主题划分,避免混杂
- 避免存储敏感信息:记忆文件是明文存储,不要存放密码和密钥
- 为团队项目建立项目记忆:在项目开始时就让 Claude Code 了解项目规范
查看和管理记忆的常用命令:
/memory list # 列出所有记忆条目
/memory show <id> # 查看特定记忆详情
/memory delete <id> # 删除记忆
/memory search <关键词> # 搜索记忆内容
Skills 概念与系统内置 Skills
Skills 是 Claude Code 中可复用的行为模块,类似于 VS Code 的扩展或浏览器的插件。每个 Skill 封装了一组特定的能力和知识,让 Claude Code 能在特定任务上表现更出色。
系统内置了以下 Skills:
| Skill 名称 | 功能 | 适用场景 |
|---|---|---|
| init | 初始化 CLAUDE.md | 新项目启动时的项目配置 |
| review | PR 代码审查 | 代码审查工作流 |
| loop | 循环执行任务 | 定时检查、轮询等重复任务 |
| simplify | 代码质量优化 | 重构和性能优化 |
| security-review | 安全审查 | 安全敏感代码审查 |
| update-config | 配置管理 | settings.json 维护 |
| claude-api | API 开发辅助 | Anthropic SDK 开发 |
| keybindings-help | 按键绑定管理 | 快捷键自定义 |
| fewer-permission-prompts | 权限优化 | 减少权限提示 |
每个 Skill 都可以通过 /skill <skill-name> 的方式触发,也可以在对话中被 Claude Code 自动识别和调用。
skill-creator 工具使用
除了使用内置的 Skills,你还可以使用 skill-creator 工具创建自定义 Skill。自定义 Skill 让你能够将重复性的工作流固化为可复用的模块。
创建一个 Skill 的基本步骤:
- 定义 Skill 元数据:名称、描述、触发条件
- 编写 Skill 指令:定义 Skill 的行为逻辑
- 测试 Skill:在当前项目中验证功能
- 打包 Skill:将 Skill 导出为可分发的格式
- 分享 Skill:通过 npm 或直接分享给团队
以下是一个 Skill 配置文件的结构示例:
name: code-reviewer
description: 对指定文件进行全面的代码审查
version: 1.0.0
triggers:
- pattern: "审查文件"
command: |
分析用户指定的文件,从以下维度进行审查:
1. 代码质量:是否有代码异味、重复代码
2. 类型安全:TypeScript 类型是否完整
3. 性能:是否存在性能问题
4. 可维护性:代码是否易于理解和修改
按优先级列出发现的问题,并给出修复建议。
实战:为项目创建一个代码审查 Skill
让我们为团队创建一个定制化的代码审查 Skill,自动遵循团队的审查标准:
name: team-review
description: 按团队规范进行代码审查
version: 1.0.0
triggers:
- pattern: "团队审查"
command: |
请按以下规范审查指定文件:
## 审查维度
1. 命名规范:变量使用 camelCase,组件使用 PascalCase
2. 错误处理:所有异步操作必须有 try-catch
3. 安全性:不允许直接拼接 SQL,必须使用参数化查询
4. 测试覆盖:新增逻辑必须有对应的单元测试
## 输出格式
- 🚫 阻塞性问题(必须修复)
- ⚠️ 建议性问题(推荐修复)
- ✅ 通过项(值得保持的好做法)
最终给出总体评分(A/B/C/D)和总结建议。
注册到 settings.json:
{
"skills": {
"team-review": {
"path": "./skills/team-review.yaml"
}
}
}
使用方式:
/skill team-review "审查 src/services/api.ts 和 src/utils/validator.ts"
通过记忆系统和 Skills 的组合使用,你可以让 Claude Code 越来越 "懂你" 和 "懂你的项目",每次交互的效率都会不断提升。记忆系统提供了持续的上下文感知能力,而 Skills 则封装了可复用的工作流程,两者结合构成了 Claude Code 智能化的双引擎。