Ninetails Memory Engine V4.5: Cuantización Int8 + Caché LRU Reduce la Memoria MCP Local a 60MB

El Motor de Memoria Ninetails V4.5 aborda el cuello de botella de memoria en las herramientas locales MCP (Protocolo de Contexto del Modelo) implementando cuantización escalar Int8 combinada con expulsión de caché LRU. La solución mantiene todo el proceso del motor funcionando dentro de una aplicación de escritorio Tauri con 40-60MB de RAM.
El Problema de Memoria
Una incrustación estándar de 1536 dimensiones en float32 ocupa aproximadamente 6144 bytes (~6KB). Almacenar 10,000 recuerdos significa ~60MB solo para vectores, escalando a ~600MB para 100,000 recuerdos. Para una herramienta local que funciona con SQLite, este consumo de recursos es inaceptable.
Implementación Técnica
Capa 1: Cuantización Escalar Int8
Al comprimir float32 (4 bytes/dim) a int8 (1 byte/dim), el volumen de almacenamiento se reduce a un cuarto de su tamaño original. La implementación calcula el rango numérico de cada dimensión, mapea los valores float a un rango entero de -128 a 127, y desquantiza de vuelta a float32 durante la recuperación para la similitud coseno.
# Cuantizar: float32 → int8
def quantize_vector(vector_fp32, scale, zero_point):
quantized = np.round(vector_fp32 / scale) + zero_point
return np.clip(quantized, -128, 127).astype(np.int8)
# Desquantizar: int8 → float32 (Aproximación)
def dequantize_vector(vector_int8, scale, zero_point):
return (vector_int8.astype(np.float32) - zero_point) * scale
Resultado en el mundo real: Un vector de 1536 dimensiones baja de 6144 bytes a 1536 bytes. Considerando la sobrecarga de escala global y punto cero, la relación de compresión real es de aproximadamente 3.8x - 4.0x.
Capa 2: Expulsión de Caché LRU
Los vectores cuantizados se almacenan en una base de datos SQLite (vector_cache.sqlite) usando una estrategia de Menos Recientemente Usado con un límite máximo de 10,000 entradas. Los vectores de alta frecuencia permanecen en RAM mientras que los obsoletos son expulsados.
Consideraciones de Precisión
La cuantización Int8 tiene pérdida pero es aceptable para la recuperación de memoria porque:
- El motor usa búsqueda híbrida: 70% similitud vectorial + 30% BM25. Incluso si la cuantización altera ligeramente el ranking de vectores, la coincidencia exacta de palabras clave mediante BM25 recupera los recuerdos relevantes.
- La recuperación de memoria de IA solo necesita mostrar contexto en los 5 mejores resultados, a diferencia de los algoritmos de recomendación que necesitan precisión absoluta para el primer lugar.
Aclaración sobre "TurboQuant"
El motor usa cuantización escalar Int8 estándar para el almacenamiento de vectores en SQLite, no el TurboQuant de Google (ICLR 2026), que es un algoritmo de compresión de 3 bits (PolarQuant + QJL) diseñado para la Caché KV durante la inferencia GPU de LLM. La marca "Compresión TurboQuant" en la interfaz es un guiño a la filosofía de reducción agresiva de bits.
Pila Tecnológica Completa
- Compresión Vectorial: Cuantización Escalar Int8 (~4x compresión real)
- Gestión de Caché: SQLite + Expulsión LRU (Límite: 10,000 entradas)
- Motor de Búsqueda: Híbrido: 70% Similitud Vectorial + 30% BM25
- Administrador de Perfiles: Extracción automática de hechos ESTÁTICOS/DINÁMICOS
- Extracción de Hechos: Llamadas asíncronas LLM en segundo plano con
asyncio.to_thread - Almacenamiento de Datos: 3 Bases de Datos SQLite (100% Local)
- Aplicación de Escritorio: Tauri + Vue 3 + PyInstaller sidecar
El motor es de código abierto bajo la Licencia MIT en GitHub: sunhonghua1/ninetails-memory-engine.
📖 Read the full source: r/LocalLLaMA
👀 Ver también

AiPayGen: Un Mercado de Agentes de IA con Integración MCP para Claude Code
AiPayGen es un mercado con 142 agentes de IA en 27 categorías que incluyen finanzas, legal, salud, DevOps, seguridad y marketing. Funciona como un servidor MCP para uso directo en Claude Code, permitiendo a los usuarios navegar, invocar y gestionar agentes mediante comandos específicos.

Los artefactos HTML reemplazan a Google Docs para documentos técnicos, pero carecen de comentarios
Los artefactos HTML generados por Claude están reemplazando a Google Docs para contenido técnico extenso como informes de picos y notas de arquitectura, pero la naturaleza de iframe aislado impide los comentarios en línea y las funciones de revisión.

Código OpenClaw Codex-GPT5.4 Problema de Bucle de Validación de Tarea
Un desarrollador reporta que Codex-GPT5.4 a través de OpenClaw se queda atascado en un bucle de validación de tareas durante el trabajo autónomo de proyectos, identificando y confirmando tareas repetidamente sin ejecutarlas. Han implementado controles de espacio de trabajo que incluyen TASKS.md, reglas de latido y archivos de personalidad para abordar el problema.

La Aplicación de Escritorio de Claude con la Función de Colaboración Permite la Comunicación de IA a IA a través de Documentos Compartidos de Google
Los usuarios han implementado con éxito la comunicación de Claude a Claude utilizando la nueva función de colaboración en la aplicación de escritorio, con dos agentes leyendo y escribiendo en un documento compartido de Google. La prueba involucró cinco rondas de diálogo de preguntas y respuestas entre los agentes de IA.