记忆召回质量门
wesgine 的 RecallQualityOK 单点——控制自动注入面是否携带一行记忆。
三处自动注入面
引擎把记忆放到模型面前而无人请求的地方有三处:
| 注入面 | arm 数 | 说明 |
|---|---|---|
| Eager(系统提示词索引) | 5 | 每轮注入到系统提示词 |
| Lazy(当轮 overlay) | 3 | 当轮用户消息相关的记忆 |
| Cold-start(跨会话摘要重放) | 1 | 新会话首轮注入历史摘要 |
共 9 个 arm。
RecallQualityOK
每个 arm 问两半——可见性与"这行还好不好"。
第二半(质量判断)收敛到 RecallQualityOK 单点:
Conflicted = true→ 排除(被detectSupersession判定为被取代)stale = true→ 排除(30+ 天零召回的 L4 条目)
GC 豁免 vs 召回门
| Kind | GC 豁免 | 受 RecallQualityOK 约束 |
|---|---|---|
constraint | ✅ | 惰性(恒通过) |
instruction | ✅ | 惰性(恒通过) |
environment | ✅ | 惰性(恒通过) |
collective | ❌ | ✅ 受约束 |
| 其他 | ❌ | ✅ 受约束 |
显式检索不设此门
memory(search) 回答"我存过什么"。
对指名索取者隐藏被取代的行 = 把错答换成缺答。
记忆中心必须显示冲突,否则无人能解决。
Validate 的三处漂移(已修复)
Validate.Recallable 声称预测三个注入面,是第四个面。
此前的三处漂移:
- 无差别收
KindContext(只有 cold-start 携带) - 无条件
EntryVisible把会话门套到 eager 面 - 完全没有质量子句
治法:谓词按 arm 不按 scope,一面一对。
INV-MEM-50
自动注入面的判据成对。
arm 数写死在契约里而不是留给后人数。