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

✍️ OpenClawRadar📅 Publicado: April 1, 2026🔗 Source
Ninetails Memory Engine V4.5: Quantização Int8 + Cache LRU Reduz Memória Local MCP para 60MB
Ad

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.

Ad

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_thread chamadas 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

Ad

👀 See Also

Apideck CLI: Uma Alternativa de Baixo Contexto ao MCP para Agentes de IA
Tools

Apideck CLI: Uma Alternativa de Baixo Contexto ao MCP para Agentes de IA

Apideck CLI é uma interface de agente de IA que usa cerca de 80 tokens para seu prompt de agente, em vez de dezenas de milhares para esquemas de ferramentas, abordando o problema de consumo da janela de contexto do MCP. Benchmarks mostram que o MCP pode custar de 4 a 32 vezes mais tokens que o CLI para operações idênticas.

OpenClawRadar
Detecção Proativa de Rotação de Contexto no Claude Code: Uma Sugestão de Recurso do r/ClaudeAI
Tools

Detecção Proativa de Rotação de Contexto no Claude Code: Uma Sugestão de Recurso do r/ClaudeAI

Uma sugestão de recurso para o Reddit propõe que o Claude Code detecte proativamente a degradação do contexto e ofereça uma transferência estruturada com escopo de tarefa, gerando um arquivo de transferência e iniciando uma nova sessão automaticamente.

OpenClawRadar
E2a: Gateway de E-mail Open-Source para Agentes de IA com Verificação SPF/DKIM e Entrega via Webhook/WebSocket
Tools

E2a: Gateway de E-mail Open-Source para Agentes de IA com Verificação SPF/DKIM e Entrega via Webhook/WebSocket

E2a é um gateway de e-mail autenticado para agentes de IA que verifica SPF/DKIM em mensagens recebidas, entrega via webhook ou WebSocket e suporta envio de e-mail com aprovação humana intermediária.

OpenClawRadar
nan-forget: Memória de codificação de IA local em um único arquivo SQLite
Tools

nan-forget: Memória de codificação de IA local em um único arquivo SQLite

nan-forget é uma ferramenta de memória para agentes de IA de codificação que armazena contexto em um único arquivo SQLite (~3MB) sem serviços em segundo plano. Ela usa um pipeline de recuperação de 3 estágios e funciona no Claude Code, Cursor e terminal via CLI.

OpenClawRadar