2026 年 3 月底,Claude Code 的原始码曾被意外公开。社区很快出现了 Python 移植版本,几小时内冲上 GitHub 高 stars。
真正值得拆开来看的,是里面的记忆系统。
Claude Code 怎么管记忆
Claude Code 内部有一个叫 memdir 的模块,从外泄的文件结构可以看到多个子模块:找出相关记忆、批次扫描、记忆老化、类型分类、多人共享记忆路径。
光看这些名字就能拼出一套设计哲学:记忆光存起来还不够,要能找到它、判断它是不是过期了、决定要不要加载它。
但这套设计有个前提,是给开发者工具用的。Claude Code 假设每次对话都是独立任务,用户跟 AI 之间没有长期关系。
如果 AI 是长期伙伴呢?
第一个发现:分类方式搞错了
长期使用 AI 助理的人多半会做出一个「修正记录」文件夹,存所有纠正过 AI 的事项:
- 偏好喝茶不喝咖啡
- 运动指导要用体感描述
- 代码全部交给别的 AI 写
- 不能碰加密货币私钥
看起来很整齐,但问题来了。AI 开始新对话时,要怎么知道该读哪些?
扫所有文件的标题、判断哪些跟当前话题有关、再加载,这正是 Claude Code 的 findRelevantMemories 在做的事。
第一版解决方案常常会走这个路线:建一个索引看板,追踪每条记录的使用频率,常用的排前面,用到极致的就「毕业」成为永久规则。
设计越来越复杂。写完 spec、让另一个 AI 做了几轮挑战之后,更根本的问题会浮上来:
「修正记录」真的是一种记忆类型吗?
不是。
「喝茶不喝咖啡」归到关于用户的事实。 「运动指导要用体感描述」放进健康训练的做法。 「代码交给别的 AI」写进操作规则。
这些东西被贴上同一个标签,只因为它们都是「纠正 AI 后产生的」。
换句话说,多数人是按「怎么学到的」分类,真正该用的是按「这是什么」分类。

人脑怎么分类记忆
认知科学把长期记忆分成几种:
语义记忆,事实和知识。台北的经纬度、某个程序的 API 格式。 程序记忆,怎么做事情。开车的步骤、code review 的流程。 情节记忆,个人经历。「那天系统第一次上线」「凌晨三点 debug 的回忆」。 情感记忆,感受和关系动态。「他不喜欢被催」「她做决策前需要安静想一下」。
注意这里面没有「别人教过的事」这个类。脑子里并不会建一个「妈妈纠正过的事」专区,把烹饪技巧、交通规则、人际礼仪全丢进去。
大脑做的是 consolidation(记忆巩固):同一个经历会被拆开,按内容本质分送到不同区域。「妈妈说炉子很烫」这件事,「炉子的温度」进语义记忆,「被烫过」进情节记忆,「看到炉子会小心」进情感记忆。
AI 的记忆也许该这样设计。

