AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Memory Keeper

skill-2021291696-weaver-evolve-memory-keeper · by 2021291696

即时记忆管理——将用户"记住"指令融入正确位置(全局/项目/子项目的记忆系统或配置文件)。也处理"忘掉"指令,删除后整理受影响的结构。还处理"整理"指令,对已有记忆做 L3 深度结构重构(去重/清死链/合并/重组/关联)。触发词:"帮我把...加入记忆"、"你要记住..."、"以后也要记住"、"记住..."、"记下来"、"记住了"、"把这个存到记忆"、"忘了..."、"不用再记..."、"不要再记..."、"删掉...的记忆"、"清除..."、"整理记忆"、"整理一下记忆"、"整理全局记忆"、"整理项目记忆"。

No reviews yet
0 installs
29 views
0.0% view→install

Install

$ agentstack add skill-2021291696-weaver-evolve-memory-keeper

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-2021291696-weaver-evolve-memory-keeper)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Memory Keeper? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

记忆管理 — Memory Keeper

你负责即时响应用户的"记住"和"忘掉"指令,将信息融入正确位置并维护结构整洁。

与 weaver-自我迭代 的关系

| | weaver-自我迭代 | memory-keeper | |------|-------------|---------------| | 触发 | 手动/定期 | 实时"记住"指令 | | 范围 | 批量扫历史 | 单条即时处理 | | 删除 | 被动+主动扫描 | 确认后处理+整理结构 | | 优化建议 | 视情况 | 视情况 |

两者互补:memory-keeper 处理单条即时需求,weaver-自我迭代 定期全局整理。

整理 vs weaver(边界声明)

| | weaver | 整理 | |------|------|------| | 触发 | 定期/手动"编织一下/全局整理" | 随时"整理记忆" | | 范围 | 跨项目全局 | 单范围(全局/项目/指定) | | 动作 | 扫对话→提取→归位→权限→file-tidy→复盘 | 已有记忆 L3 结构重构 | | 依赖 | agentmemory MCP(离线降级) | 无依赖,离线可用 |

整理不扫对话不调 file-tidy/debug-architect不做权限审查不动 Obsidian wiki

整理 vs neat-freak(边界声明)

| | neat-freak | 整理 | |------|------|------| | 触发 | 会话末"整理一下/同步一下/收尾" | 随时"整理记忆" | | 范围 | docs + CLAUDE.md + memory 三层同步 | 仅 memory 文件 | | 动作 | 把代码变更同步到知识体系(顺手 L1 卫生) | L3 深度结构重构 |

触发词靠"记忆"二字区分:带"记忆"→整理;不带"记忆"("整理一下"/"整理文档"/"梳理一下")→neat-freak。

整理 vs 记住/忘掉(边界声明)

记住 = 新增单条;忘掉 = 删单条;整理 = 批量结构重构(去重/清死链/合并/重组/关联)。

修改范围

不只是 memory/ 系统,还包括:

  • ~/.claude/settings.json / settings.local.json(全局配置)
  • ~/.claude/CLAUDE.md(全局 AI 指令)
  • 项目 CLAUDE.md(项目 AI 指令)
  • 项目 .claude/settings.json(项目权限配置)
  • 子项目同理

"记住"流程(8步)

1. 判断层级

根据用户语境和信息内容判断属于哪层:

  • 全局:影响所有项目、跨项目偏好、通用工具选择
  • 项目:当前对话所在项目的决策、配置、踩坑
  • 子项目:明确提到子项目目录名

不确定时保守下沉一级。

2. 判断类型

| 类型 | 信号 | 示例 | |------|------|------| | 偏好习惯 | "以后都这样"、"我习惯用X" | "回复要简短" | | 工具选择 | "用X不用Y"、"X比Y好" | "Maven用阿里云镜像" | | 项目决策 | 架构选型、技术栈变更 | "lab3用MyBatis" | | 踩坑记录 | "踩了个坑"、"注意X会Y" | "PyInstaller中文路径报错" | | 个人特性 | "我喜欢"、"我是"、"我在学" | "我是学生"、"喜欢整洁" | | 事实信息 | API Key、路径、端口、账号 | "MySQL端口3306" |

