"Claude Code 换会话就忘记:四种手段与 claude-mem 落地"

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

"Claude Code 换会话就忘记:四种手段与 claude-mem 落地"

新开一个 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_MODEcode--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 分钟)

  1. 环境:Node.js ≥ 20,Claude Code 已更新到支持 plugin 的版本。Bun 和 uv 会在 install 时自动拉。
  2. 安装npx claude-mem install,重启 Claude Code。
  3. 验证:新开会话,看启动日志是否出现 worker URL;浏览器打开该地址应能看到 Web Viewer 里的 memory stream。
  4. 中文模式(可选):编辑 ~/.claude-mem/settings.json,设 "CLAUDE_MEM_MODE": "code--zh",再重启。
  5. 隐私:调试含真实 API key 的会话前,确认 <private> 用法;或先在测试仓库跑通。
  6. 主动检索:复杂问题时在 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> 标签后再评估。

参考资料