为什么新会话总像「失忆」
Claude Code 很擅长在当前会话里顺着上下文往下推,但会话一关,昨天踩过的坑、已经否掉的方案、连库超时的真正原因,往往不会自动带到下一轮。于是同一件事又会 grep 一遍、猜一遍、试一遍。
很多人开始用最笨、也最稳的办法:每个项目放一份 notes.md,收工前让 agent 把关键结论追加进去;也有人接上 Git 原生的本地记忆层,让 Claude Code、Cursor 这类工具在项目目录里做确定性召回。思路其实一样——记忆要落在磁盘上,跟着仓库走,而不是只活在某一轮聊天里。
把这份记忆放在一台常开的新加坡 Mac mini 上,好处更明显:你从笔记本、手机或别的电脑用 UU 远程或 SSH 连上,读到的是同一份笔记;夜里长任务还在跑时,下一轮会话也能直接接上昨天的结论。
准备清单
- 一台常开、不休眠的 Mac mini,已安装 Claude Code,并用你自己的账号登录。
- 能用 SSH 或 UU 远程连接登录这台机器,终端里有
git。 - 至少一个正在维护的项目仓库(本地 clone 即可)。
步骤一:约定「项目记忆」放哪
在 Mac mini 上进入项目根目录,建一个只给人和 agent 读的记忆文件,不要塞进会被打包发布的目录:
cd ~/Projects/your-app
mkdir -p .claude
touch .claude/project-memory.md
echo "# Project memory" >> .claude/project-memory.md
echo "" >> .claude/project-memory.md
echo "写给下一轮会话的短结论。每条一行,带日期。" >> .claude/project-memory.md
建议同时在 CLAUDE.md 里加三行硬规矩(保持简短):
- 开始任务前先读
.claude/project-memory.md。 - 收工或切换大主题前,把「已证实的结论 / 已否掉的路 / 下次优先检查项」追加进去。
- 不要把密钥、令牌、
.env内容写进记忆文件。
这样 Claude Code 每轮都会先看到项目级的「已经知道什么」,而不是从零猜。
步骤二:规定记忆条目的写法
记忆文件最怕写成流水账。用固定模板,一条结论占几行即可:
## 2026-10-22
- 结论:Prisma 事务超时,根因是连接池耗尽,不是 ORM 语法。
- 否掉:盲目加大 `statement_timeout`(治标不治本)。
- 下次:改连接池上限前先看 `pg_stat_activity`。
三条规则够用:
- 结论:已经验证过的事实,写「是什么」,少写「我觉得」。
- 否掉:试过但无效的方向,避免下一轮再绕一圈。
- 下次:下一轮会话该先查什么,写成可执行的检查项。
收工时可以在 Claude Code 里直接说:「把本轮已证实的结论按模板追加到 .claude/project-memory.md,不要改历史条目。」让它只 append,不重写整份文件。
步骤三:用 git 把记忆变成可回溯资产
记忆跟代码一样会错、会过时,所以要进版本库:
cd ~/Projects/your-app
git add .claude/project-memory.md CLAUDE.md
git commit -m "docs: add project memory for Claude Code sessions"
如果团队共用仓库,约定:记忆文件可以提交;含密钥的草稿放本机、不进 git。需要回滚某次错误结论时,用 git log -p -- .claude/project-memory.md 就能看到谁在哪天改了什么。
想再严一点,可以在 .gitignore 里忽略 .claude/project-memory.local.md,把个人临时备注和团队共享记忆分开。
步骤四:在常开机器上接「会话结束钩子」
只靠人记得「收工写笔记」不够稳。可以在项目的 .claude/settings.json 里挂一个轻量 hook(按你本机 Claude Code 版本支持的字段写),在会话结束或你手动触发的收工命令时,提醒或执行一段脚本:检查 project-memory.md 是否今天有新条目;若没有,在终端打印一行警告。
更简单、不依赖 hook 的做法:在 ~/bin/cc-wrap-up 写一个小脚本——打开项目、跑 git status、用 grep 看记忆文件里是否出现今天的日期——然后通过 SSH 或 UU 远程在 Mac mini 上执行。你离开键盘前跑一次,比指望自己「记得写」可靠。
步骤五:远程连上同一份记忆继续干
笔记本合盖不影响 Mac mini。用 UU 远程桌面打开已有终端,或 SSH 进去:
ssh your-mac-mini
cd ~/Projects/your-app
claude
新会话里先让它读 .claude/project-memory.md,再说今天的任务。长编译、测试、后台 agent 都放在这台整机独享的机器上跑;你只在需要拍板时连回去看结论,不必把「项目脑子」拷来拷去。
可选:再接一层 Git 原生记忆工具
若你希望多个 coding agent(Claude Code、其他 CLI)共用同一套本地召回,可以评估开源的 Git 原生记忆层:把召回内容落在仓库可读文件里,由工具按确定性规则取用,而不是每次靠模型「回忆」。选型时只装你信任的来源,先在测试仓库试,确认它不会改你的 MCP 列表或遥测开关,再接到正式项目。
无论用手工 notes.md 还是额外工具,原则不变:权威记忆只有一份,活在常开的新加坡 Mac mini 项目目录里,用 git 管版本。
Zumac.Ai 怎么帮上忙
搭这套流程,难点通常不是 Markdown 模板,而是「机器能不能一直开着、网络稳不稳、你人在别处时能不能连回去」。Zumac.Ai 提供新加坡远程 Mac mini M6,整机独享,适合把 Claude Code、项目仓库和这份 project memory 放在同一台常开机器上;新客户整机租用 ¥999/月起,季付、半年付、年付有折扣。你自己的 Claude 账号登录,机器给你稳定合规的使用环境。
