Six semaines après la sortie de v0.4.0 avec la gouvernance d’identité et l’attribution à l’agent, hermes-memory-pgvector v0.4.1 est disponible — et il corrige la seule classe d’échec de rappel que la recherche vectorielle pure ne peut pas résoudre à elle seule.
Le manque laissé par la recherche vectorielle pure
La similarité cosinus sur les embeddings est très efficace pour le « sens proche », et discrètement mauvaise sur deux points : les correspondances lexicales exactes (un code d’erreur, un nom d’hôte, une chaîne littérale qu’un membre de l’équipe a tapée mot pour mot) et toute ligne écrite avant qu’un backfill d’embeddings ne la rattrape — une ligne sans embedding est invisible pour une requête vectorielle, quelle que soit sa pertinence.
Reciprocal Rank Fusion, pas un simple rerank bricolé
v0.4.1 ajoute hybrid_search() et hybrid_search_turns(), qui exécutent en parallèle la requête cosinus HNSW existante et une requête PostgreSQL en texte intégral sur les mêmes lignes, puis fusionnent les deux classements avec Reciprocal Rank Fusion (k=60) — une fusion fondée sur le rang qui évite d’avoir à normaliser deux scores de similarité incompatibles. Un index GIN sur to_tsvector('english', content) (migration 003_hybrid_search_fts.sql) maintient rapide, à l’échelle de la table, le versant lexical de cette architecture.
Les lignes avec un embedding nul — celles qu’une requête vectorielle pure ignorerait silencieusement — apparaissent désormais via le versant texte intégral de la fusion au lieu de disparaître.
Activé par défaut, désactivable à chaque appel
plugins.pgvector.hybrid_search est défini par défaut sur true. Rien ne change pour les données ou le comportement existants de v0.3.x/v0.4.0 ; la fusion ne s’active que sur les nouveaux appels de rappel, et elle se dégrade gracieusement en mode vectoriel uniquement si l’index texte intégral n’est pas présent. Aucun service de recherche cloud externe requis — c’est Postgres, qui fait une chose de plus et la fait bien.
Obtenez-le
pip install hermes-memory-pgvector
Source, migration et configuration sur GitHub :

