# Smart Memory Guard

> 智能记忆管理 — 防膨胀、防漂移、分类写入。解决记忆文件无限增长、过时记忆误导行动、什么都记导致噪音太多的问题。适用于所有 OpenClaw Agent。触发条件：(1) 写入 MEMORY.md 前自动执行分类检查 (2) 基于记忆行动前验证漂移 (3) heartbeat 时检查膨胀 (4) 被主人说"记忆太乱了"时。灵感源自 Claude Code Memory 系统设计。

- Skill: `kadaliao/smart-memory-guard` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add kadaliao/smart-memory-guard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kadaliao/smart-memory-guard/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: kadaliao (https://skillmd.com/u/kadaliao)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/kadaliao/smart-memory-guard

---


# Smart Memory Guard

## 一、记忆四类型分类

写入记忆前，先判断属于哪一类：

| 类型 | 内容 | 示例 |
|---|---|---|
| `user` | 主人的角色/偏好/知识/习惯 | "bobooo 偏好 CC 做复杂任务" |
| `feedback` | 主人的纠正/确认 | "不要自动规划任务" |
| `project` | 进行中的项目/目标/决策 | "ClawHunt 内测中" |
| `reference` | 外部系统/工具的指针 | "RunningHub API Key 在 personal-secrets.json" |

## 二、绝对不记的内容（NOT-to-save 列表）

以下内容**即使主人说"记住"也不存入 MEMORY.md**：

- ❌ 代码模式/架构/文件结构 — `grep`/`find` 可以查
- ❌ Git 历史/谁改了什么 — `git log`/`git blame` 权威
- ❌ 调试方案/修复步骤 — fix 在代码里，commit message 有上下文
- ❌ AGENTS.md / SOUL.md 已有内容 — 不要重复
- ❌ 临时任务状态/当前对话细节 — 完成后无价值
- ❌ 活动日志/PR列表汇总 — 问"哪部分出乎意料？"，记那个

**主人说"记住这个 PR 列表"** → 不记列表本身，问"哪个发现是意外的？" → 记那个发现

## 三、反馈记忆必须带 Why

纠正/确认记录格式：
```
### [日期] 标题
- 规则: 具体做法
- **Why:** 原因（主人为什么这么说，什么事故/偏好导致的）
- **How to apply:** 在什么场景下应用这条规则
```

没有 Why 的反馈记忆 = 盲从规则，遇到边界情况会做错。

## 四、记忆漂移防护

**基于记忆行动前，必须验证：**

| 记忆内容 | 验证方式 |
|---|---|
| 提到文件路径 | 检查文件是否存在 |
| 提到函数/变量名 | grep 确认是否还在 |
| 提到 API/服务地址 | curl 测试是否可达 |
| 项目状态描述 | 对照当前代码/环境 |

> "记忆说 X 存在" ≠ "X 现在存在"

**记忆与当前观察矛盾时** → 信当前，更新或删除旧记忆

## 五、膨胀检查（Heartbeat 时执行）

1. 检查 MEMORY.md 大小，超过 5KB 触发瘦身
2. 瘦身优先级：
   - 已完成任务 → 删除或归档
   - 超过 7 天的对话摘要 → 精简合并
   - 已晋升到 AGENTS.md 的纠正 → 删除
   - 代码模式/架构描述 → 删除（违反 NOT-to-save）
3. 永不删除：用户偏好、工作习惯、角色定位

## 六、写入决策树

```
收到新信息
  ├─ 是代码/git/调试信息？ → ❌ 不记
  ├─ 已在 AGENTS.md/SOUL.md 中？ → ❌ 不记
  ├─ 是纠正/确认？ → ✅ feedback（带 Why + How to apply）
  ├─ 是主人偏好/角色？ → ✅ user
  ├─ 是项目进展/决策？ → ✅ project
  ├─ 是外部系统指针？ → ✅ reference
  └─ 不确定？ → 问自己"6个月后这条还有用吗？"
       ├─ 有 → 记
       └─ 没有 → 不记
```

