Memory 显式搜索

wesgine 记忆系统的显式搜索 API 与语义检索机制。


与自动注入的区别

自动注入显式搜索
触发引擎自动(每轮 / 当轮)Agent 主动 memory(search)
质量门RecallQualityOK(排除冲突/过时)不设质量门
目的"模型该知道什么""我存过什么"
隐藏冲突条目✓❌

显式搜索不隐藏被取代的行——对指名索取者隐藏被取代的行是把错答换成缺答。记忆中心必须显示冲突否则无人能解决。


API

语义搜索

POST /cells/{id}/memory/search

Body:

{
  "query": "编辑器偏好设置",
  "layer": "about_me",
  "namespace": "...",
  "limit": 20
}

参数

参数说明
query搜索查询文本
layer按层过滤(可选)
namespace按命名空间过滤(可选)
limit最大返回数
actor按 actor 过滤(admin token 时)

搜索机制

Embedding 向量搜索

记忆写入时生成 embedding → 搜索时与查询 embedding 计算相似度。

Hybrid Ranking

语义相似度 + BM25 文本匹配的混合排序:

查询
  ↓ 同时
向量相似度(语义)
BM25 分数(文本匹配)
  ↓ 合并
Hybrid Rank
  ↓ 排序
返回结果

Actor 边界


工具侧

Agent 通过 memory(search) 工具触发显式搜索:

{
  "action": "search",
  "query": "用户的格式偏好"
}

结果返回给 Agent 作为工具输出。


召回计数更新

搜索命中的条目更新 accessed_at 和 recall_count:

这影响 GC 的 RetentionScore 计算。


与列表查询的区别

搜索列表
方法POST /memory/searchGET /memory
排序相似度排序时间排序
用途语义查找浏览所有
更新召回计数✓❌

相关文档