Sechs Wochen nachdem v0.4.0 Identity-Governance und Agenten-Zuordnung ausgeliefert hat, ist hermes-memory-pgvector v0.4.1 da — und behebt die eine Art von Recall-Fehler, die reine Vektorsuche allein nicht lösen kann.
Die Lücke, die reine Vektorsuche hinterlässt
Die Kosinusähnlichkeit über Embeddings ist sehr gut bei "ähnlicher Bedeutung" und überraschend schlecht bei zwei Dingen: exakten lexikalischen Treffern (ein Fehlercode, ein Hostname, eine wörtliche Zeichenfolge, die ein Teammitglied genau so eingegeben hat) und jeder Zeile, die geschrieben wurde, bevor ein Embedding-Backfill sie erreicht hat — eine Zeile mit null Embedding ist für eine rein vektorbasierte Abfrage unsichtbar, ganz egal wie relevant sie ist.
Reciprocal Rank Fusion, kein Rerank-Trick
v0.4.1 fügt hybrid_search() und hybrid_search_turns() hinzu, die die bestehende HNSW-Kosinusabfrage und eine PostgreSQL-Volltextabfrage über dieselben Zeilen parallel ausführen und die beiden Ranglisten mit Reciprocal Rank Fusion (k=60) zusammenführen — ein auf Rangfolge basierendes Merge-Verfahren, das das Normalisieren zweier inkompatibler Ähnlichkeitsscores umgeht. Ein GIN-Index auf to_tsvector('english', content) (Migration 003_hybrid_search_fts.sql) hält die lexikalische Seite dieser Architektur auf Tabellenebene schnell.
Zeilen mit null Embedding — also genau jene, die eine reine Vektorabfrage stillschweigend überspringen würde — erscheinen jetzt stattdessen über die Volltextseite der Fusion und verschwinden nicht mehr.
Standardmäßig aktiviert, pro Aufruf abschaltbar
plugins.pgvector.hybrid_search ist standardmäßig true. An vorhandenen v0.3.x/v0.4.0-Daten oder am bisherigen Verhalten ändert sich nichts; die Fusion greift nur bei den neuen Recall-Aufrufen und fällt sauber auf Vektor-only zurück, wenn der Volltextindex nicht vorhanden ist. Kein externer Cloud-Suchdienst erforderlich — es ist Postgres, das noch eine Sache gut macht.
Hol es dir
pip install hermes-memory-pgvector
Quellcode, Migration und Konfiguration auf GitHub:

