Santiago Valdarrama
@svpino
只用语义相似度搜数据是有缺陷的。面向图的检索才是正道。
基础做法是做扁平检索,选出与查询匹配的记录:按语义相似度排序,从库里返回最接近的匹配。
当你把需要的信息存成彼此独立的记录时,这很好用;但一旦需要理解事实之间的关系,它就会失败。
面向图的检索是一次大幅升级。
它有三个组成部分:
1. 把事实存成持久记忆记录
2. 用带关系标签的有向边连接记录。例如「取代」「支持」或「反驳」
3. 沿着边扩展搜索结果,返回所有相连记录
这样一来,查询结果既包含匹配的事实,也包含它们之间的关系信息。
假设你存了两段对话:
• 「会议在周一。」
• 「会议改到周二了。」
如果用简单扁平搜索回答「会议什么时候?」,两条记录都会回来,因为它们都匹配问题。
如果用面向图的检索,你会得到一条「取代」关系,表明周二替换了周一。
Oracle AI Agent Memory 26.8 实现了面向图的搜索。技术 walkthrough 和代码在这里:
https://fandf.co/3VBDYt6
感谢 @OracleDevs 团队与我合作这篇帖子。