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),检查:
- 是否已形成可固化的结论 → 写入 knowledge 类型 memory
- 萃取的知识是否已与已有记忆去重 → search_memory 确认
- 当前是否在相关话题中持续需要该信息 → 如果是,在回复中引用
R5: 跨会话上下文恢复(回复前执行 — 每轮)
这是最重要的防断片机制。 在每轮回复之前,按以下顺序执行:
5.1 检索话题快照
search_memory 关键词设置为用户当前消息的核心名词 + 最近聊过的话题关键词。如果匹配到 focus_conclusion 或 [话题快照] 类型记忆,读取后用于回复。
5.2 检索关键事实
recall_memory 查询当前话题相关的已固化知识(★4-5 优先),确保不会重复询问用户已经给过的信息。
5.3 检索用户画像
如果当前任务是配置、决策、偏好相关的,搜索 user-profile 相关记忆,调整回复语气和默认值。
5.4 诚实告知(死规定)
如果通过上述检索仍无法确认某个关键上下文,直接说"这部分对话我看不到了",不猜测、不编造、不假装记得。
R6: 上下文丢失时的兜底行为
当 R5.4 触发时,即你确定丢失了关键上下文:
- 先说"这部分对话我看不到了"
- 然后给出你最合理的解读(从现有记忆得出的猜测),并说"我是这么理解的——对吗?"
- 如果用户纠正,立刻将纠正内容按 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,不动)
行为约束(死规矩)
- 固化时不中断对话 — 记忆写入应当在回复发送后执行,不增加用户等待时间
- 不重复同一记忆 — 写之前必须 search_memory 去重,同一条信息不重复保存
- 不据此主动推送消息 — 本协议只修改内部记忆,不产生未经同意的对外通知
- 复盘和备份不受影响 — 本协议不覆盖其他技能的锁文件和定时任务