La búsqueda híbrida con RRF mejora el sistema de memoria de IA sobre la búsqueda vectorial pura.

Se ha desarrollado un sistema de memoria de código abierto para asistentes de IA, utilizando PostgreSQL con pgvector en una configuración local primero y autoalojada. El sistema almacena información para que los asistentes de IA recuerden entre sesiones y la hace buscable.
Por qué la búsqueda vectorial pura no fue suficiente
El desarrollador comenzó con búsqueda vectorial pura: incrustando consultas, usando similitud coseno y devolviendo los resultados top-k. Si bien esto funcionaba para preguntas vagas, fallaba consistentemente en coincidencias exactas. Por ejemplo, buscar "RRF merging" devolvería fragmentos sobre "combinar listas clasificadas" de hace meses en lugar del documento que literalmente dice "RRF merging".
Solución de búsqueda híbrida
La solución implicó añadir un segundo brazo de búsqueda: búsqueda de texto completo usando tsvector de PostgreSQL con un índice GIN. Esta coincidencia por palabras clave captura lo que la búsqueda vectorial pierde. Sin embargo, esto creó dos listas clasificadas que necesitaban fusionarse.
Fusión de Rango Recíproco (RRF)
La Fusión de Rango Recíproco demostró ser la respuesta para fusionar las dos listas clasificadas. La fórmula es simple: puntuación = 1 / (k + rango), donde k=60 (el valor estándar). Los resultados que aparecen en ambas listas obtienen ambas puntuaciones sumadas. Este enfoque no requiere ajuste de pesos ni normalización de puntuaciones entre similitud coseno y ts_rank—solo utiliza posiciones de rango.
Técnica de enriquecimiento de consultas
Antes de buscar, el sistema ejecuta las consultas a través del tokenizador WordPiece del modelo de incrustación para extraer términos clave (tokens de múltiples subpalabras que probablemente sean términos técnicos o del dominio). Esto genera hasta 3 variaciones de consulta, incrusta todas ellas y busca en paralelo. Esto captura resultados que una formulación podría perder.
Pila técnica
- PostgreSQL 16 + pgvector (índice HNSW para vectores, índice GIN para texto completo)
- all-MiniLM-L6-v2 para incrustaciones (384 dimensiones, se ejecuta en CPU)
- Python con psycopg 3 asíncrono
- 3 adaptadores de ingesta: markdown, texto plano y JSON de conversación de Claude
Todo el sistema se ejecuta localmente sin llamadas API para incrustaciones y sin dependencias en la nube. El código se lanzó recientemente, y el desarrollador ha escrito una publicación de blog detallada sobre el enfoque completo.
📖 Read the full source: r/LocalLLaMA
👀 Ver también

Servidor MCP conecta a Claude con el Mercado de Agente a Agente
Un desarrollador construyó un servidor MCP que expone cinco herramientas y dos recursos, permitiendo a Claude buscar, invocar y pagar por capacidades de otros agentes de IA en un mercado. El servidor incluye almacenamiento persistente en una bóveda de agentes y fue implementado principalmente usando Claude Code.

Exportando Memorias de Agentes de IA Usando la Función de Importación de Claude
Un usuario de Reddit comparte un mensaje para extraer recuerdos almacenados de agentes de IA como ChatGPT y Claude, y luego importarlos a OpenClaw. El mensaje solicita todo el contexto almacenado, incluyendo instrucciones, detalles personales, proyectos, herramientas y preferencias.

graphify-ts: El servidor MCP local reduce los tokens de revisión de PR de Claude Code de 63K a 8.7K
graphify-ts construye un grafo de conocimiento local de tu código fuente usando tree-sitter AST + comunidades Louvain + BM25 + rerank opcional ONNX, exponiéndolo a través de MCP stdio. En pruebas de producción, redujo los tokens de entrada en 2.6x y la latencia en 2.8x para consultas de código, y recortó los prompts de revisión de PR de 63K a 8.7K tokens.

Claude-voice: TTS local con resaltado de palabras para Claude Code
Claude-voice es una herramienta de Python que agrega síntesis de voz local con resaltado de palabras en tiempo real al modo de voz de Claude Code. Utiliza Kokoro TTS (82 millones de parámetros) ejecutándose completamente de forma local sin claves API.