会话记忆技能Skill session-memory

这个技能用于管理和记录跨会话的学习和记忆,支持AI代理在软件开发或AI项目中的决策、模式记录和上下文管理,提高开发效率和知识持续性。关键词:跨会话学习、记忆管理、AI代理、Claude Code、项目管理、人工智能工具。

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

name: session-memory description: “管理跨会话的学习和记忆持久化。当用户询问以前的会话、历史记录或从前继续时使用。不要用于:实施工作、审查或临时信息。” description-en: “管理跨会话的学习和记忆持久化。当用户询问以前的会话、历史记录或从前继续时使用。不要用于:实施工作、审查或临时信息。” description-ja: “管理跨会话的学习和记忆持久化。当用户询问以前的会话、历史记录或从前继续时使用。不要用于:实施工作、审查或临时信息。” allowed-tools: [“读取”, “写入”, “追加”] 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   # 代理跟踪(工具执行历史)

推荐操作(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. 从代理跟踪获取最近的编辑历史
  4. 识别未完成的任务
  5. 生成上下文摘要

代理跟踪活用:

# 获取上次编辑的文件列表
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 代理内存 代理特定的任务学习 代理定义

使用区分:

  • 层1 的见解对整个项目重要 → 用 /memory ssot 提升到层2
  • 日常学习委托给层1(不禁用)
  • 使用代理团队时注意并行写入

详情: D22: 3层内存架构


注意事项

  • 自动保存: 推荐通过 hooks/Stop 在会话结束时自动追加摘要到 session-log.md 的操作(未引入时手动操作即可)
  • 隐私: 不记录机密信息
  • Git策略: decisions.md/patterns.md推荐共享,session-log.md/context.json/.claude/state/推荐本地(详情: docs/MEMORY_POLICY.md
  • 容量管理: 日志变大时推荐"整理会话日志"