在 v0.4.0 发布身份治理和代理归因六周后,hermes-memory-pgvector v0.4.1 正式推出——它修复了纯向量搜索无法独立解决的一类召回遗漏。
纯向量搜索留下的缺口
对嵌入向量做余弦相似度计算,在“相似含义”方面表现非常好,但在两件事上会悄悄失灵:精确的字面匹配(例如错误代码、主机名,或队友原样输入的字面字符串),以及任何在嵌入回填完成之前写入的行——对于仅向量查询来说,null embedding 的行无论多相关都不可见。
Reciprocal Rank Fusion,而不是简单的重排序技巧
v0.4.1 增加了 hybrid_search() 和 hybrid_search_turns(),它们会并行运行现有的 HNSW 余弦查询和同一批行上的 PostgreSQL 全文查询,并使用 Reciprocal Rank Fusion(k=60)将两种排序融合——这是一种基于排名的合并方式,绕开了对两个不兼容相似度分数进行归一化的问题。基于 to_tsvector('english', content) 的 GIN 索引(迁移 003_hybrid_search_fts.sql)让这一架构中的字面检索部分在表规模下依然保持高效。
那些 null embedding 的行——也就是纯向量查询会悄悄跳过的行——现在会通过融合中的全文侧浮现出来,而不是直接消失。
默认开启,可按调用单独关闭
plugins.pgvector.hybrid_search 的默认值是 true。现有的 v0.3.x/v0.4.0 数据或行为都不会改变;融合只会在新的召回调用中生效,而且如果全文索引不存在,它会优雅降级为仅向量模式。无需外部云搜索服务——还是 Postgres,只是又多做了一件擅长的事。
获取它
pip install hermes-memory-pgvector
源代码、迁移和配置都在 GitHub 上:

