Sei settimane dopo il rilascio di v0.4.0 con governance dell’identità e attribuzione dell’agente, hermes-memory-pgvector v0.4.1 è disponibile — e risolve l’unica classe di mancata reperibilità che la sola ricerca vettoriale non può gestire da sola.
Il divario lasciato dalla sola ricerca vettoriale
La similarità del coseno sugli embedding è molto efficace per "significato simile", ma è silenziosamente scarsa in due aspetti: corrispondenze lessicali esatte (un codice di errore, un hostname, una stringa letterale che un compagno di squadra ha digitato alla lettera) e qualsiasi riga scritta prima che un backfill degli embedding la raggiungesse — una riga con embedding nullo è invisibile a una query solo vettoriale, indipendentemente da quanto sia rilevante.
Reciprocal Rank Fusion, non un trucco di rerank
v0.4.1 aggiunge hybrid_search() e hybrid_search_turns(), che eseguono in parallelo la query coseno HNSW esistente e una query full-text di PostgreSQL sulle stesse righe e fondono le due classifiche con Reciprocal Rank Fusion (k=60) — una fusione basata sul ranking che evita di normalizzare due punteggi di similarità incompatibili. Un indice GIN su to_tsvector('english', content) (migrazione 003_hybrid_search_fts.sql) mantiene veloce a scala tabellare il lato lessicale di questa architettura.
Le righe con embedding nullo — quelle che una query vettoriale pura salterebbe silenziosamente — ora emergono tramite il lato full-text della fusione invece di scomparire.
Attivo di default, disattivabile per singola chiamata
plugins.pgvector.hybrid_search ha come valore predefinito true. Nulla cambia nei dati o nel comportamento esistenti di v0.3.x/v0.4.0; la fusione entra in gioco solo nelle nuove chiamate di richiamo e degrada in modo fluido a solo vettoriale se l’indice full-text non è presente. Nessun servizio di ricerca cloud esterno richiesto — è Postgres, che fa un’altra cosa bene.
Ottienilo
pip install hermes-memory-pgvector
Codice sorgente, migrazione e configurazione su GitHub:

