跳转到内容

删除记忆

删除在 HaroCue 中叫「遗忘」。它与「纠正」或「停止使用」不同:纠正保留历史关系,遗忘会清除正文并阻止它继续进入普通读取。

动作 影响什么 还可能保留什么
ForgetClaim 一条 Claim 的正文、实体和相关曝光 原始 Evidence,取决于保留策略
ForgetEvidence 来源正文,以及由它派生的 Claim 正文 不再有依据的历史关系或计数
ClearScope 选定工作区或全局偏好的全部内容 其它作用域不受影响
到期清理 过期 Evidence 的原文 失去 Grounded 资格的抽象 Claim

提醒 删除本机内容不会自动撤回已经发给云端模型、外部 Agent、缓存、备份或第三方服务的副本;这些传播需要由对应适配器和服务商处理。

  1. 内核清除 Claim 正文、实体和相关曝光。
  2. 抑制从同一引用区间重新抽取。
  3. 原始 Evidence 可以按自己的保留策略继续存在。
  4. 普通查询不再使用这条 Claim。

当前桌面产品的「忘记这条」入口会读取该 Claim 的引用 Evidence,并在同一用户命令中一并提交 ForgetEvidence。因此一条记忆可能影响同一来源派生出的其它 Claim;界面返回受影响的 Claim/Evidence 数量,让范围保持可见。

ForgetEvidence 会清除来源正文和从它派生的 Claim 正文。图谱关系、索引词条和曝光会随支持消失;外部向量索引、缓存、备份或旧采集数据库需要由适配器继续传播删除,内核快照不能替代这些动作。

ClearScope 清除选定工作区或全局偏好的全部内容,并递增 scope_epoch

  • 旧的抽取任务即使带着正确的旧 revision,也不能重新写回。
  • 其它工作区和全局偏好不会被隐式清除。
  • 清空后的 Cue、回顾草稿和缓存需要重新查询。

「清空全部数据」是更大的不可逆操作,产品会先显示受影响范围并要求输入 CLEAR

证据到达过期时间后,系统可以只清除原文而保留失去 Grounded 资格的抽象 Claim。这类内容不会进入 Cue;如果还要清除推断,请使用明确的遗忘动作。

你想达到的结果 推荐动作
保留历史,但不再使用旧说法 更新记忆
只让一条 Claim 不再出现 ForgetClaim
让来源和其派生记忆一起消失 ForgetEvidence
重新开始某个工作区 ClearScope

查询结果是某个 revision 上的快照。删除完成后,旧的 Cue、TabFuel 或回顾草稿不会由内核回到屏幕上自动消失;运行时必须:

  1. 取消旧任务并使缓存失效。
  2. 重新验证作用域、epoch、来源和版本。
  3. 只展示新查询得到的结果。

这样可以避免误展示,也避免后台任务用旧内容复活记忆。

遗忘和清空只能由 User 命令发起,模型提案不能调用它们。核心测试覆盖引用重叠、作用域隔离、幂等重试、清空屏障和过期;产品适配器还会报告受影响的 Claim/Evidence ID,供界面刷新。

代码证据:crates/harocue-memory/src/model.rscrates/harocue-memory/src/mutation.rscrates/harocue-memory/src/retrieval.rscrates/harocue-runtime/src/product_memory.rsfrontend/src/main.ts

  • 搜索记忆:确认被遗忘的内容不会进入普通结果。
  • 记忆评估:验证删除后的生命周期和泄漏边界。