"Claude Code 换会话就忘记:四种手段与 claude-mem 落地"
"claude code 换会话就忘记怎么解决?对比 CLAUDE.md、手动 summary、resume 与 claude-mem 插件记忆,附仓库文档 vs 插件记忆 vs 续旧会话的决策表和最小安装步骤。"

新开一个 Claude Code 会话,昨天排过的坑、定过的架构约定、改到一半的 refactor 计划,往往要从头讲一遍。claude code 换会话就忘记怎么解决,核心不是「让 AI 记住一切」,而是把该持久化的信息放进对的容器:仓库文档管「团队共识」,插件记忆管「个人会话轨迹」,resume 管「还没做完的同一条任务链」。下文按这个分层拆开四种手段,并给出 claude-mem 的最小落地步骤。
为什么换会话 Claude Code 会「失忆」?
每个会话的上下文窗口是独立的。你关掉终端、重启 CLI、或 /clear 之后,模型只能看到当前窗口里塞进去的内容:系统提示、CLAUDE.md、你 @ 的文件、以及本轮对话。上一轮里「我们决定用 SQLite 不用 Postgres」如果没有写进任何持久介质,下一轮就不存在。
这不是 bug,是设计边界。Anthropic 官方给的持久化入口主要是项目根目录的 CLAUDE.md(以及 .claude/ 下的 rules、skills)和可选的 memory 文件;会话内的 /compact 只压缩当前窗口,不会自动写回磁盘。社区插件 claude-mem 走的是另一条路:用 lifecycle hooks 捕获工具调用与对话片段,本地 worker 做 AI 压缩,下次 SessionStart 时按相关性注入摘要。
claude-mem 怎么实现跨会话记忆?
claude-mem 是一个 Claude Code 插件,作者 Alex Newman(@thedotmack),Apache 2.0 开源。它的数据流可以概括成三步:捕获 → 压缩存储 → 检索注入。
捕获:通过 5 个 lifecycle hooks(SessionStart、UserPromptSubmit、PostToolUse、Stop、SessionEnd)自动记录会话里的工具使用与观察结果,不需要你手动复制粘贴。
压缩存储:本地 worker 服务(Bun 管理)把原始观察写入 SQLite,并用 AI 生成语义摘要;向量检索走 Chroma,支持全文 + 语义混合搜索。
检索注入:新会话启动时,相关摘要自动出现在上下文里;你也可以用 mem-search skill 或 4 个 MCP 工具(search / timeline / get_observations)主动查历史。
安装只需一条命令,装完重启 Claude Code:
npx claude-mem install
或在 Claude Code 插件市场里:
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
中文观察摘要可设 ~/.claude-mem/settings.json 里的 CLAUDE_MEM_MODE 为 code--zh。敏感内容可用 <private> 标签排除出存储,配置细节见官方文档。
原生手段:CLAUDE.md、memory 文件、手动 summary、resume
在装插件之前,先把官方和半官方手段说清楚,很多场景其实不需要额外依赖。
| 手段 | 存什么 | 谁可见 | 典型成本 | 适合场景 |
|---|---|---|---|---|
CLAUDE.md / rules |
架构约定、命令、目录说明 | 进 git,全团队 | 维护文档 | 跨会话、跨人的稳定事实 |
| memory 文件 | 个人偏好、项目备忘 | 通常本地 | 手动更新 | 少量长期偏好 |
| 手动 summary | 本轮结论 | 你自己粘贴 | 每轮 2–5 分钟 | 单次交接、PR 描述 |
| resume 旧会话 | 完整对话链 | 仅本机该会话 | 占上下文窗口 | 同一任务未做完 |
CLAUDE.md 适合「换了十个人来 clone 仓库也应该知道」的内容:怎么跑测试、目录结构、禁止改哪些文件。它每次会话都会读,但太长会挤占上下文窗口里真正干活的 token。
手动 summary 是在会话末尾让模型输出一段结构化摘要,你贴进 issue、Notion 或下轮 prompt。优点是完全可控;缺点是全靠自觉,容易漏。
resume(Claude Code 的会话恢复)适合「这条 refactor 还没 merge,上下文里已经堆了二十轮讨论」——继续旧会话比新开便宜,但窗口满了照样要 compact,且无法跨机器同步。
仓库文档 vs 插件记忆 vs 续旧会话:怎么选?
下面这张决策表是本文的信息增益核心。先问「这条信息要不要进 git」,再问「要不要自动捕获」,最后才决定要不要 resume。
| 你的问题 | 首选 | 次选 | 别用 |
|---|---|---|---|
| 团队都要遵守的规范(lint、分支策略) | 写进 CLAUDE.md |
rules 文件 | claude-mem(不进版本库) |
| 个人踩坑记录(「上次 hooks 不触发是因为路径」) | claude-mem | 手动 summary | 塞进 CLAUDE.md 污染团队 |
| 同一 bug 修到一半,明天接着干 | resume 旧会话 | claude-mem 查历史 | 新开会话重讲 |
| 跨项目通用偏好(「回答用中文」) | memory 文件 | claude-mem | 每个仓库 CLAUDE.md 复制一遍 |
| 含密钥、客户数据的调试过程 | 手动 summary + 脱敏 | <private> 标签 |
默认全开 claude-mem |
| 需要审计「Agent 上周改了什么」 | claude-mem Web Viewer / search | git log | 只靠记忆 |
一句话原则:进 git 的写文档,不进 git 但要自动召回的用 claude-mem,任务链未断的 resume,一次性交接用手动 summary。
若你同时在 Cursor 和 Claude Code 之间切换,文档层(CLAUDE.md)两边都能读;插件记忆目前绑定 Claude Code 生态,Cursor 侧要靠 rules 或 MCP 另配,可参考Cursor 与 Claude Code 组合工作流里的上下文分工。
claude-mem 最小落地步骤(约 10 分钟)
- 环境:Node.js ≥ 20,Claude Code 已更新到支持 plugin 的版本。Bun 和 uv 会在 install 时自动拉。
- 安装:
npx claude-mem install,重启 Claude Code。 - 验证:新开会话,看启动日志是否出现 worker URL;浏览器打开该地址应能看到 Web Viewer 里的 memory stream。
- 中文模式(可选):编辑
~/.claude-mem/settings.json,设"CLAUDE_MEM_MODE": "code--zh",再重启。 - 隐私:调试含真实 API key 的会话前,确认
<private>用法;或先在测试仓库跑通。 - 主动检索:复杂问题时在 prompt 里写「用 mem-search 查上次 auth refactor 的结论」,比指望自动注入更准。
claude-mem 还提供 MCP 搜索工具,三层 workflow(search 拿索引 → timeline 看时间线 → get_observations 拉详情)刻意控制 token,和2026 年 MCP 工作流里「先索引后展开」的思路一致。Skills 描述过长会被截断导致 Agent 选错工具,若你同时挂了 mem-search skill,描述宜短,可对照Skills 描述被截断的写法。
边界与代价:它不是魔法全记
claude-mem 能显著减少「重讲背景」的时间,但有四条硬边界:
隐私:观察内容含你让 Agent 读过的代码片段和终端输出,默认落在本机 SQLite。公司仓库若禁止代码出机,装之前先过安全评审;<private> 不是加密,只是不写入索引。
噪声:自动捕获会把探索性试错也存进去。跑了一下午乱试的分支策略,可能被下次会话误注入。定期用 Web Viewer 清理或调低注入 aggressive 度。
额度成本:压缩摘要本身要调模型;MCP 三层检索也消耗 token。长项目历史越多,search 越值得,但别在每次 SessionStart 塞满注入。
不是全记:它记的是「观察与摘要」,不是 git 状态快照。文件已被你手动改乱、但没经过 Agent 工具的记录,memory 里可能没有。
原生 CLAUDE.md 也有上限:超过几千字后,模型会选择性忽略尾部,和 skills 截断是同一类问题。持久化策略应该是分层,而不是押宝单一方案。
常见问题
claude-mem 和 CLAUDE.md 可以同时用吗?
可以,而且推荐同时用。CLAUDE.md 放团队共识与稳定命令;claude-mem 捕获个人会话里的动态决策。两者冲突时以 CLAUDE.md 为准,memory 里过时的观察应手动删或让 mem-search 时注明时间范围。
换电脑后记忆还在吗?
默认存在本机 ~/.claude-mem 数据目录。官方提供 Cloud Sync 备份到 cmem.ai,需自行配置。团队共享记忆目前没有「一键同步 git」的路径,敏感项目别指望 cloud 备份。
resume 和 claude-mem 哪个更省 token?
resume 保留完整对话链,窗口涨得快,后期 compact 频繁。claude-mem 注入的是压缩摘要,新开会话更轻,但可能丢细节。同一任务 48 小时内接着干用 resume;隔一周回来用 claude-mem 查摘要再新开。
公司项目能不能装 claude-mem?
看合规。代码会经本地 worker 处理并可能 cloud sync。纯内网、禁止任何外发时,只用 CLAUDE.md + 手动 summary;允许本机 AI 辅助时,关闭 cloud sync 并启用 <private> 标签后再评估。