第八章:记忆系统与 Skills

记忆系统工作原理

Claude Code 的记忆系统是其智能化的核心基础设施之一。它允许 Claude Code 在会话之间持久化存储和检索信息,避免每次启动都需要重新了解你和你的项目。你可以把记忆系统想象成 Claude Code 的 "长期大脑"——它不会因为对话结束而忘记重要信息。

记忆系统的架构分为三个层次:

  1. 短期记忆:当前对话的上下文窗口,对话结束后消失
  2. 长期记忆:持久化存储在记忆文件中,跨会话保留
  3. 项目记忆:存放在项目目录下的记忆文件,团队成员共享

当 Claude Code 启动时,它会自动加载所有相关的记忆文件,将其中存储的信息注入到当前会话的上下文中。这个过程是透明的,你不需要手动指定要加载哪些记忆。

三种记忆类型

用户记忆(User Memory)

用户记忆存储的是与你个人相关的偏好和信息。例如你喜欢的代码风格、常用的工具链、个人工作习惯等。这些记忆保存在全局目录中,对所有项目生效。

用户记忆适合存储:

  • 个人编码风格偏好(如使用分号、缩进大小)
  • 常用命令别名和工作流
  • 个人 API Key 和凭证位置(不存储密钥本身)

项目记忆(Project Memory)

项目记忆是与特定项目绑定的,存储在项目目录下的 .claude/memory.json 文件中。所有参与该项目的团队成员共享这份记忆。

项目记忆适合存储:

  • 项目架构决策和设计文档
  • 团队约定的代码规范
  • 项目特有的构建和部署流程
  • 关键模块的说明文档

参考记忆(Reference Memory)

参考记忆用于存储 Claude Code 可以查阅但不主动注入上下文的参考资料。你可以把它理解为一个可搜索的知识库,Claude Code 在需要时会主动查询。

参考记忆适合存储:

  • 框架和库的官方文档摘要
  • 技术方案调研记录
  • 常见问题的解决方案

记忆的读写规则与最佳实践

Claude Code 的记忆系统遵循以下读写规则:

写入规则

  • Claude Code 根据对话内容自动判断何时需要写入记忆
  • 你也可以使用 /memory 命令手动管理记忆
  • 记忆按主题组织,每个主题下的内容有长度限制

读取规则

  • 启动时自动加载所有用户记忆和项目记忆
  • 参考记忆按需查询,不会主动加载
  • 记忆加载顺序影响优先级:用户记忆 > 项目记忆 > 参考记忆

最佳实践

  1. 定期审查记忆内容:过时的记忆会产生误导,建议每月审查一次
  2. 按主题组织:将记忆按清晰的主题划分,避免混杂
  3. 避免存储敏感信息:记忆文件是明文存储,不要存放密码和密钥
  4. 为团队项目建立项目记忆:在项目开始时就让 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新项目启动时的项目配置
reviewPR 代码审查代码审查工作流
loop循环执行任务定时检查、轮询等重复任务
simplify代码质量优化重构和性能优化
security-review安全审查安全敏感代码审查
update-config配置管理settings.json 维护
claude-apiAPI 开发辅助Anthropic SDK 开发
keybindings-help按键绑定管理快捷键自定义
fewer-permission-prompts权限优化减少权限提示

每个 Skill 都可以通过 /skill <skill-name> 的方式触发,也可以在对话中被 Claude Code 自动识别和调用。

skill-creator 工具使用

除了使用内置的 Skills,你还可以使用 skill-creator 工具创建自定义 Skill。自定义 Skill 让你能够将重复性的工作流固化为可复用的模块。

创建一个 Skill 的基本步骤:

  1. 定义 Skill 元数据:名称、描述、触发条件
  2. 编写 Skill 指令:定义 Skill 的行为逻辑
  3. 测试 Skill:在当前项目中验证功能
  4. 打包 Skill:将 Skill 导出为可分发的格式
  5. 分享 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 智能化的双引擎。