# Anti-Amnesia Protocol

> 防失忆协议——每轮对话强制执行的记忆保全技能。关键信息即时固化、话题切换快照、周期性检查点、新会话主动召回、切回话题先读快照。不依赖Agent"记得"去做，而是每轮自动触发。

- Skill: `ambin-d/anti-amnesia-protocol` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ambin-d/anti-amnesia-protocol`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ambin-d/anti-amnesia-protocol/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ambin-d (https://skillmd.com/u/ambin-d)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ambin-d/anti-amnesia-protocol

---


# Anti-Amnesia Protocol (防失忆协议 — 死规则)

本技能是**强制激活的固定行为规则**，不需要特定触发词。每轮用户消息进来后，在回复前/后自动执行以下检查。不轮询、不依赖Agent主观记得去做，只看清单照做。

---

## 执行总纲

本协议的核心逻辑分为两部分：**R1~R5 在回复后执行**，**R6 在回复前执行**。R1~R4 每一步完成后都**立即写内存**（search_memory + recall_memory 去重），不做临时记录。

---

## R1: 关键信息即时固化（回复后执行）

每轮回复发送后，扫描本次对话中用户是否给出了以下类型的信息。**存在一条就写一条**，不等复盘。

### 必须固化的信息类型
| 类别 | 示例 |
|---|---|
| 新密码/密钥/授权码 | API Key、绑定码、登录凭据 |
| 配置变更决策 | 使用哪个模型、目录路径、参数选择 |
| 明确偏好/规矩 | "不要做X"、"每次Y都要Z"、"我不喜欢..." |
| 承诺/约定 | "明天提醒我修X"、"我会给你先看Y" |
| 身份事实 | 年龄、职业、关系、地名、人名、生日 |
| 项目关键状态 | 某个任务做到了哪一步、阻塞原因 |

### 写入格式
```
[2026-07-10 ★N] [fact|knowledge] 《标题》 内容摘要文字。
```
- ★后的数字表示重要度：5=不能忘，4=重要背景，3=一般参考
- 先 `search_memory` 检索是否已存在，存在则跳过，不存在则写

---

## R2: 话题切换快照（回复后执行 — 仅在话题改变时）

判断标准：用户当前消息讨论的是否与上一轮**明显不同的主题**。
- 连续询问同一问题（"那巴西呢""阿根廷呢"）不算切换
- 突然跳到别的事情（"对了还有一件事""顺便问一下"）算切换

### 切换检测方法
对比当前轮次 `<conversation_metadata>` 中的 `topic` 标签。如果与前一轮的 `topic` 前缀完全不同，视为话题切换。

### 快照写入格式
```
[话题快照] <话题名> | 时间: YYYY-MM-DD HH:MM | 进展: ... | 待解决问题: ... | 关键结论: ...
```

写入到skills的memory目录下的 `topic_snapshots.md` 文件中（追加模式）。

---

## R3: 周期性检查点（回复后执行 — 每5轮一次）

维护一个轮次计数器（存内存或self变量）。每轮 count++，当 count % 5 == 0 时执行检查点写入。

### 检查点格式
```
[检查点] YYYY-MM-DD HH:MM | 轮次: N | 话题: ... | 关键结论: ... | 用户状态: ...
```

写入到 `topic_snapshots.md`。

---

## R4: 新知识萃取后的归档检查（回复后执行）

当本轮通过 web_search / fetch_url 获取了新的长文信息并萃取了知识时（即写入了article类型的memory），检查：
1. 是否已形成可固化的结论 → 写入 knowledge 类型 memory
2. 萃取的知识是否已与已有记忆去重 → search_memory 确认
3. 当前是否在相关话题中持续需要该信息 → 如果是，在回复中引用

---

## R5: 跨会话上下文恢复（回复前执行 — 每轮）

**这是最重要的防断片机制。** 在每轮回复之前，按以下顺序执行：

### 5.1 检索话题快照
`search_memory` 关键词设置为**用户当前消息的核心名词 + 最近聊过的话题关键词**。如果匹配到 `focus_conclusion` 或 `[话题快照]` 类型记忆，读取后用于回复。

### 5.2 检索关键事实
`recall_memory` 查询当前话题相关的已固化知识（★4-5 优先），确保不会重复询问用户已经给过的信息。

### 5.3 检索用户画像
如果当前任务是配置、决策、偏好相关的，搜索 `user-profile` 相关记忆，调整回复语气和默认值。

### 5.4 诚实告知（死规定）
如果通过上述检索仍无法确认某个关键上下文，**直接说"这部分对话我看不到了"**，不猜测、不编造、不假装记得。

---

## R6: 上下文丢失时的兜底行为

当 R5.4 触发时，即你确定丢失了关键上下文：
1. 先说"这部分对话我看不到了"
2. 然后给出你最合理的解读（从现有记忆得出的猜测），并说"我是这么理解的——对吗？"
3. 如果用户纠正，立刻将纠正内容按 R1 固化

---

## 辅助记忆持久化路径

所有内存写入统一写入 Agent A 的 memory 系统（通过 `search_memory` 查重 + `recall_memory` 深度检索）。
- 话题快照和检查点写入 `skills/memory/topic_snapshots.md` 文件作为辅助参考
- 固化知识通过 memory API 存储
- 不写入Agent B目录（约束：`00-系统与规则/Agent B智能体/` 和 `06-复盘与日志/Agent B复盘/` 归Agent B，不动）

---

## 行为约束（死规矩）

1. **固化时不中断对话** — 记忆写入应当在回复发送后执行，不增加用户等待时间
2. **不重复同一记忆** — 写之前必须 search_memory 去重，同一条信息不重复保存
3. **不据此主动推送消息** — 本协议只修改内部记忆，不产生未经同意的对外通知
4. **复盘和备份不受影响** — 本协议不覆盖其他技能的锁文件和定时任务

