claude-mem深度测评:自动记忆插件,是帮手还是添乱?

先区分两个问题
用Claude Code写项目,写到一半它开始提示”上下文已满”,或者直接截断后面的内容。
这不是claude-mem能解决的。
单会话太长,你需要的是更长窗口、手动摘要、或者把大项目拆成小会话。这是另一个问题。
claude-mem解决的是:
跨会话记忆丢失。
今天关掉Claude Code,明天再打开,它不记得你上周解决的问题、不记得你踩过的坑、不记得你和它花了两小时才调通的那个配置。
但是——这里有个重要的因果链要说清楚:
claude-mem不能延长单个会话的窗口长度,但它能让你更高效地在新会话中复用旧会话的精华,从而间接减少你因为窗口满而被迫开新会话的频率。
打个比方:你的项目有一个认证模块,上次花了3天才搞懂全部逻辑。窗口满了,你新建会话。以前你需要重头再理解一遍。新会话里塞入旧会话的精华摘要,你用5分钟复习,就能继续推进。
这就是claude-mem的价值——不是扩大窗口,而是让每个新会话起步更快。
Claude Code自己的CLAUDE.md够用吗?
如果不装插件,Claude Code有个内置的CLAUDE.md文档机制(官方也叫Project Knowledge)。
在项目根目录创建CLAUDE.md文件(或.claude/CLAUDE.md),Claude Code启动时会自动读取。
你可以写项目背景、架构决策、编码规范。
优点:透明、可靠、官方原生
缺点:纯手动,不会跟着你的实际工作自动更新
claude-mem想做的事:把记忆从手动挡变成自动挡。
claude-mem是什么?
一句话:
claude-mem是一个自动化记忆系统,在后台自动记录你与Claude Code的交互历史,生成语义摘要,在新会话时注入相关上下文。
工作流程:
-
Hook埋点:利用Claude Code的Hook机制,在4个生命周期节点插入处理逻辑(SessionStart、UserPromptSubmit、PostToolUse、Stop) -
记录:每次调用工具、遇到bug、解决问题,自动生成”观察记录” -
压缩:用AI生成语义摘要,不是简单日志堆积 -
索引:摘要存SQLite,语义向量存Chroma向量数据库,支持FTS5快速全文搜索 -
注入:新会话开始时,从记忆库检索相关内容,注入上下文
额外能力:
-
Folder Context Files:自动在项目文件夹里生成CLAUDE.md,记录活动时间线——这让记忆不仅是数据库里的数据,还沉淀成了可分享的文档 -
多语言模式:支持28种语言,中文用户可以用 code –zh 模式 -
OpenClaw Gateway:支持一键部署到OpenClaw网关
安装指南
前置要求
-
Node.js 18.0.0+ -
Claude Code最新版
Windows用户常遇到的坑
-
Node.js没加到PATH:去nodejs.org下载安装,重启终端 -
安装完没反应:完全退出Claude Code再重开,不是只关当前会话 -
端口37777被占用:在 ~/.claude-mem/config.json里手动指定端口(Windows路径为%USERPROFILE%\.claude-mem\config.json)
安装方式
npx命令(推荐):
npx claude-mem install
插件市场:
在Claude Code里输入:
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
验证
重启Claude Code,观察输出:
[claude-mem] Memory loaded: X observations from previous sessions
健康检查命令:
npx claude-mem doctor
核心问题1:自动注入是如何判断”相关”的?
注入时机:会话开始时一次性注入,不是每次提问实时检索。
判断相关性的方式(基于官方文档和架构推测):
-
读取当前项目的package.json、Cargo.toml等文件,识别语言/框架 -
根据当前目录的绝对路径匹配 -
存储时会关联项目路径,检索时过滤同项目或相邻项目的记忆
monorepo环境下能区分不同子项目吗?
我没有在真实monorepo里实测过。但这里有一个最简单的验证方案(以下适用于Linux/macOS,Windows用户可用WSL或手动创建目录):
# 1. 创建测试目录结构
mkdir -p /tmp/memtest/apps/a /tmp/memtest/apps/b
# 2. 在Claude Code里先进入 /tmp/memtest/apps/a,问"我是A项目"
# 3. 退出,新开会话,进入 /tmp/memtest/apps/b,问"我是B项目"
# 4. 再退出,新开会话,回到 /tmp/memtest/apps/a
# 5. 问Claude:"我刚才在哪个项目?"
# 6. 观察它回答的是A还是B,还是混淆了
如果回答正确,说明路径匹配有效;如果混淆,说明claude-mem在monorepo里可能需要额外配置(例如路径过滤)。
核心问题2:版本冲突怎么办?
我在一个测试项目里做了这个实验:
环境:
-
CLAUDE.md里写:数据库用PostgreSQL -
claude-mem历史记忆:之前在另一个会话里用过MySQL做了一次数据迁移
测试:新会话,什么都不补充,直接问”我应该用什么数据库?”
结果:Claude Code两边信息都提到了,然后建议”根据你的项目需求选择”,没有强制选某个。
结论:至少在”数据库选型”这种高层次决策上,CLAUDE.md当权威,历史记忆当辅助信息。
更复杂的冲突我未实测,但可以推测:
-
如果两条矛盾信息都很具体:考虑到Claude Code作为LLM的本质,它可能会给出折中或模糊的建议,而不是报错 -
时间敏感的决策(上周放弃方案X,昨天又重新启用X):如果记忆库里同时存在两个版本,最新的不一定被优先召回
建议:重要决策写进CLAUDE.md,让它有明确的权威来源;claude-mem记录过程性的”踩坑”和”发现”,不是结论性的”架构决策”。
核心问题3:隐私保护——claude-mem是否安全?
先说清楚一件事:claude-mem本身不增加额外风险。
你的对话本来就要发给Anthropic的API服务器,claude-mem只是在本地多存了一份。所以隐私风险的来源是Anthropic,不是claude-mem。
关于Anthropic的数据使用政策,请查阅官方隐私条款。claude-mem没有改变这一点。
<private>标签解决的是本地文件泄露问题(电脑被偷、恶意软件读取~/.claude-mem/),不是云端API问题。
如果你的威胁模型包含Claude的云端服务器:
-
不要把真正敏感的信息发给任何AI助手——无论用不用claude-mem -
<private>对Anthropic无效,因为对话内容在发送之前就到了云端
本地文件权限保护(防止本地恶意软件读数据库):
Windows:
icacls "$env:USERPROFILE\.claude-mem" /inheritance:r /grant:r "%USERNAME%:F"
Linux/macOS:
chmod 700 ~/.claude-mem
核心问题4:注入太多变慢怎么办?
有用户反馈大型项目里,新会话开始时要等好几秒。
原因:会话开始时注入的记忆太多。
解决方法:在~/.claude-mem/config.json里限制注入量:
{
"CLAUDE_MEM_CONTEXT_OBSERVATIONS": 20,
"CLAUDE_MEM_SKIP_TOOLS": ["bash", "write"]
}
-
CLAUDE_MEM_CONTEXT_OBSERVATIONS:控制每次注入的观察数量(默认50条) -
CLAUDE_MEM_SKIP_TOOLS:排除不想记录的tools,比如某些敏感操作
建议从20开始,如果搜索结果质量下降再调高。
核心问题5:Web查看器能做什么?
打开浏览器访问 http://localhost:37777 可以看到记忆流界面。
能做的:
-
查看所有历史观察记录 -
搜索特定关键词 -
看时间线,了解某个决策是什么时候做的 -
查看Token开销:Progressive Disclosure界面会显示每次检索用了多少Token
不能做的(截至目前版本):
-
在Web界面上直接删除记录——你得用命令行或直接操作SQLite
如果看到一条不准确的观察想删,可以在终端里跑:
# 查看观察ID和所属路径
sqlite3 ~/.claude-mem/claude-mem.db "SELECT id, title, narrative FROM observations LIMIT 10;"
# 删除特定ID
sqlite3 ~/.claude-mem/claude-mem.db "DELETE FROM observations WHERE id = 123;"
核心问题6:从提问到拿到结果需要多久?
我实测了一下各环节耗时:
-
提问输入:约5-15秒(取决于问题复杂度和网络) -
mem-search工具调用:约3-5秒 -
返回结果:约5秒
总计约15-30秒,不是”10秒问一句”那么轻量。
对于”上次那个bug怎么解决的”这种问题,比翻终端日志快,但不如直接问同事快。
竞品对比
|
|
|
|
|
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
目标用户
愿意花半分钟问一句”上次那个bug怎么修的”,但不愿意花半小时写文档的人。
claude-mem的核心交互是”在Claude Code里用自然语言搜索”,不是独立App。如果你愿意打开Claude Code问问题,它能帮你自动化记忆记录和检索。
不太适合:
-
项目单一,每次会话能独立完成 -
已经习惯维护CLAUDE.md,觉得手动整理更可靠 -
对本地数据安全有极高要求
社区数据
-
GitHub Star:1300+(截至2026年5月) -
上榜Awesome Claude Code推荐列表 -
Discord社区运营中
快速安装命令
# 检查Node.js
node --version
# 安装
npx claude-mem install
# 重启Claude Code
# 健康检查
npx claude-mem doctor
# Web查看器
# 浏览器打开 http://localhost:37777
官网:https://docs.claude-mem.ai/ GitHub:https://github.com/thedotmack/claude-mem
总结
claude-mem解决的核心问题是跨会话记忆丢失,不是延长单会话窗口。
它让你更高效地在新会话中复用旧会话的精华,间接减少被迫开新会话的频率。
亮点功能:
-
Folder Context Files:记忆不仅存在数据库,还会写回项目CLAUDE.md,可分享 -
Progressive Disclosure:Token开销可视化,分层检索省多少Token一目了然 -
28种语言支持,中文体验友好
局限:
-
更复杂的版本冲突(如代码实现矛盾)存在风险,建议重要决策写进CLAUDE.md -
隐私保护是本地文件级,不是云端数据级 -
在monorepo等复杂环境里的行为还需要更多验证 -
搜索耗时约15-30秒,不是”10秒问一句”那么轻量
我的建议:先在一个非关键项目上试用两周,观察:
-
自动记录的观察质量如何 -
搜索结果是否相关(有没有误召回) -
有没有明显的过时记忆干扰
如果质量过得去,再迁移到主力项目。
**我自己测过三个项目,最烦的是项目路径太深时,claude-mem会把隔壁项目的记忆误召回来。比如我在/workspace/backend/src/auth里工作,它召回了/workspace/frontend/的记忆。
目前最有效的解法是直接按路径删除不相关的记忆记录。但操作前建议先备份数据库:
# 备份
cp ~/.claude-mem/claude-mem.db ~/.claude-mem/claude-mem.db.bak
# 删除 /workspace/frontend/ 相关的所有记忆
sqlite3 ~/.claude-mem/claude-mem.db "DELETE FROM observations WHERE narrative LIKE '%/workspace/frontend/%';"
你有没有遇到过类似的问题?怎么解决的?评论区说说。
既然看到了这里,如果觉得内容不错,欢迎点赞、在看、转发三连支持!不想错过更新,别忘了设为星标 ⭐。感谢阅读,下次再见!
夜雨聆风