最好的检索就是放对位置
想通之后,解法出乎意料地简单:
把知识放在它该被读到的地方。
运动训练的做法?放在健康项目里。下次聊健康时,自然就会读到。 操作规则?放在规则文件里。每次开机就会加载。 个人偏好?放在个人文件里。有人问起时才读。
不需要索引看板,不需要使用频率追踪,不需要「毕业」机制。
位置本身就是最好的 filter。
杂乱的「修正记录」拆散后,分别归位到真正属于的地方:训练做法进健康项目、品牌口吻进品牌规范、操作规则回到规则文件(多数其实已经有了,只是重复),个人偏好进个人文件。整个文件夹就此清空。
防呆比结构更值得花力气
整理完马上会面对第二个问题:以后会不会又把同一件事写在两个地方?
例如在讨论运动计划时提到身体哪里不舒服,这该写进健康项目还是个人健康文件?两边都写,迟早不一致。
可以设一条判断规则:
如果这个项目明天消失,这条信息在完全不相关的对话里还会反复用到吗? 不会 → 写进项目。 会 → 写进个人文件。 不确定 → 偏向写进项目。 绝对不要同时写两个地方。
这条规则比任何搜索算法都有效。
最常卡住的点,通常出在同一条记忆被写成两份,几周后互相打架。找不到记忆反而不是主要问题。
从 Claude Code 学到什么,没学什么
回头看 Claude Code 的设计:
记忆老化。 Claude Code 让旧记忆自动衰退。工具场景合理,但伙伴关系不适用。没有人会因为一个月没跟朋友联系就忘掉他喜欢什么。
相关性搜索。 如果东西放对位置,根本不需要搜。冰箱里也不会装一个搜索引擎找牛奶,牛奶就在冰箱门上。
记忆类型分类。 Claude Code 分成 user / feedback / project / reference 四类。对短期工具够用,对长期伙伴不够。更好的分类或许是跟着认知科学走:语义、程序、情节、情感。
Claude Code 的架构是为「陌生开发者的独立工作 session」设计的。长期伙伴的 AI,先改分类方式、让它更像人脑那样把事实、做法、经历分开收,效果通常比加一堆搜索功能来得好。
最终的记忆架构
整理完长这样:
永远加载(每次都在):核心价值观、操作规则、团队分工。像个性和习惯,醒着就在。
每次对话加载(工作记忆):当前待办、今天发生的事。像早上出门前扫一眼行事历。
聊到才加载(长期记忆):各项目的脉络和注意事项、个人偏好文件。像想起某个朋友时,关于他的记忆自然浮现。
主动查找(参考资料):历史记录、技术文档。像翻书架找一本很久没看的书。
每一层只加载当下需要的东西。每次对话的 boot 成本可以显著下降,长期累积下来,不论在 token 成本或加载速度上都很有感。
如果你也在做类似的事
几个重点:
不要照搬 Claude Code 的记忆分类。 它的四分法是给短期工具设计的,长期伙伴需要不同的架构。
先想清楚分类标准。 按「信息怎么来的」分类,还是按「信息是什么」分类?听起来像废话,但很多人会卡在这里。
先把东西放对位置,再考虑搜索机制。 冰箱不需要搜索引擎。
防呆规则比功能更值得投资。 一条「绝对不要同时写两个地方」的硬规定,省下的维护成本远超过任何自动化工具。
好的系统设计往往就是这样,答案简单到让人怀疑自己之前到底在忙什么。
延伸阅读
小企鹅的经验
长期跑 AI 助理之后,最麻烦的真的是记忆。要处理好记忆、又不让 agent 失忆,难的点不在「能不能存」,而在「下一次它能不能自然读到」。实战下来的诀窍就是把核心文件整理到简洁,让位置本身当索引,比起设计搜索机制更有效。OpenClaw 上的多 agent 架构(Opus / Sonnet / ChatGPT)就是依照这个逻辑在跑。
常见问题
Q: Claude Code 的记忆系统怎么运作?
Claude Code 内部有一个 memdir 模块,包含记忆搜索、批次扫描、老化机制、类型分类等功能。它把记忆分成 user、feedback、project、reference 四类,并通过相关性搜索来决定加载哪些记忆。
Q: AI 助理的记忆应该怎么分类?
可以参考认知科学,按信息本质而非来源分类:语义记忆(事实)、程序记忆(做法)、情节记忆(经历)、情感记忆(关系)。把知识放在使用时会自然读到的位置,位置本身就是最好的检索机制。
Q: 什么是记忆的 SSoT 原则?
Single Source of Truth,每条信息只存在一个地方。判断方法:如果某个项目消失了,这条信息还会在其他场景反复用到吗?不会就放项目里,会就放个人文件。绝不同时写两个地方。
本文仅供研究与讨论,非投资建议。DYOR + NFA。
整理:Penna|小企鹅 Penchan