tech-sharing / memory-systems
聊聊 Claude Code 的 Memory 系统——
它不是"一个文件"那么简单。
// the-problem
角色、技能、偏好——每次重说。
😩 重复劳动架构、约定、踩过的坑——再来一遍。
😩 重复劳动Claude Code 做了个东西,叫 Memory 系统。
// fundamentals
AI 表现出的"记得",全靠你喂给它的上下文。所以 Agent 把记忆分成了两层。
对话窗口上下文 · 会话结束清空 · 容量有限
跨会话持久存在 · 不随对话消失
// memory-layers
| | 短期记忆 | 长期记忆 | |存哪 | 对话窗口上下文 | Memory 系统(跨会话文件) | |寿命 | 会话结束就清空 | 持久,不随对话消失 | |容量 | 有限,聊太长会被挤出去 | 按 topic 分文件,按需加载 | |谁管 | 你和 AI 当下的对话 | Memory 系统统一管理 |
// long-term-memory · 2-sets
你写的规则
项目结构 · 编码约定 · 禁忌
每次开新会话都加载
AI 自己记的笔记
你不用动手 · 干活过程中自己判断
什么值得长期记住
// side-by-side
# ============ 对称互补 ============ CLAUDE.md —— 你写的规则 —— 放在项目根目录 写明项目结构、编码约定、禁忌 每次开新会话都加载 能分层:根目录 + 子目录 越靠近当前文件优先级越高 Auto Memory —— AI 自己记的笔记 —— 你不用动手 AI 干活时自己判断什么值得记 记到 MEMORY.md 里 按 topic 分文件,需要时才加载 不会把上下文窗口塞爆
// auto-memory-internals
MEMORY.md 是个目录页(索引),不是记忆本身。真正的笔记放在按主题分的 topic 文件里。
📄 MEMORY.md ← 目录/索引 ├── 📝 debugging.md ← 调试经验 ├── 📝 api-conventions.md ← 接口约定 ├── 📝 project-arch.md ← 架构决策 └── 📝 ... ← 按主题继续分 关键设计: topic 文件 不会 启动时全加载 Claude 判断"现在需要"才去读 设计克制,不塞爆上下文
// memory-taxonomy · core-insight
每条记忆必须且只能归一类,分类是闭合的——不能自己造第五类。
你的角色、身份、工作习惯、语言偏好
例:你是后端 · 用 TypeScript · 不爱写注释
你在对话里纠正过 AI 的地方
"别这么写,用另一种方式"——下次不重犯
跟当前项目相关的决策
架构选型 · 技术栈 · 项目约定——换项目不通用
最反直觉。不记内容本身,只记"去哪能查到"
API 文档链接 · 配置文件位置 · 参考实现放哪
核心洞察:前三类记"事实",第四类记"路径"。这跟人脑记东西的方式很像。
// real-world-value
长期维护 + 高频跟 AI 聊
AI 记住了你看过哪些书、对哪些观点有过什么反馈、知识架构长什么样。越用越顺。
特殊值写完就丢 / 已有人工记录
坑不多,AGENTS.md 也写了约定。Memory 该记的 project 层信息被人工维护分流了。
边际价值低结论:长期维护 + 高频沟通 都沾 → 特别值。否则边际价值低。
// autodream
不是随时跑,满足两个条件才启动:
距离上次整理超过 24 小时
积累了至少 5 个新会话
两个都达标 → 后台起一个子任务
翻看最近会话,把零散记忆合并、去重、清理过时内容
AI 也在"休眠期"
整理它的记忆
// the-real-challenge
记一堆没用的 → 污染上下文
AI 每次加载一堆记忆反而被干扰
该记的没记 → 还是失忆
输出质量下降,跟没 Memory 没区别
它更适合记跨会话反复用得上的——"稳定的你"和"稳定的项目约定"。
一次性的东西,交给会话上下文就够了。
① 不是把每次对话都存下来
② 从对话里挑出值得长期记住的部分
③ 分门别类存好
④ 需要的时候才调用
⑤ 还会定期整理
靠的不是记忆好,是判断准。