记忆可召回性诊断

wesgine 记忆写入后的可召回性验证机制(INV-MEM-25)。


问题背景

写入记忆后返回 id ≠ 这条记忆会被模型看到。多种原因可能导致写入成功但永不召回:


验证端点

POST /cells/{id}/memory/validate
Body: { entry_id: "..." }

返回结果

{
  "accessible": true,
  "recallable": true,
  "conditions": ["cold_start_requires_cross_session_days > 0"],
  "surfaces": {
    "eager": true,
    "lazy": true,
    "cold_start": false
  }
}

两个维度

Accessible(可访问)

条目是否可以被当前 actor 看到。

取决于:

Recallable(可召回)

条目是否会出现在模型的上下文中。

取决于:


三个注入面的判据

注入面携带判据可见性判据
EagerEagerCarriesRowActorVisible
LazyLazyCarriesRowEntryVisible
Cold-startColdStartCarriesRowActorVisible

三者 OR:任一面可召回即 Recallable = true。


Store 看不见的门

某些条件不是行的属性,Validate 无法确定性回答:

这些报成条件而非答案:裸答 "可召回" 会在整面关闭的 Cell 上被读成 "这条会注入"。


谓词来源

Accessible / Recallable 必须由真实注入面的谓词回答,不是手写镜像。

此前缺陷:


测试要求

验证必须差分:

  1. 存进真 store
  2. 跑三个 Build(Eager / Lazy / Cold-start)
  3. 断言 Recallable 等于 "文本出现在输出里"

矩阵必须含 KindContext——cold-start 独家携带的 Kind。