Ninetails Memory Engine V4.5: Quantização Int8 + Cache LRU Reduz Memória Local MCP para 60MB

O Ninetails Memory Engine V4.5 aborda o gargalo de memória em ferramentas locais de MCP (Model Context Protocol) implementando quantização escalar Int8 combinada com evicção de cache LRU. A solução mantém todo o processo do mecanismo rodando dentro de um aplicativo desktop Tauri com 40-60MB de RAM.
O Problema de Memória
Um embedding float32 padrão de 1536 dimensões ocupa cerca de 6144 bytes (~6KB). Armazenar 10.000 memórias significa ~60MB apenas para vetores, escalando para ~600MB para 100.000 memórias. Para uma ferramenta local rodando em SQLite, esse consumo de recursos é inaceitável.
Implementação Técnica
Camada 1: Quantização Escalar Int8
Ao comprimir float32 (4 bytes/dim) para int8 (1 byte/dim), o volume de armazenamento é reduzido a um quarto do tamanho original. A implementação calcula o intervalo numérico de cada dimensão, mapeia floats para uma faixa inteira de -128 a 127 e desquantiza de volta para float32 durante a recuperação para similaridade de cosseno.
# Quantizar: 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 (Aproximação)
def dequantize_vector(vector_int8, scale, zero_point):
return (vector_int8.astype(np.float32) - zero_point) * scale
Resultado real: Um vetor de 1536 dimensões cai de 6144 bytes para 1536 bytes. Considerando a sobrecarga de escala global e zero_point, a taxa de compressão real é de cerca de 3,8x - 4,0x.
Camada 2: Evicção de Cache LRU
Vetores quantizados são armazenados em um banco de dados SQLite (vector_cache.sqlite) usando uma estratégia Menos Recentemente Usado com um limite rígido de 10.000 entradas. Vetores de alta frequência permanecem na RAM enquanto os obsoletos são removidos.
Considerações de Precisão
A quantização Int8 é com perdas, mas aceitável para recuperação de memória porque:
- O mecanismo usa busca híbrida: 70% similaridade vetorial + 30% BM25. Mesmo que a quantização distorça levemente a classificação vetorial, a correspondência exata de palavras-chave via BM25 traz as memórias relevantes de volta.
- A recuperação de memória de IA só precisa trazer contexto para os Top-5 resultados, diferentemente de algoritmos de recomendação que precisam de precisão absoluta para a posição #1.
Esclarecimento sobre "TurboQuant"
O mecanismo usa quantização escalar Int8 padrão para armazenamento vetorial em SQLite, não o TurboQuant do Google (ICLR 2026), que é um algoritmo de compressão de 3 bits (PolarQuant + QJL) projetado para KV Cache durante inferência de GPU em LLM. A marcação "TurboQuant Compression" na interface é uma referência à filosofia de redução agressiva de bits.
Stack Tecnológico Completo
- Compressão Vetorial: Quantização Escalar Int8 (~4x compressão real)
- Gerenciamento de Cache: SQLite + Evicção LRU (Limite: 10.000 entradas)
- Mecanismo de Busca: Híbrido: 70% Similaridade Vetorial + 30% BM25
- Gerenciador de Perfil: Extração automática de fatos ESTÁTICOS/DINÂMICOS
- Extração de Fatos:
asyncio.to_threadchamadas LLM assíncronas em segundo plano - Armazenamento de Dados: 3x Bancos de Dados SQLite (100% Local)
- Aplicativo Desktop: Tauri + Vue 3 + sidecar PyInstaller
O mecanismo é de código aberto sob Licença MIT no GitHub: sunhonghua1/ninetails-memory-engine.
📖 Leia a fonte completa: r/LocalLLaMA
👀 See Also

OpenRoom: Uma Interface Gráfica de Desktop Baseada na Web para Visualizar Habilidades de Agentes de IA
OpenRoom é um ambiente de desktop baseado na web onde agentes de IA operam, apresentando atualizações em tempo real do estado do sistema, como diários e arquivos durante interações de chat, além de um modo de transmissão ao vivo para interação com múltiplos bots.

Limonada por AMD: Servidor Local de LLM de Código Aberto para GPU e NPU
Lemonade é um servidor de IA local de código aberto que executa modelos de texto, imagem e fala em GPUs e NPUs. É compatível com a API da OpenAI, suporta múltiplos modelos simultaneamente e possui um backend nativo em C++ de apenas 2MB.
Dê ao seu Agente OpenClaw um Telefone: Plugin Open Source para Chamadas de Voz
Um desenvolvedor tornou open source um plugin que permite ao OpenClaw fazer chamadas telefônicas. Diferente de alternativas SaaS de $20/mês, este é gratuito e auto-hospedado.

Plugin "Be brief" supera "caveman" no benchmark de compressão do Claude Code
Um benchmark com 24 prompts mostra que o plugin de compressão 'caveman' do Claude Code produz as mesmas contagens de tokens e qualidade que simplesmente adicionar 'seja breve.' — mas a forma consistente da saída e as regras de escape de segurança do plugin oferecem vantagens estruturais.