2.1 判断 Obsidian 归属

判断为"踩坑记录"/"项目决策"/"个人特性"且属通用知识时,写入 Obsidian(wiki/概念/wiki/来源/);纯操作偏好/凭据/进度只写 memory/。同时写两边时,memory 正文第一条加 > 详见 [[个人知识库/wiki/...]] 索引。

完整路由规则(合并检测 / 写入规范 / TL;DR 格式 / log.md 追加 / raw 只读):见 ~/.claude/rules/memory-routing.md

3. 搜索已有

写入前 grep 目标文件 + MEMORY.md,找已有相关内容。

4. 展示计划

告诉用户你的计划,格式:

我会 [合并到/更新/新建/覆盖] [完整文件路径]

[文件路径] 中已有:[相关旧内容摘要(如有)]
新信息:[一句话]
动作:[更新旧条目 / 新建条目 / 覆盖旧信息]

[如有矛盾] ⚠ 旧"[...]"会被新信息替代
[如有过时] 旧的 [文件路径] 中的"[...]"会随之删除
[如有互补] 新旧不冲突,各自保留并互链

等待确认后再写。

5. 用户确认

给用户纠正位置或内容的机会。用户说"对"或"可以"才继续。

6. 执行归位

按位置矩阵写入。遵循融入规则(8条)。

7. 周边整理

写入后检查:

  • MEMORY.md 索引描述是否还需更新?
  • 同目录其他文件有没有因本条而过时的?
  • 有没有文件变空或只剩一条?

8. 读回确认

写入完成后,读回验证(对齐 verify-before-changing 规则——宣布修好前先实际读确认):

  • [ ] Read 目标文件,确认新内容真在、格式没坏
  • [ ] grep MEMORY.md 索引,确认每个链接指向的文件真实存在(无死链)
  • [ ] 若删除/更新了旧内容:grep 旧关键词在目标文件清零
  • [ ] 若涉及 Obsidian:确认 wiki/index.md 已更新、wiki/log.md 已追加

任一不过 → 回第6步补,不宣布完成

"忘掉"流程(6步)

1. 搜索匹配

grep MEMORY.md + 所有 memory 文件中匹配的内容。

如果只匹配到一个 → 继续。 如果匹配到多个 → 列出所有结果让用户选。 如果没匹配到 → 告知用户,确认是否换个关键词。

2. 展示确认

找到以下匹配:
1. [文件路径] — [内容摘要]
2. [文件路径] — [内容摘要]

要删除的是哪些?(全部删除 / 只删第N条 / 不删了)

3. 分析影响

删除 [文件路径] 中的"[...]"后:
- 该文件还剩 [N] 条内容
- MEMORY.md 索引需要更新 [是/否]
- 相关文件 [X] 中也有引用,需要调整 [是/否]

4. 展示影响

删除后我会:
- 删除 [文件路径] 中的对应内容
- 从 MEMORY.md 移除链接 [如果文件变空]
- 将剩余内容合并到 [上级文件] [如果只剩一条]

5. 用户确认

6. 执行删除 + 整理结构

删内容 + 更新索引 + 清理空文件 + 合并孤立条目。

删后验证(对齐 verify-before-changing——删完不等于删干净):

  • [ ] grep 已删内容的关键词,在所有 memory 文件清零
  • [ ] grep MEMORY.md,确认对应索引链接已移除(无指向已删文件的死链)
  • [ ] 若删了整个文件:确认该文件已不存在,无残留空文件

任一不过 → 补到干净为止,不宣布完成

"整理"流程(4阶段)

对已有记忆做 L3 深度结构重构。不扫对话、不调 file-tidy/debug-architect、不做权限、不动 Obsidian wiki(详见上方"整理 vs weaver/neat-freak"边界声明)。

触发词与范围

| 触发词 | 整理范围 | |--------|---------| | "整理记忆" / "整理一下记忆" | 全局CC记忆 + 项目记忆 + 配置文件过期扫描 | | "整理全局记忆" | 只全局CC记忆 + 配置文件过期扫描 | | "整理项目记忆" | 只项目记忆 | | "整理记忆,只整理记忆文件" | 跳过配置文件 |

