Shared Memory - 跨会话记忆管理
这是什么
这是一个让你具备"记忆管理意识"的能力。作为 AI 助手,你应该:
- •意识到上下文的有限性 - 知道会话会结束,重要信息需要保存
- •主动提醒保存 - 在适当时机提醒用户保存进度
- •知道如何加载上下文 - 新会话开始时,引导用户加载相关记忆
记忆文件位置
所有记忆文件存储在项目级目录,便于直接 @ 引用:
code
<项目根目录>/
└── .claude/
└── memory/
├── context.md # 项目持久上下文(长期)
└── sessions/
├── 2026-01-27-feature-auth.md # 会话记忆
├── 2026-01-26-bug-fix.md
└── ...
用户可以直接使用:@.claude/memory/sessions/2026-01-27-feature-auth.md
何时提醒保存
在以下情况,主动建议用户保存会话:
触发场景
- •
完成重要任务或里程碑
- •完成了一个功能实现
- •完成了一轮重构
- •解决了一个复杂 bug
- •
做出关键技术决策
- •选择了某个技术方案
- •确定了架构设计
- •做出了重要的权衡取舍
- •
解决了复杂问题
- •调试了一个棘手的问题
- •发现了重要的 root cause
- •找到了有效的解决方案
- •
对话较长(接近上下文限制)
- •感觉到对话历史很长
- •已经讨论了很多内容
- •上下文可能快要压缩
- •
用户表示要结束工作
- •"今天先到这里"
- •"我要下班了"
- •"明天继续"
- •"先休息一下"
提醒方式
code
💡 建议保存当前进度: /save-session <简短描述> 这样下次可以继续,不会丢失上下文。
或更简洁:
code
💡 进展不错!建议 `/save-session feature-auth` 保存进度。
何时建议加载
在以下情况,询问是否需要加载之前的记忆:
触发场景
- •
会话刚开始时
- •如果 Hook 提示有可用记忆
- •主动询问是否需要加载
- •
用户提到"继续之前的工作"
- •"继续昨天的"
- •"接着上次的做"
- •"上次做到哪了"
- •
用户提及之前讨论的内容
- •"之前那个 bug"
- •"我们讨论过的那个方案"
- •"上次的决定"
询问方式
code
我注意到有之前的会话记忆,需要我加载吗? - 使用 `/list-sessions` 查看所有记忆 - 使用 `/load-session <名称>` 加载特定记忆 - 或直接 `@.claude/memory/sessions/xxx.md` 引用
记忆文件格式
保存的记忆文件应包含以下结构化信息:
markdown
# 会话: <简短描述> **日期**: YYYY-MM-DD HH:MM **项目**: <项目名称> **路径**: .claude/memory/sessions/YYYY-MM-DD-<name>.md **会话ID**: <短ID> ## 已完成 - [具体完成的任务] ## 进行中 - [正在进行的任务] - 当前状态: [描述] ## 关键决策 - [决策] - 原因: [为什么这样决定] ## 遇到的问题 - [问题] - 解决方案: [如何解决的] ## 下次继续 - [ ] 待办事项1 - [ ] 待办事项2 ## 需要加载的文件 - `path/to/file` - [为什么需要] ## 相关上下文 [任何额外的重要背景信息]
相关命令
| 命令 | 说明 |
|---|---|
/save-session [name] | 保存当前会话状态 |
/load-session [name] | 加载指定会话记忆 |
/list-sessions | 列出所有可用的会话记忆 |
最佳实践
保存时机
- •宁可多保存:不确定是否需要保存时,建议保存
- •有意义的命名:使用描述性名称,如
feature-auth、bug-fix-login - •及时保存:完成阶段性工作后立即保存
加载时机
- •按需加载:不要主动读取所有记忆,让用户选择
- •展示摘要:加载后先展示摘要,确认是否需要深入
- •提示相关文件:如果记忆中有"需要加载的文件",询问是否读取
与用户协作
- •不要过度打扰:不是每次对话都需要提醒保存
- •尊重用户选择:用户拒绝保存时不要反复提醒
- •主动但不强制:建议是建议,最终由用户决定