hermes-memory-pgvector ist das Open-Source-Plugin, das einer Flotte von hermes-agent-Agenten gemeinsamen, dauerhaften Speicher auf PostgreSQL und pgvector bietet. Version 0.5.3 ist auf PyPI verfügbar, und sie entfernt die letzte fest codierte Annahme im Plugin: welches Embedding-Modell Ihre Erinnerungen in durchsuchbare Vektoren verwandelt.
Warum es dieses Release gibt
Bisher war das Embedding-Modell faktisch festgelegt. Das Plugin prüfte jeden Vektor gegen eine wörtliche Angabe von 768 Dimensionen, die Größe des Standardmodells nomic-embed-text, und es gab keine Möglichkeit, einen API-Schlüssel zu übergeben, sodass gehostete Embedding-Dienste außer Reichweite waren.
Das wurde zu einer echten Einschränkung für unsere eigene Bereitstellung. Wir haben die Speicher-Datenbank auf OpenAI's text-embedding-3-small umgestellt, bereitgestellt über OpenRouter, weil ein gehosteter Endpunkt immer warm ist, während ein selbst gehostetes Modell mehrere Sekunden zum Aufwachen brauchen kann. Die Datenbankspalten wurden auf 1536 Dimensionen geändert, und das Plugin hatte keine Einstellung, die damit mithalten konnte. v0.5.3 fügt diese Einstellungen hinzu.
Drei neue Einstellungen
embed_dimist die Vektorlänge, die Ihr Modell zurückgibt. Der Standard ist768, daher sind bestehende Setups nicht betroffen. Jede Einbettung wird weiterhin geprüft, jetzt anhand dieses Werts, sodass eine Abweichung frühzeitig fehlschlägt, statt erst die Datenbank zu erreichen.embed_api_key_envist der Name einer Umgebungsvariable, die ein Bearer-Token enthält, wie etwaOPENROUTER_API_KEY. Der Schlüssel steht niemals in der Konfigurationsdatei; er wird zum Zeitpunkt des Aufrufs gelesen und nie protokolliert.embed_protocolistopenai,ollamaoderauto. Der Standardautoversucht den OpenAI-kompatiblen Pfad und fällt auf Ollamas native API zurück. Wenn Sieopenaifür einen gehosteten Dienst wählen, wird ein Authentifizierungs- oder Modellfehler so gemeldet, wie er ist, statt hinter einer 404 aus dem Fallback verborgen zu werden.
Das Ansteuern des Plugins auf text-embedding-3-small über OpenRouter sieht jetzt so aus:
plugins:
pgvector:
embed_url: "https://openrouter.ai/api"
embed_model: "openai/text-embedding-3-small"
embed_dim: 1536
embed_api_key_env: "OPENROUTER_API_KEY"
embed_protocol: "openai"
Zwei Fehlerbehebungen, die wichtig sind, auch wenn Sie sonst nichts ändern
- Embeddings unter dem hermes-agent-Plugin-Loader. Nach dem Laden des Plugins hängt der Loader des Hosts jedes Untermodul wieder an das Paket an, einschließlich eines mit dem Namen
embed. Das ersetzte die Funktion, die das Plugin aufrief, sodass das Embedding mitTypeError: 'module' object is not callablefehlschlug und Speicher-Schreibvorgänge verworfen wurden, statt als Text gespeichert zu werden. Das Plugin verwendet jetzt ein privates Alias, das der Loader nie berührt. - Langsame Endpunkte. Ein Server, der die Verbindung akzeptierte, aber erst nach dem Timeout antwortete, löste einen nackten
TimeoutErroraus, der an der Fehlerbehandlung des Plugins vorbeiging: kein Fallback, keine Wiederholungsversuche und ein verlorener Schreibvorgang. Das wird jetzt wie jeder andere Endpunktfehler behandelt.
Aktualisieren
Die Standardwerte haben sich nicht geändert: 768 Dimensionen, kein Auth-Header, das auto-Protokoll und keine neuen Datenbank-Migrationen. Aktualisieren Sie mit:
pip install -U hermes-memory-pgvector
Der Wechsel zu einem Modell mit anderer Vektorgröße ist eine Datenbankmigration und nicht nur eine Änderung der Konfiguration, weil Vektoren aus zwei verschiedenen Modellen nicht vergleichbar sind. Das README führt Sie hindurch: Ändern Sie den Spaltentyp, betten Sie die vorhandenen Zeilen mit hermes-pgvector backfill erneut ein und bauen Sie dann die HNSW-Indizes neu.
Quellcode und die vollständige Konfigurationsreferenz finden Sie auf GitHub:
