hermes-memory-pgvector es el complemento de código abierto que proporciona a una flota de agentes hermes-agent memoria compartida y persistente en PostgreSQL y pgvector. La versión 0.5.3 ya está disponible en PyPI, y elimina la última suposición codificada de forma fija en el complemento: qué modelo de embeddings convierte tus memorias en vectores buscables.
Por qué existe esta versión
Hasta ahora, el modelo de embeddings estaba prácticamente fijado. El complemento comprobaba cada vector frente a unas 768 dimensiones literales, el tamaño del modelo predeterminado nomic-embed-text, y no tenía forma de enviar una clave de API, así que los servicios de embeddings alojados quedaban fuera de alcance.
Eso se convirtió en una limitación real para nuestro propio despliegue. Trasladamos la base de datos de memoria a text-embedding-3-small de OpenAI, servido a través de OpenRouter, porque un endpoint alojado está siempre listo, mientras que un modelo autoalojado puede tardar varios segundos en activarse. Las columnas de la base de datos cambiaron a 1536 dimensiones, y el complemento no tenía ningún ajuste que pudiera seguirlas. La v0.5.3 añade esos ajustes.
Tres nuevos ajustes
embed_dimes la longitud del vector que devuelve tu modelo. El valor predeterminado es768, así que las configuraciones existentes no se ven afectadas. Cada embedding sigue comprobándose, ahora frente a este valor, así que una discrepancia falla rápidamente en lugar de llegar a la base de datos.embed_api_key_enves el nombre de una variable de entorno que contiene un token bearer, comoOPENROUTER_API_KEY. La clave nunca va en el archivo de configuración; se lee en el momento de la llamada y nunca se registra.embed_protocolesopenai,ollamaoauto. El valor predeterminado,auto, prueba la ruta compatible con OpenAI y, si falla, recurre a la API nativa de Ollama. Elegiropenaipara un servicio alojado significa que un error de autenticación o de modelo se informa tal cual, en lugar de quedar oculto detrás de un 404 del fallback.
Apuntar ahora el complemento a text-embedding-3-small a través de OpenRouter se ve así:
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"
Dos correcciones que importan incluso si no cambias nada
- Embeddings bajo el cargador de complementos de hermes-agent. Después de cargar el complemento, el cargador del host vuelve a adjuntar cada submódulo al paquete, incluido uno llamado
embed. Eso sustituyó la función que llamaba el complemento, así que la generación de embeddings fallaba conTypeError: 'module' object is not callabley las escrituras de memoria se descartaban en lugar de almacenarse como texto. Ahora el complemento llama a un alias privado que el cargador nunca toca. - Endpoints lentos. Un servidor que aceptaba la conexión pero respondía después del tiempo de espera lanzaba un
TimeoutErrorsin formato, que se colaba por el manejo de errores del complemento: sin fallback, sin reintentos y con una escritura perdida. Ahora se maneja como cualquier otro fallo de endpoint.
Actualización
Los valores predeterminados no han cambiado: 768 dimensiones, ningún encabezado de autenticación, el protocolo auto y sin nuevas migraciones de base de datos. Actualiza con:
pip install -U hermes-memory-pgvector
Cambiar a un modelo con un tamaño de vector distinto es una migración de base de datos, no solo una edición de la configuración, porque los vectores de dos modelos diferentes no son comparables. El README lo explica paso a paso: cambia el tipo de columna, vuelve a generar los embeddings de las filas existentes con hermes-pgvector backfill, y luego reconstruye los índices HNSW.
El código fuente y la referencia completa de configuración están en GitHub:
