Skip to content

9.3 自动记忆提取:观察、写入与审计

像称职的秘书:记住你爱喝半糖,但若记错了,你要能翻开笔记本划掉那一行。


本节学习目标

  1. 定义 自动记忆:Claude 在会话中观察稳定重复的用户偏好与项目事实,并写入 ~/.claude/projects/memory/(路径以版本为准)。
  2. 列举 适合自动沉淀的信息与不适合的信息(密钥、一次性试错)。
  3. 设计 个人审计节奏:定期查看、删除、纠正错误记忆。
  4. 解释 自动记忆与 CLAUDE.md 的互补:前者偏「个性化」,后者偏「团队契约」。
  5. 预判 错误记忆注入的后果:模型行为偏移、上下文噪声。

生活类比:Spotify 的「猜你喜欢」

流媒体会记录你切歌行为来调整推荐:

  • 好处:少搜几次。
  • 风险:某次借账号给朋友听了一晚重金属,推荐就歪了——你需要「重置口味」或删历史。

自动记忆同理:高效但有偏,需要人类把关


自动记忆可能记录什么(示例域)

类型示例
语言偏好「回复用简体中文」
工具偏好「优先 pnpm 不用 npm」
项目习惯「此仓库 E2E 用 playwright」
重复踩坑「勿改某 legacy 目录」

Mermaid:从观察到落盘


源码片段:memory 文件形态(伪 JSON)

json
{
  "id": "mem_7f3a",
  "title": "包管理器偏好",
  "description": "用户要求使用 pnpm;避免 npm 命令示例",
  "scope": "project:acme/web",
  "created_at": "2026-04-01T12:00:00Z",
  "confidence": 0.82
}

实际格式以实现为准;关键是可检索的标题/描述


表:适合 vs 不适合自动记忆

适合不适合
重复 ≥3 次的偏好临时 A/B 尝试
可公开的项目习惯密码、token
与仓库文档一致的事实未验证的猜测
个人效率设置法务敏感结论

审计 SOP(建议每月)

  1. 打开 ~/.claude/projects/memory/(或设置页等价 UI)。
  2. 删除低置信度已过时条目。
  3. 把应团队共享的条目升格CLAUDE.md PR。
  4. 对错误条目写一句「纠正指令」给模型,观察是否更新。

Mermaid:错误记忆的放大回路


与双模型检索的衔接

自动记忆先广泛沉淀;检索阶段由 Sonnet 快速扫标题/描述,最多 5 条注入(见下一节)。提取与检索是流水线前后级


源码片段:安全过滤(伪代码)

typescript
function safeToAutowrite(observation: Observation): boolean {
  if (observation.containsSecretPattern) return false;
  if (observation.confidence < 0.7) return false;
  if (observation.isOneOff) return false;
  return true;
}

练习

  1. 写出你希望永远不要自动记录的两类信息。
  2. 设计一条「团队政策」:自动记忆默认关闭还是开启。

FAQ

Q:自动记忆会同步到云端吗?
A:以实现与账号设置为准;敏感项目建议查隐私说明。

Q:能否按项目隔离?
A:教学路径 projects/memory/ 暗示按项目隔离;确认本地目录结构。


小结

自动记忆提取让 Claude 从「复读你的偏好」进化到「记住你的偏好」,但必须配套审计与升格策略:可靠的进 CLAUDE.md,个人的留记忆文件,机密永不落盘


附录:观察信号表

信号强度说明
说过一次
同一项目多次
纠正模型后仍坚持

中强适合自动写入(示意规则)。


与合规

若你在受监管行业:

  • 记录数据保留策略
  • 记忆目录纳入退出权流程(删除用户数据时一并清)。

Mermaid:CLAUDE.md 升格路径


反模式

反模式修复
从不审计设日历提醒
把机密写进记忆换用 vault
团队靠记忆传规范应用 CLAUDE.md

术语

英文中文
extraction提取
observation观察

扩展:写入节流(概念)

避免同一偏好 10 分钟内重复落盘

typescript
const lastWrite = new Map<string, number>();

function throttleWrite(key: string, minIntervalMs: number): boolean {
  const now = Date.now();
  const prev = lastWrite.get(key) ?? 0;
  if (now - prev < minIntervalMs) return false;
  lastWrite.set(key, now);
  return true;
}

Mermaid:多项目隔离

防止 跨仓污染 是自动提取与检索的共同前提。


表:提取置信度与人工确认

置信度默认行为企业可选
< 0.5不写同上
0.5~0.8写「待确认」标记需人审
> 0.8直接写入审计抽样

练习补充

  1. 为「自动提取默认关闭」写一条用户可见的产品说明(不超过 100 字)。

本项目仅用于教育学习目的。Claude Code 源码版权归 Anthropic, PBC 所有。