Claude Code 记忆管理 — 200 行上限与记忆腐化
Claude Code 的记忆索引文件 MEMORY.md 有一个 200 行的上限,超过的部分直接被截掉。
拼拼自己的视频号项目,索引已经写到 345 行 — 也就是说有 145 行的记忆,每次打开都丢了。电脑上 30 多个项目,如果记忆全堆在一个地方,几千行,Claude Code 只看得到前 200 行。
更麻烦的是记忆会腐化 — 溢出(读不到)、污染(项目间串记忆)、过时(旧记忆覆盖新情况)。解法:用文件夹把项目隔离开,每个项目有自己独立的 200 行记忆空间。
Claude Code 的记忆系统不用装插件,用原生系统就可以。但有一个大部分人不知道的限制 — 记忆索引 MEMORY.md 有 200 行上限,超过的部分它读不到。
200 行上限
拼拼自己的视频号项目,这个索引已经写到了 345 行。也就是说有 145 行的记忆,每次打开都被截掉了。这还只是一个项目,电脑上有 30 多个。如果所有项目的记忆全堆在一个地方,几千行,Claude Code 只看得到前 200 行,剩下的全白存了。
记忆腐化三种方式
问题不光是记不下,更麻烦的是记忆会腐化。
溢出 — 超过 200 行就被截掉。你后来存的记忆,可能永远不会被读到。
污染 — 不同项目的记忆混在一起。你做视频号的经验,它拿去给你的客户项目用了。你客户项目的配置,跑到了视频号的记忆里。它不是故意的,它只是分不清这条记忆是哪个项目的。
过时 — 三个月前存的一条记忆,现在情况已经变了,但旧记忆还在。Claude Code 读到了就按旧的来,结果就出问题了。
记忆越多、项目越多,腐化得越快。
解法:文件夹隔离
用文件夹把项目隔离开。Claude Code 认项目,靠的就是你当前在哪个文件夹。在视频号的文件夹里打开它,它就只读视频号的记忆。在博客的文件夹里打开它,它就只读博客的记忆。每个项目的 200 行是独立算的,互不占用,互不污染。
建项目不用自己敲命令 — 在主目录打开 Claude Code,直接说「帮我建一个新项目」。CLAUDE.md、settings.json,全都是 Claude 帮建的。
项目入口三件套
Claude Code 帮你建好的一个完整项目包含:
- 项目文件夹 — 以后做这个项目就进到这个文件夹里开 Claude Code
- CLAUDE.md — 项目说明书,项目是干什么的、目录长什么样、有什么约定。每次开新对话第一件事就是读这个文件
- .claude 文件夹 — 配置中心,里面有 settings.json(权限和命令配置)和 settings.local.json(密钥,不传 Git)
规则 vs 记忆
一个很重要的区分:规则是全局的,记忆是项目隔离的。
rules 写在主目录的 .claude 文件夹里,不管打开哪个项目都会自动加载 — 编码风格、提交规范、协作方式,所有项目都遵守。
但记忆跟着项目走。每个项目在 .claude 文件夹里面的 projects 下面,有自己独立的记忆空间。比如视频号项目有 73 个记忆文件 — 封面怎么做、字幕走什么流程、生产线标准步骤,每个文件记一件事。
MEMORY.md 是记忆的索引,像一本书的目录。每次开新对话,Claude Code 先读索引,然后根据你在做什么,去读相关的记忆。200 行的上限是每个项目独立算的。30 个项目就是 30 份独立的 200 行。
不是为了整理好看,是为了让每个项目的记忆不会互相挤占。
来源:EP0020_audio.mp3 · ASR 模型 gemini-2.5-pro(切段并发) · 4:09 原片完整文字版
[00:00] Claude Code 的记忆系统的整理,根本不用装插件,那我们用它原生的这个系统就可以。我今天一直在咳嗽,有点过敏,所以我用 AI 来替我讲,我帮 AI 翻译。
[00:10] Claude Code 的记忆索引文件,有一个 200 行的上限。超过 200 行的部分,它读不到。那我自己的视频号项目,这个索引已经写到了 345 行,也就是说有 145 行的记忆,每次打开都被截掉了。
[00:23] 这还只是一个项目。我电脑上有 30 多个。如果所有项目的记忆全堆在一个地方,几千行,Claude Code 只看得到前 200 行,剩下的全白存了。那今天就讲这件事,怎么用文件夹把记忆管好,别让它腐化。
记忆腐化
[00:37] 那这个问题不光是记不下,更麻烦的是记忆会腐化。什么叫腐化呢?
[00:42] 第一种,溢出。刚才说了,超过 200 行就被截掉了。你后来存的记忆,可能永远不会被读到。
[00:48] 第二种,污染。不同项目的记忆混在一起。你做视频号的经验,他拿去给你的客户项目用了。你客户项目的配置,跑到了视频号的记忆里。他不是故意的,他只是分不清这条记忆是哪个项目的。
[01:00] 第三种,过时。你三个月前存的一条记忆,现在情况已经变了,但那条旧记忆还在。Claude Code 读到了,就按旧的来,结果就出问题了。
[01:10] 这三种加在一起,就叫记忆腐化。你的记忆越多、项目越多,腐化的越快。
解法:文件夹隔离
[01:15] 那怎么解决这个问题呢?很简单,用文件夹把项目隔离开。Claude Code 认项目,靠的就是你当前在哪个文件夹。你在视频号的文件夹里打开它,它就只读视频号的记忆。你在博客的文件夹里打开它,它就只读博客的记忆。
[01:29] 每个项目的 200 行是独立算的,互不占用,互不污染。
[01:33] 那我自己是怎么建项目的呢?我不会自己去敲命令,我就在主目录打开 Claude Code,直接跟它说,帮我建一个项目。那什么 CLAUDE.md 啊、settings.JSON 啊,全都是 Claude 帮我建的。我只管告诉他项目叫什么、是干什么的。
现场演示
[01:50] 那我现在来演示一下这个过程。你可以看到啊,我就说了一句话,他把所有东西都配好了。
[01:56] 那它具体建了什么呢?首先,一个项目文件夹。以后做这个项目,就进到这个文件夹里面开 Claude Code。
[02:03] 然后,一个 CLAUDE.md。这是项目说明书,项目是干什么的、目录长什么样、有什么约定,都在里面。每次开新对话,Claude Code 第一件事就是读这个文件。
[02:13] 再然后,一个 .claude 文件夹。这是项目的配置中心,里面有个 settings.JSON,允许跑哪些命令、要拦截哪些操作,都配在这里。还有个 settings.local.JSON,存密钥不会传到 Git。
[02:25] 这些加在一起,就是一个项目的完整入口。
记忆和规则的区分
[02:27] 那这里有一个很重要的区分,记忆和规则不是一回事。规则是全局的,你在主目录的 .claude 文件夹里面写的那些 rules,不管你打开哪个项目,它都会自动加载。比如我的编码风格、提交规范、跟 AI 的协作方式,这些写在 rules 里,所有项目都遵守。
[02:43] 但记忆不是全局的,记忆是跟着项目走的。每个项目在 .claude 文件夹里面的 projects 下面,有自己独立的记忆空间。
[02:51] 比如我视频号项目,里面有 73 个记忆文件。封面怎么做、字幕走什么流程、生产线标准步骤,每个文件记一件事。
[02:58] 那还有一个 MEMORY.md,就是记忆的索引,像一本书的目录。每次开新对话,Claude Code 先读这个索引,然后根据你在做什么,去读相关的记忆。
[03:09] 那 200 行的上限,是每个项目独立算的。你有 30 个项目,就是 30 份独立的 200 行。这就是为什么要分文件夹,不是为了整理好看,是为了让每个项目的记忆不会互相挤占。
收尾
[03:20] 那所以你看,Claude Code 不是没有记忆,它有,但记忆有上限,会腐化,会污染。用文件夹把项目隔离开,每个项目自己管自己的记忆,这个问题就解决了。
[03:31] 那你也可以看到说,我就说了这样一句话,就是帮我建立一个新项目,然后这个新项目是用来做小红书文案的。那帮我去建立一个新的文件夹,要一套独立的记忆,同时帮我在终端的 JSON 配置里面增加一个快捷的入口,以至于我可以通过终端快捷的打开这个文件夹里的 Claude Code。
[03:47] 那它会问我,问我说这个项目叫什么可以吗?那我就任务完成了,请指示。
[03:54] 它现在就是在这个,我只要以后在这个下拉选项里面找到小红书文案,就可以去看到,进入到这个项目里面来。然后这个项目里面的它的记忆就不会跟其他的项目串。
[04:05] 好吧,那我们咱们下期再见,拜拜。