记忆去重键

wesgine 的 ContentDedupKey 机制——防止重复记忆条目。


问题

多个写入路径(memory tool、CognitiveSettlement、HTTP API)可能写入相同内容。

没有去重机制时,同一条偏好可能在记忆库中出现多次。


ContentDedupKey

saveCore 在持久化前为每条记忆生成去重键。

规则:

  1. 调用方显式提供 Key → 使用它
  2. 调用方未提供 → 从 Content 哈希生成

冲突行为

去重键冲突时执行 upsert(更新已有条目)。

不是拒绝写入,而是合并。


键组成

去重键在 (scope, namespace, actor, key) 四元组上唯一。

不同 Actor 可以有相同内容的记忆——归属不同。

不同 Agent 命名空间可以有相同内容——隔离不同。


与 INV-MEM-43 的关系

AgentNS 被 Cell 内全部 Actor 共用。

两个员工的相同 Key 曾是同一行——第二次保存静默覆盖第一次。

现在行身份包含 actor 段:(scope, namespace, actor, key)。


saveCore 中的位置

RequireActor → Kind 校验 → 威胁扫描 → 质量门控 →
WriteGate → ContentDedupKey 兜底 → Trust 兜底 →
accessed_at 归一 → Embedding → 后端写入

注意事项