会话记忆管理技能Skill session-memory

这个技能用于管理AI工具或软件开发中的会话间学习和记忆持久化,通过记录会话历史、决策事项和学到的模式,支持连续工作和项目跟踪。关键词:会话记忆、学习持久化、AI代理、记忆管理、项目上下文、自动化日志、决策记录、模式学习。

AI智能体 0 次安装 0 次浏览 更新于 3/10/2026

name: session-memory description: “管理会话间的学习和记忆持久化。当用户询问关于之前的会话、历史或从之前继续时使用。不要加载用于:实施工作、审查或临时信息。” description-en: “Manages cross-session learning and memory persistence. Use when user asks about previous sessions, history, or to continue from before. Do NOT load for: implementation work, reviews, or ad-hoc information.” description-ja: “管理会话间的学习和记忆持久化。当用户询问关于之前的会话、历史或从之前继续时使用。不要加载用于:实施工作、审查或临时信息。” allowed-tools: [“Read”, “Write”, “Append”] user-invocable: false

会话记忆技能

管理会话间学习和记忆的技能。 记录和参考过去的工作内容、决策事项、学到的模式。


触发短语

这个技能在以下短语时自动启动:

  • 「上次做了什么?」「从上一次继续」
  • 「显示历史」「过去的工作」
  • 「关于这个项目告诉我更多」
  • “what did we do last time?”, “continue from before”

概述

这个技能将工作历史保存在 .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"
}

处理流程

会话开始时

  1. 读取 .claude/memory/context.json
  2. 检查上一次的会话日志
  3. 从 Agent Trace 获取最近的编辑历史
  4. 识别未完成任务
  5. 生成上下文摘要

Agent Trace 使用:

# 获取上一次的编辑文件列表
tail -50 .claude/state/agent-trace.jsonl | jq -r '.files[].path' | sort -u

# 获取项目信息
tail -1 .claude/state/agent-trace.jsonl | jq '.metadata'

会话中

  1. 重要决定记录到 decisions.md
  2. 新模式添加到 patterns.md
  3. 文件生成记录到 session-log.md

会话结束时

  1. 生成会话摘要
  2. 更新 context.json
  3. 记录下一次的交接事项

记忆优化(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层架构共存:

系统 内容 管理
层1 Claude Code 自动记忆 通用的学习(错误避免、工具用法) 隐式·自动
层2 Harness SSOT 项目特定的决定事项·模式 显式·手动
层3 Agent Memory 代理特定的任务学习 代理定义

区分使用:

  • 层1 的知识对项目整体重要 → 用 /memory ssot 提升到层2
  • 日常学习交给层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
  • 容量管理: 日志变大时推荐说「整理会话日志」