删除记忆
删除在 HaroCue 中叫「遗忘」。它与「纠正」或「停止使用」不同:纠正保留历史关系,遗忘会清除正文并阻止它继续进入普通读取。
选择删除范围
Section titled “选择删除范围”| 动作 | 影响什么 | 还可能保留什么 |
|---|---|---|
ForgetClaim |
一条 Claim 的正文、实体和相关曝光 | 原始 Evidence,取决于保留策略 |
ForgetEvidence |
来源正文,以及由它派生的 Claim 正文 | 不再有依据的历史关系或计数 |
ClearScope |
选定工作区或全局偏好的全部内容 | 其它作用域不受影响 |
| 到期清理 | 过期 Evidence 的原文 | 失去 Grounded 资格的抽象 Claim |
提醒 删除本机内容不会自动撤回已经发给云端模型、外部 Agent、缓存、备份或第三方服务的副本;这些传播需要由对应适配器和服务商处理。
遗忘一条 Claim
Section titled “遗忘一条 Claim”- 内核清除 Claim 正文、实体和相关曝光。
- 抑制从同一引用区间重新抽取。
- 原始 Evidence 可以按自己的保留策略继续存在。
- 普通查询不再使用这条 Claim。
当前桌面产品的「忘记这条」入口会读取该 Claim 的引用 Evidence,并在同一用户命令中一并提交 ForgetEvidence。因此一条记忆可能影响同一来源派生出的其它 Claim;界面返回受影响的 Claim/Evidence 数量,让范围保持可见。
ForgetEvidence 会清除来源正文和从它派生的 Claim 正文。图谱关系、索引词条和曝光会随支持消失;外部向量索引、缓存、备份或旧采集数据库需要由适配器继续传播删除,内核快照不能替代这些动作。
ClearScope 清除选定工作区或全局偏好的全部内容,并递增 scope_epoch:
- 旧的抽取任务即使带着正确的旧 revision,也不能重新写回。
- 其它工作区和全局偏好不会被隐式清除。
- 清空后的 Cue、回顾草稿和缓存需要重新查询。
「清空全部数据」是更大的不可逆操作,产品会先显示受影响范围并要求输入 CLEAR。
保留期与 Grounded
Section titled “保留期与 Grounded”证据到达过期时间后,系统可以只清除原文而保留失去 Grounded 资格的抽象 Claim。这类内容不会进入 Cue;如果还要清除推断,请使用明确的遗忘动作。
| 你想达到的结果 | 推荐动作 |
|---|---|
| 保留历史,但不再使用旧说法 | 更新记忆 |
| 只让一条 Claim 不再出现 | ForgetClaim |
| 让来源和其派生记忆一起消失 | ForgetEvidence |
| 重新开始某个工作区 | ClearScope |
删除后为什么要重新查询
Section titled “删除后为什么要重新查询”查询结果是某个 revision 上的快照。删除完成后,旧的 Cue、TabFuel 或回顾草稿不会由内核回到屏幕上自动消失;运行时必须:
- 取消旧任务并使缓存失效。
- 重新验证作用域、epoch、来源和版本。
- 只展示新查询得到的结果。
这样可以避免误展示,也避免后台任务用旧内容复活记忆。
遗忘和清空只能由 User 命令发起,模型提案不能调用它们。核心测试覆盖引用重叠、作用域隔离、幂等重试、清空屏障和过期;产品适配器还会报告受影响的 Claim/Evidence ID,供界面刷新。
代码证据:crates/harocue-memory/src/model.rs、crates/harocue-memory/src/mutation.rs、crates/harocue-memory/src/retrieval.rs、crates/harocue-runtime/src/product_memory.rs、frontend/src/main.ts。