用途
Memory Defrag 用于重组记忆文件,使其更清晰、高效、相关。它被描述为“像文件系统碎片整理,但针对的是知识”。
何时运行
- 周期性:通过 cron 每周或每两周运行(推荐)。
- 按需:用户要求清理、重组或整理记忆时。
- 阈值触发:当 MEMORY.md 超过约 500 行,或每日笔记不断累积而未整合时。
处理流程
1. 审计当前状态
清点所有记忆文件:
- MEMORY.md — 长期记忆
- memory/ — 每日笔记、任务、主题文件
- memory/tasks/ — 进行中和已完成的任务
对每个文件记录:行数、最后修改时间、主题覆盖范围、陈旧程度。
2. 识别问题
常见问题及对应处理:
- 文件臃肿:超过 300 行、覆盖多个主题 → 拆分为聚焦文件。
- 信息重复:同一事实出现在多处 → 合并到一处。
- 条目过期:引用已完成工作、旧日期、已解决问题 → 删除或归档。
- 孤立文件:memory/ 中从未被引用或更新的文件 → 审查、合并或移除。
- 不一致:文件间信息矛盾 → 以事实为准解决。
- 组织混乱:相关信息散落各文件 → 按主题重构。
- 递归嵌套:出现 memory/memory/memory/... 目录 → 删除嵌套目录(索引器 bug 产物)。
3. 制定计划
编辑前先写简要计划,例如:
## Defrag Plan
- [ ] Split MEMORY.md "Key People" section → memory/people.md
- [ ] Remove completed tasks older than 30 days from memory/tasks/
- [ ] Merge memory/bm-marketing-ideas.md into memory/competitive/
- [ ] Update stale project status entries in MEMORY.md
4. 执行
一次应用一项更改:
- 拆分:从大文件中提取章节到聚焦的主题文件。
- 合并:将相关小文件合并为连贯文档。
- 修剪:移除不再相关或准确的信息。
- 重构:将文件移动到合适目录,重命名以更清晰。
- 更新:修正过时的事实、日期、状态。
5. 验证与记录
更改后:
- 验证没有信息丢失(对比前后)。
- 更新文件间的交叉引用。
- 在当天每日笔记中记录所做操作,例如:
## Memory Defrag (HH:MM)
- Files reviewed: N
- Split: [list]
- Merged: [list]
- Pruned: [list]
- Net result: X files, Y total lines (was Z lines)
指南
- 保留原始每日笔记。不要删除或修改 memory/YYYY-MM-DD.md 文件——它们是审计线索。
- 目标为 15-25 个聚焦文件。太少意味着文件臃肿;太多意味着碎片化。
- 文件名应便于浏览。使用描述性名称:people.md、project-status.md、competitive-landscape.md,而不是 notes-2.md。
- 不要过度组织。通常一层目录就足够。memory/tasks/ 和 memory/competitive/ 可以;memory/work/projects/active/basic-memory/notes/ 不行。
- 已完成任务:状态为 done 且超过 14 天的任务可以移除。其洞见应已通过反思进入 MEMORY.md。
- 破坏性更改前先询问。如果不确定信息是否仍然相关,保留并标记 (review needed),而不是删除。