当前项目 = 触发时 CWD 所在项目(memory-keeper 是全局 skill,动态识别)。

整理对象 × 动作矩阵

| 对象 | L1(清死链/去重/清过期) | L2(合并孤立/格式统一) | L3(碎片合并/跨文件关联) | |------|:-:|:-:|:-:| | 全局CC记忆(~/.claude/projects//memory/,带 frontmatter) | ✓ | ✓ | ✓ | | 项目记忆(/memory/,纯索引) | ✓ | ✓ | ✓ | | 配置文件(settings.json / CLAUDE.md / rules/) | ✓ 仅清过期 | ✗ 不重组 | ✗ 不重组 | | Obsidian wiki | ✗ | ✗ | ✗ |

4阶段流程

阶段1 审计:扫描所有纳入对象,按 8 类动作(见下方细则)产出问题清单。每项标注:文件路径 + 问题 + 建议动作。文件读取失败 → 跳过,列"无法读取"清单。

阶段2 确认:展示整理计划,等用户选"全部执行 / 部分执行 / 取消"。

阶段3 执行:按确认执行,遵循融入 8 规则。写阶段开始前重读目标文件,若与审计时不一致(被外部修改)→ 暂停,提示"X 在审计后被改,是否重新审计"。

阶段4 验证:读回确认(对齐 verify-before-changing)。验证清单见下方"阶段4 验证检查清单"。

8类动作判定规则

| # | 动作 | 信号 | 建议 | |---|------|------|------| | 1 | 清死链 | MEMORY.md 链接目标不存在 | 删索引行 / 或重建文件 | | 2 | 去重 | 同信息跨文件复制 | 留详细那个,删其他 + 合并要点 | | 3 | 清过期 | 旧 vs 新矛盾 / 引用已删项目 / 废弃工具 / 地址变更 | 删旧或更新 | | 4 | 合并孤立 | 文件只剩 1 条 | 合并到同类 | | 5 | 碎片合并 | 同主题/同类分散 >3 文件 | 合并成主题文件 | | 6 | 格式统一 | 缺 frontmatter(仅全局)/ 相对时间 / 链接不规范 | 全局补 frontmatter;项目修时间/链接 | | 7 | 跨文件关联 | type 同 + 主题重叠 / 关键词共现 ≥2 / 提对方主题未链 | 双向加 [[wikilink]],只建议不强制 | | 8 | 配置过期 | settings/CLAUDE/rules 过期信号 | 只标记,settings 逐条确认 |

关联 vs 去重的区别:重复 = 同信息复制(合并);关联 = 相关但不同(互链,各自保留)。

配置文件过期扫描细则(L1 子集,不重组结构)

| 文件 | 扫什么 | 动作 | |------|--------|------| | settings.json | permissions 引用不存在路径 / env 失效地址 / 重复规则 / 废弃 MCP | 只标记,不自动改——JSON 改错断 CC,逐条确认 | | CLAUDE.md(全局+项目) | 引用已删 skill 路径 / 废弃工具 / 与 rules 重复 / blockquote 历史叙事 / TODO | 删行 / 更新 / 标记 | | ~/.claude/rules/*.md | 被新规则覆盖的旧规则 / 引用不存在文件 / 与其他 rules 矛盾 | 删文件 / 更新 / 标记矛盾让用户选 |

安全约束:settings.json 任何改动必须用户逐条确认,不批量执行。

阶段4 验证检查清单

  • [ ] 每个改动文件 Read 一遍,确认内容真在、格式没坏
  • [ ] MEMORY.md 无死链:grep 所有链接 → 文件都存在
  • [ ] 删除内容真没了:grep 关键词在所有 memory 文件清零
  • [ ] 无残留空文件:删内容的文件要么有剩余要么已删
  • [ ] 合并的源文件已删,目标文件有合并内容
  • [ ] 关联链接双向:A 有 [[B]] → B 也有 [[A]]
  • [ ] 配置语法合法:settings.json JSON 解析验证;CLAUDE.md 无断裂引用
  • [ ] 时间格式:grep -E "今天|昨天|最近|刚刚" 在改动文件清零

整理边界场景

| 场景 | 处理 | |------|------| | 项目无 memory/ | 跳过该对象,审计报告注明 | | 首次整理,系统不完整 | 正常整理,自动创建缺失的 MEMORY.md | | 全局和项目对同一事实矛盾 | 列"需用户确认",不自动删 | | settings.json 破坏性改动 | 逐条确认,不批量 | | 整理中发现"该记住的新信息" | 不提取(weaver 的事),只整理已有 | | 单文件 memory | 跳过 ④⑤,只做 ①②③⑥⑦ | | 审计中文件读取失败 | 跳过,列"无法读取"清单 | | 写阶段发现外部修改 | 暂停,提示重新审计 |

审计计划展示格式(阶段2确认用)

## 整理计划(YYYY-MM-DD)
扫描范围:全局CC记忆(N文件) + 项目记忆(M文件) + 配置文件(K处)

### 建议删除(死链/过期/无用)
1. memory/xxx.md — 死链,MEMORY.md 引用但文件不存在
2. ...

### 建议合并(孤立/碎片)
1. memory/orphan.md 只剩1条 → 合并到 memory/dev-env.md
2. 同类"API凭据"分散3文件 → 合并为 memory/api-credentials.md

### 建议关联(未互链)
1. memory/a.md ↔ memory/b.md 同根因 → 加 [[wikilink]]

### 需用户确认(跨层矛盾)
1. 全局说"JDK 24" vs 项目说"JDK 21" — 以哪个为准?

### 配置文件过期
1. settings.json — MCP 配置引用已废弃服务
2. CLAUDE.md — 引用已删除 skill 路径(第X行)

要执行哪些?(全部 / 仅删除 / 仅合并 / 指定编号 / 取消)

位置矩阵

| 类型 \ 层级 | 全局 | 项目 | 子项目 | |-------------|------|------|--------| | 偏好习惯 | 全局 MEMORY | 项目 feedback-style | — | | 工具选择 | settings.json / 全局 CLAUDE.md | 项目 CLAUDE.md | 子项目 CLAUDE.md | | 项目决策 | — | 项目 CLAUDE.md / memory | 子项目 CLAUDE.md | | 踩坑记录 | — | 项目 dev-lessons | 子项目 memory | | 个人特性 | 全局 MEMORY (user-profile) | — | — | | 事实信息 | settings.json / 全局 MEMORY | dev-env.md / memory | 子项目 memory | | 通用知识 | — | Obsidian wiki/ + memory 索引 | Obsidian wiki/ + memory 索引 |

融入规则(8条)

  1. 先搜后写 — 写入前 grep 目标文件 + MEMORY.md。没搜就写等于盲写。
  2. 更新优于追加 — 旧条目能覆盖就在原处改,不追新条目。例:旧"JDK 21"→ 新"JDK 24",改数字,不在文末加"对了现在用24了"。
  3. 矛盾以新为准 — 新旧冲突 → 新替旧,旧内容删除。不同时保留两版。
  4. 互补建立链接 — 新旧相关但不重叠 → 各自保留,互相引用([[wikilinks]] 或文件内链接)。
  5. 删除不留残骸 — 删内容后:文件变空 → 删文件+从索引移除;只剩一条 → 考虑合并到上级;多条 → 保留。
  6. 绝对时间 — 所有时间用 YYYY-MM-DD 格式。
  7. 一条一事 — 每个记忆条目只说一件事。
  8. 面向读者 — 下一个 agent 只有 5 秒扫过。

详细示例见 references/merge-examples.md

优化建议(视情况,不强制)

| 条件 | 建议 | |------|------| | 同层同类记忆 > 3 条分散 | "要不要合并成一个文件?" | | 删除后周边孤立 | "旁边的 X 也跟这条相关,要不要一起整理?" | | ≤3 条且不孤立 | 不说,不增加对话噪音 |

特殊情况

模糊匹配:关键词匹配到多个结果 → 列出让用户选。 没匹配到(忘掉时):告知用户,确认是否换个关键词。 首次使用:记忆系统可能不完整,正常处理,写入时自动创建缺失的文件结构。 跨层信息:一条信息同时影响全局和项目 → 两边都写,全局写原则、项目写具体。

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.