mcpField
M
memory

memory

github.com/jeremylongshoreAgent 工作流2.9k37 次安装2 天前更新
代码仓库

关于 memory

面向 Claude Code 的技能,将项目决策、偏好和编码约定存入本地 JSON 文件。它会在后续会话重新载入记忆,并将相关上下文用于当前工作。

主要功能

  1. 01跨会话保留项目上下文
  2. 02会话开始时自动载入记忆
  3. 03记录带时间戳的记忆
  4. 04使用命令查看、添加和删除记忆
  5. 05清理低价值条目

适用场景

  1. 01在新会话沿用编码偏好
  2. 02应用过往架构或库的选择
  3. 03记录用户纠正以供后续任务参考

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jeremylongshore/tons-of-skills-marketplace --skill memory

安装后在 Claude Code 中输入/memory确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
errors.md
examples.md
implementation.md
scripts/
manage-memory.py

详细介绍

记忆

概述

记忆通过在本地 JSON 文件中存储和检索项目决策、用户偏好和编码约定,为不同的 Claude Code 会话提供持久上下文。新会话开始时,已存储的记忆会自动加载,让此前确立的模式得以延续,无需再次说明。

先决条件

  • 项目记忆文件 .claude/memories/project_memory.json(首次保存记忆时自动创建)
  • 对 .claude/memories/ 目录具有读写权限
  • 已安装 Claude Never Forgets 插件(/plugin install yldrmahmet/claude-never-forgets)

说明

  1. 访问已存储的记忆。 会话开始时,使用 Read 工具找到并读取记忆文件 .claude/memories/project_memory.json。解析包含带时间戳记忆条目的 JSON 结构。完整的检索工作流请参见 ${CLAUDE_SKILL_DIR}/references/implementation.md。
  2. 将记忆与当前上下文匹配。 扫描记忆条目,查找与当前任务相关的关键词和主题。提取适用的决策(例如“使用 pnpm 而不是 npm”)、架构模式、库选择和编码风格偏好。
  3. 静默应用记忆。 在回复和工具使用中融入记忆的偏好,无需声明。当记忆指定了包管理器、测试框架或命名约定时,自动遵循。
  4. 存储新记忆。 出现重要决策时——例如库选择、架构选择、用户明确表达的偏好或对工具的否决——将其连同时间戳写入记忆文件。通过 /remember 命令或自动捕获对话中的相关信息来添加条目。
  5. 解决冲突。 当已存储的记忆与当前明确请求相矛盾时,以当前请求为准。必要时指出冲突,并更新记忆条目以反映新的决策。删除不再适用的过时记忆。
  6. 处理清理。 当记忆条目超过 10 条时,通过删除无关内容(问候、致谢)并保留高价值条目(偏好、决策、更正)进行整理。清理阈值可在 hooks/stop_cleanup.py 中配置。

输出

  • 在会话开始时自动加载已存储的记忆
  • 将记忆中的偏好静默应用于工具使用和回复
  • 为重要决策添加带时间戳的新记忆条目
  • 清理后合并整理的记忆文件(保留重要条目,删除无关内容)
  • 通过 /memories 命令明确列出记忆

错误处理

错误原因解决方案
未找到记忆文件首次会话或文件已删除在 .claude/memories/project_memory.json 创建新的记忆文件,并使用空 JSON 结构初始化
记忆冲突多个条目彼此矛盾应用最新的记忆;建议使用 /forget 清理并删除过时条目
记忆格式无效文件损坏或手动编辑时出现语法错误备份现有文件,使用有效的 JSON 结构重新创建,并恢复可恢复的条目
权限被拒绝文件或目录缺少读写权限检查 .claude/memories/ 的文件权限;申请必要的访问权限或使用其他存储位置

示例

跨会话自动回忆偏好:

Session 1:
User: "Always use Vitest instead of Jest for this project"
→ Stored to project_memory.json

Session 2:
User: "Add tests for the auth module"
→ Memory loaded: "use Vitest instead of Jest"
→ Test files created with Vitest syntax automatically

手动管理记忆:

/remember "This project uses Tailwind CSS v4 with the Vite plugin"
/remember "Deploy to Cloudflare Workers, not Vercel"
/memories          # Lists all stored memories with timestamps
/forget "Vercel"   # Removes the Vercel-related memory

将工具否决记录为更正:

set -euo pipefail
User declines a suggested `npm install` action
→ Memory stored: "User prefers pnpm over npm"
→ Future sessions use pnpm automatically

资源

  • ${CLAUDE_SKILL_DIR}/references/implementation.md -- 访问、应用、更新记忆及解决记忆冲突的分步指南
  • ${CLAUDE_SKILL_DIR}/references/errors.md -- 详细的错误场景及恢复流程
  • /remember [text] -- 手动添加新的记忆条目
  • /forget [text] -- 从存储中删除匹配的记忆
  • /memories -- 显示当前存储的所有记忆及其时间戳

评论

支持 Markdown