name: session-memory description: “管理跨会话的学习和记忆持久化。当用户询问之前的会话、历史或继续之前时使用。不要用于:实现工作、审查或临时信息。” description-en: “管理跨会话的学习和记忆持久化。当用户询问之前的会话、历史或继续之前时使用。不要用于:实现工作、审查或临时信息。” description-ja: “管理跨会话的学习和记忆持久化。当用户询问之前的会话、历史或继续之前时使用。不要用于:实现工作、审查或临时信息。” allowed-tools: [“读取”, “写入”, “追加”] user-invocable: false
会话记忆技能
管理跨会话的学习和记忆的技能。 记录和参考过去的工作内容、决定事项、学到的模式。
触发短语
这个技能在以下短语时自动启动:
- 「上次做了什么?」「从上次继续」
- 「显示历史」「过去的工作」
- 「关于这个项目告诉我」
- “我们上次做了什么?”, “从之前继续”
概述
这个技能在 .claude/memory/ 中保存工作历史,
实现在会话间的知识连续性。
同时,明确重要信息应该"留在哪里"(详情: docs/MEMORY_POLICY.md)。
内存结构
.claude/
├── memory/
│ ├── session-log.md # 每个会话的日志
│ ├── decisions.md # 重要的决定事项
│ ├── patterns.md # 学到的模式
│ └── context.json # 项目上下文
└── state/
└── agent-trace.jsonl # Agent Trace(工具执行历史)
推荐运营(SSOT/本地分离)
- SSOT(共享推荐):
decisions.md/patterns.md- 聚合"决定(Why)“和"可重用的解决方案(How)”
- 每个条目添加 标题 + 标签(例如:
#decision #db),并在开头放置 索引
- 本地推荐:
session-log.md/context.json/.claude/state/- 由于容易产生噪声/膨胀,基本不进行 Git 管理(必要时个别判断)
自动记录的信息
session-log.md
每个会话记录利用 ${CLAUDE_SESSION_ID} 环境变量附加会话ID。
从而提高会话间的可追溯性。
## 会话: 2024-01-15 14:30 (session: abc123def)
### 执行的任务
- [x] 用户认证功能的实现
- [x] 登录页面的创建
### 生成的文件
- src/lib/auth.ts
- src/app/login/page.tsx
### 重要的决定
- 认证方式: 采用 Supabase Auth
### 交接给下次
- 登出功能未实现
- 密码重置也需要
注意:
${CLAUDE_SESSION_ID}是 Claude Code 自动设置的环境变量。 每个会话分配唯一ID,有助于日志追踪和问题调查。
decisions.md
## 技术选型
| 日期 | 决定事项 | 理由 |
|------|---------|------|
| 2024-01-15 | Supabase Auth | 有免费额度,设置简单 |
| 2024-01-14 | Next.js App Router | 最新的最佳实践 |
## 架构
- 组件: `src/components/`
- 工具: `src/lib/`
- 类型定义: `src/types/`
patterns.md
## 这个项目的模式
### 组件命名
- PascalCase
- 例如: `UserProfile.tsx`, `LoginForm.tsx`
### API 端点
- `/api/v1/` 前缀
- RESTful 设计
### 错误处理
- 用 try-catch 包围
- 错误消息使用日语
context.json
{
"project_name": "my-blog",
"created_at": "2024-01-14",
"stack": {
"frontend": "next.js",
"backend": "next-api",
"database": "supabase",
"styling": "tailwind"
},
"current_phase": "阶段2: 核心功能",
"last_session": "2024-01-15T14:30:00Z"
}
处理流程
会话开始时
- 读取
.claude/memory/context.json - 检查上次的会话日志
- 从 Agent Trace 获取最近的编辑历史
- 识别未完成的任务
- 生成上下文摘要
Agent Trace 活用:
# 获取上次的编辑文件列表
tail -50 .claude/state/agent-trace.jsonl | jq -r '.files[].path' | sort -u
# 获取项目信息
tail -1 .claude/state/agent-trace.jsonl | jq '.metadata'
会话中
- 记录重要的决定到
decisions.md - 添加新的模式到
patterns.md - 记录文件生成到
session-log.md
会话结束时
- 生成会话摘要
- 更新
context.json - 记录交接给下次的事项
内存优化(CC 2.1.49+)
Claude Code 2.1.49 以后,会话重启时的内存使用量减少了 68%。
推荐工作流
# 长时间工作活用 --resume
claude --resume
# 大规模任务分割后会话重启
claude --resume "从继续"
| 场景 | 推荐 |
|---|---|
| 长时间实现 | 每1-2小时会话重启 |
| 大规模重构 | 按功能单元会话分割 |
| 内存不足警告 | 立即用 --resume 重启 |
💡 内存效率大幅改善,请积极活用会话重启。
使用例子
从上次的继续开始
用户: 「从上次继续」
Claude Code:
📋 上次的会话(2024-01-15)
完成的任务:
- 用户认证功能
- 登录页面
未完成:
- 登出功能
- 密码重置
说「创建登出功能」的话,就继续实现。
项目状况确认
用户: 「关于这个项目告诉我」
Claude Code:
📁 项目: my-blog
技术堆栈:
- Next.js + Tailwind CSS + Supabase
当前阶段: 核心功能开发
进度: 40% 完成
最近的決定:
- 采用 Supabase Auth
- 使用 App Router
Claude Code 自动内存的关系(D22)
Claude Code 2.1.32+ 有"自动内存"功能,在 ~/.claude/projects/<project>/memory/MEMORY.md 中自动保存会话间的学习。
与 Harness 的内存系统作为3层架构共存:
| 层 | 系统 | 内容 | 管理 |
|---|---|---|---|
| Layer 1 | Claude Code 自动内存 | 通用的学习(错误避免、工具使用方法) | 隐式・自动 |
| Layer 2 | Harness SSOT | 项目特定的决定事项・模式 | 显式・手动 |
| Layer 3 | Agent Memory | 代理别的任务学习 | 代理定义 |
使い分け:
- Layer 1 的见解对整个项目重要 → 用
/memory ssot升级到 Layer 2 - 日常的学习交给 Layer 1(不要禁用)
- 使用 Agent Teams 时注意并行写入
详情: D22: 3层内存架构
注意事项
- 自动保存: 推荐通过
hooks/Stop在会话结束时自动追加摘要到session-log.md的运营(未导入时手动运营OK) - 隐私: 不记录机密信息
- Git方针:
decisions.md/patterns.md推荐共享,session-log.md/context.json/.claude/state/推荐本地(详情:docs/MEMORY_POLICY.md) - 容量管理: 日志变大后推荐「整理会话日志」