Claude Code 持久记忆实战:用 claude-mem 把“上下文不够用”直接打穿
你是不是也遇到过这种崩溃时刻:
- 项目聊到一半,上下文爆了,Claude 开始“失忆”
- 你刚讲过的架构、约定、命名规范,又得重讲一遍
- token 像流水一样烧,心在滴血
现在有个很实用的路子:给 Claude Code 上“持久记忆”。核心点就一句话:
把长期有用的信息存到本地,聊天时只喂“当前需要的那一小段”,不把整段历史硬塞进上下文。
这个方案里最省事的工具之一就是 claude-mem(开源、免费、热度也很高)。
claude-mem 能解决什么痛点?
它的价值不在“更聪明”,在“更不健忘”。
- 持久记忆:你写过的约定、项目背景、偏好设置,不会因为开新会话就没了
- 基本不吃上下文:长历史不再塞进 prompt,按需取用
- token 省很多:不再重复解释“项目是什么、怎么组织、怎么命名”
适合的场景特别多:
- 你维护一个老项目,每次让 Claude 上手都要讲半天
- 团队有统一规范(lint、commit、目录结构),每个人都懒得重复描述
- 你有固定偏好(例如“优先给 diff、不要大段讲道理、报错要给定位步骤”)
安装:一条命令搞定
你只需要在终端跑这一句:
npx claude-mem install
装完后建议做两件小事:
- 关掉/重启你的终端会话(避免环境变量没刷新)
- 去项目根目录确认一下有没有生成相关配置或记忆目录(不同版本可能略有差异)
提示:如果你在公司内网或网络很玄学,npx 可能会慢。可以换镜像源或走代理,这个属于通用 Node 工具问题。
它大概怎么“记住东西”的?(用人话讲)
claude-mem 的思路很朴素:
- 把长期信息落地到本地(文件/数据库/索引之类,具体实现以项目实际为准)
- 你开始写代码或提问时,它会从记忆里检索相关片段
- 只把“最相关的几条”塞进当前对话,避免整本“回忆录”都进上下文
所以你会感受到:
- Claude 对项目更“熟”
- 你问同类问题时,它不会每次都从零开始
- 对话更干净,token 消耗更可控
推荐的记忆内容:别什么都存,存“会反复用的”
很多人一上来就想把所有聊天记录都塞进去。别。那叫灾难。😅
更靠谱的做法是存这些:
1)项目级事实(高复用)
- 业务目标(一句话就够)
- 技术栈(例如 Next.js + Prisma + Postgres)
- 目录结构约定(例如
apps/、packages/) - API 规范、错误码、日志规范
2)团队约定(最省解释)
- 命名规则(
camelCase、文件名怎么写) - 提交规范(Conventional Commits)
- 代码风格(缩进、单引号、是否允许 any)
- “不要做的事”(例如禁止直接改生产配置)
3)你的个人偏好(让回答更顺眼)
- “优先给可复制命令”
- “写方案给我 2 套:稳妥版 + 快速版”
- “别讲概念,直接告诉我怎么排查”
一套好用的日常工作流(照抄就行)
你可以把 claude-mem 当成一个“项目小本本”。
场景 A:新项目刚起步
你做完这些事情就该记下来:
- 初始化命令
- 环境变量含义(哪些必填)
- 本地启动方式
- 常见坑(端口冲突、依赖版本)
以后新人加入,或者你隔两周回来,都不用再翻群消息。
场景 B:改复杂模块
每次你和 Claude 把关键决策定下来,立刻写入记忆:
- “为什么不用方案 X”
- “性能瓶颈在什么地方”
- “这个模块最怕改坏哪里”
这种信息最值钱,因为它能让 Claude 下次少走弯路。
场景 C:你反复问同类问题
比如你总在问:
- “这个仓库怎么跑测试?”
- “怎么做数据库迁移?”
- “怎么发布到 staging?”
把这些变成记忆,Claude 以后会像个熟练工一样直接给命令,而不是每次都让你补前提。
示例:把“项目规范”写成一条可复用记忆
你可以准备一段这样的文字,作为项目固定背景(示例,按你项目改):
项目背景:这是一个电商后台管理系统。
技术栈:Node.js 20、NestJS、Prisma、PostgreSQL。
目录约定:src/modules 按业务拆分;公共工具放 src/shared。
代码风格:eslint + prettier,单引号,禁止 any。
输出偏好:给我方案时优先给可执行步骤和命令,代码用最小可跑示例。
把它存进持久记忆后,你后面问“帮我写一个新模块”这种问题,Claude 不用反复追问“你用啥框架、目录怎么放”。
避坑清单(真的很重要)
1)别把敏感信息塞进记忆
- 密钥、token、生产库连接串
- 客户数据、隐私信息
哪怕是本地存储,也要当成“有泄露风险”来处理。
2)记忆别写成流水账
最常见翻车:把一整段聊天原封不动塞进去。
记忆应该是“结论 + 约定 + 可执行信息”。
3)定期清理过期约定
架构变了、技术栈升级了,老记忆会误导 Claude。
建议你每次大版本升级后,专门花 10 分钟:
- 删掉过时的启动方式
- 更新新的目录结构
- 把废弃方案写清楚“已弃用”
4)团队协作要小心“记忆冲突”
多人共用一套记忆时,经常出现:
- A 说用 pnpm,B 说用 npm
- A 规定单引号,B 规定双引号
解决办法很简单:
- 统一把规范写到仓库里的文档(如
CONTRIBUTING.md) - 记忆只存“文档索引 + 关键摘要”,别存互相打架的口头约定
5)别把记忆目录提交进 Git(除非你知道自己在做什么)
持久记忆通常是个人使用习惯。
你可以:
- 把记忆目录加入
.gitignore - 团队需要共享的内容,放到仓库文档里更稳
你可以立刻做的 3 件事(马上见效)
- 给你的项目写一条“固定背景记忆”(技术栈 + 目录结构 + 输出偏好)
- 把“启动项目/跑测试/发布流程”写成记忆
- 清理一次:把以前的长篇聊天记录改成 5~10 条短结论
做完这几步,你会明显感觉:Claude 回答更贴项目,重复解释变少,token 烧得也慢。
小问题排查
- 装完没反应:重开终端,再跑一次;检查 Node 版本别太老
- 感觉没变聪明:八成是你没把“高复用信息”写进记忆,或者记忆太散太长
- 越用越乱:把过期记忆标记“弃用”,或直接删掉,保持干净
如果你愿意,把你现在的项目类型(前端/后端/全栈)、技术栈、你最想“被记住”的 5 条信息发我。我可以帮你整理成一份“可直接塞进持久记忆”的项目说明,保证短、准、够用。