记忆搜索与召回
wesgine 记忆系统的搜索与召回机制,覆盖语义搜索、自动注入和显式检索。
三条自动注入面
记忆自动进入模型上下文有三处、共 9 个 arm:
1. Eager 索引(系统提示词)
- 5 个 arm
- 在系统提示词中作为固定上下文
- 使用
EagerCarriesRow+ActorVisible判定
2. Lazy Overlay(当轮覆盖)
- 3 个 arm
- 按当前对话内容动态匹配
- 使用
LazyCarriesRow+EntryVisible判定
3. Cold-start Overlay
- 1 个 arm
- 跨会话摘要重放
- 使用
ColdStartCarriesRow+ActorVisible判定
召回质量门控(INV-MEM-50)
RecallQualityOK 单点判定"这行还好不好":
Conflicted = true(被取代)→ 排除stale(30+ 天零召回)→ 排除IsGCExempt()的行跳过此门(Constraint/Instruction/Environment)- 显式搜索不设此门:
memory(search)回答"我存过什么"
语义搜索
API 端点
POST /cells/{id}/memory/search
请求体:
{
"query": "搜索文本",
"layer": "about_me",
"limit": 20,
"actor": "alice"
}
搜索基于 embedding 向量相似度,结合 BM25 文本匹配的混合排序。
Lazy Recall 混合排序
StoreLazyRanker 结合两个信号:
- 语义相似度:embedding 向量余弦距离
- 文本相关性:BM25 关键词匹配
混合排序确保零字面重叠的同义词也能被召回。
可召回性验证(INV-MEM-25)
Store.Validate(entryID, opts) 提供写入后诊断:
- 判定条目是否
Accessible(可访问) - 判定条目是否
Recallable(可被自动注入) - 谓词来自真实注入面,不是手写镜像
- HTTP:
POST /cells/{id}/memory/validate
集体记忆
草案与投票
POST /cells/{id}/memory/draft 提交集体草案
POST /cells/{id}/memory/vote 投票集体草案
GET /cells/{id}/memory/drafts 草案列表
多 actor 场景下,团队共识通过草案-投票机制达成。