1. Juli 2026

hermes-memory-pgvector v0.4.1: Hybride Vektor- + Volltextsuche ist da

Von Andrea Borghi
hermes-memory-pgvector v0.4.1: Hybride Vektor- + Volltextsuche ist da

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:

👉 github.com/andreab67/hermes-memory-pgvector