Install
openclaw skills install @alps9999/memory-auditAI 记忆机制体检——扫描记忆目录与会话日志,算出每条记忆的真实使用度,出「核心/沉淀/待查/冷舱」分档与优化清单,并检查索引悬空、未覆盖、常驻层失配。只读不修改。触发词:记忆体检、记忆审计、记忆整理、索引太肥、哪些记忆没在用、memory review、记忆运维。
openclaw skills install @alps9999/memory-audit给一套 AI 记忆库做体检:哪些在真正被用、哪些在占位置、哪些放错了层、索引有没有坏。
只读。不改任何记忆文件。
| 指标 | 权重 | 怎么算 |
|---|---|---|
| H 命中度 | 0.40 | 会话日志里对该文件的真实 Read 调用次数 + 出现在多少个不同会话 |
| R 引用度 | 0.30 | 被索引(×2)+ 被其他记忆 [[wikilink]] 引用 + 被常驻规则文件提及(上限 3) |
| C 变更度 | 0.20 | git 提交次数,按最大值归一 |
| T 时效度 | 0.10 | 距最后一次内容提交的天数 |
score = 0.4·H + 0.3·R + 0.2·C + 0.1·T
为什么 H 占 40%:另外三个都能被写作者的行为伪造(爱加链接就 R 高、批量改格式就 C 高);只有"真的打开读了"是真实选择。
python3 ~/.claude/skills/memory-audit/audit.py \
--memory $HOME/.claude/projects/<project-id>/memory \
--sessions $HOME/.claude/projects/<project-id> \
--spec $HOME/CLAUDE.md \
--json /tmp/audit.json \
--html ~/Projects/ai-memory/audit-report.html
| 参数 | 说明 |
|---|---|
--memory | 记忆目录(默认当前目录) |
--index | 索引文件名,默认 MEMORY.md |
--spec | 常驻层文件(CLAUDE.md / .cursorrules / AGENTS.md) |
--sessions | 会话日志目录,找 *.jsonl |
--session-limit | 只扫最近 N 个会话 |
--json / --html | 导出 |
| 分档 | 判定 | 动作 |
|---|---|---|
| 核心 | 高分 + 90 天内有变更 | 留索引,确保常驻层有引用 |
| 沉淀 | 高分 + ≥90 天无变更 | 升 reference,撤索引行 |
| 待查 | 其余 | 不动("暂时不知道"是常态) |
| 冷舱 | 低分 + >300 天无变更 | 移 archive/ |
铁律:只出清单,不自动改。 记忆的删除 / 合并 / 降级必须人确认。
| 病灶 | 表现 | 处方 |
|---|---|---|
| 僵尸记忆 | reads = 0,但占着索引 | 撤索引行,文件留着 |
| 放错层 | 行为红线从未被读过,也不在常驻文件里 | 提升到 --spec 文件 |
| 索引腐烂 | 悬空引用、索引体积膨胀 | 删悬空行;高分条目撤出索引 |
reads 抬高。做趋势对比时要么排除本次会话,要么接受每次体检都有系统性偏高。
实测:同一份记忆库,两次体检"从未读取数"从 68 变成 56,差额主要是体检过程中读掉的。
目前只解析 Claude Code 的会话 jsonl(message.content[].type == "tool_use" + name == "Read" + input.file_path)。
换 Cursor / Copilot 需要改 scan_reads() 里的解析逻辑——这是产品化的主要工程成本,格式各家不同且会变。
type: project + 一段"下次体检条件"