Ninetails Memory Engine V4.5: Int8-Quantisierung + LRU-Cache reduziert lokalen MCP-Speicher auf 60 MB

✍️ OpenClawRadar📅 Veröffentlicht: 1. April 2026🔗 Source
Ninetails Memory Engine V4.5: Int8-Quantisierung + LRU-Cache reduziert lokalen MCP-Speicher auf 60 MB
Ad

Die Ninetails Memory Engine V4.5 adressiert den Speicherengpass in lokalen MCP-Tools (Model Context Protocol) durch die Implementierung von Int8-Skalarquantisierung in Kombination mit LRU-Cache-Auslagerung. Die Lösung hält den gesamten Engine-Prozess innerhalb einer Tauri-Desktop-App bei 40–60 MB RAM.

Das Speicherproblem

Ein Standard-Embedding mit 1536 Dimensionen im Float32-Format benötigt etwa 6144 Bytes (~6 KB). Die Speicherung von 10.000 Erinnerungen bedeutet ~60 MB nur für Vektoren, was sich auf ~600 MB für 100.000 Erinnerungen skaliert. Für ein lokales Tool, das auf SQLite läuft, ist dieser Ressourcenverbrauch inakzeptabel.

Technische Implementierung

Ebene 1: Int8-Skalarquantisierung

Durch die Komprimierung von Float32 (4 Bytes/Dim) auf Int8 (1 Byte/Dim) wird das Speichervolumen auf ein Viertel seiner ursprünglichen Größe reduziert. Die Implementierung berechnet den numerischen Bereich jeder Dimension, bildet Floats auf einen Integer-Bereich von -128 bis 127 ab und dequantisiert während des Abrufs zurück zu Float32 für die Kosinusähnlichkeit.

# Quantisieren: 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)

# Dequantisieren: int8 → float32 (Approximation)
def dequantize_vector(vector_int8, scale, zero_point):
    return (vector_int8.astype(np.float32) - zero_point) * scale

Reales Ergebnis: Ein 1536-Dim-Vektor sinkt von 6144 Bytes auf 1536 Bytes. Unter Berücksichtigung des globalen Skalen- und Zero-Point-Overheads liegt das reale Kompressionsverhältnis bei etwa 3,8x - 4,0x.

Ebene 2: LRU-Cache-Auslagerung

Quantisierte Vektoren werden in einer SQLite-Datenbank (vector_cache.sqlite) unter Verwendung einer Least-Recently-Used-Strategie mit einer harten Obergrenze von 10.000 Einträgen gespeichert. Hochfrequente Vektoren bleiben im RAM, während veraltete ausgelagert werden.

Ad

Präzisionsüberlegungen

Int8-Quantisierung ist verlustbehaftet, aber für den Speicherabruf akzeptabel, weil:

  • Die Engine eine Hybridsuche verwendet: 70 % Vektorähnlichkeit + 30 % BM25. Selbst wenn die Quantisierung die Vektorrangfolge leicht verzerrt, holt die genaue Schlüsselwortübereinstimmung via BM25 relevante Erinnerungen wieder nach oben.
  • Der KI-Speicherabruf muss Kontext nur in den Top-5-Ergebnissen an die Oberfläche bringen, anders als Empfehlungsalgorithmen, die absolute Präzision für den ersten Platz benötigen.

Klärung zu "TurboQuant"

Die Engine verwendet Standard-Int8-Skalarquantisierung für die SQLite-Vektorspeicherung, nicht Googles TurboQuant (ICLR 2026), bei dem es sich um einen 3-Bit-Kompressionsalgorithmus (PolarQuant + QJL) handelt, der für den KV-Cache während der LLM-GPU-Inferenz entwickelt wurde. Die Bezeichnung "TurboQuant Compression" in der UI ist eine Anspielung auf die Philosophie der aggressiven Bitreduktion.

Vollständiger Tech-Stack

  • Vektorkompression: Int8-Skalarquantisierung (~4x reale Kompression)
  • Cache-Management: SQLite + LRU-Auslagerung (Obergrenze: 10.000 Einträge)
  • Suchmaschine: Hybrid: 70 % Vektorähnlichkeit + 30 % BM25
  • Profilmanager: Automatische STATIC/DYNAMIC-Faktenextraktion
  • Faktenextraktion: asyncio.to_thread Hintergrund-Async-LLM-Aufrufe
  • Datenspeicherung: 3x SQLite-Datenbanken (100 % lokal)
  • Desktop-App: Tauri + Vue 3 + PyInstaller Sidecar

Die Engine ist unter der MIT-Lizenz quelloffen auf GitHub: sunhonghua1/ninetails-memory-engine.

📖 Read the full source: r/LocalLLaMA

Ad

👀 Siehe auch

Claude debuggt und behebt seinen eigenen MCP-Dateisystem-Server-UNC-Pfad-Fehler unter Windows
Werkzeuge

Claude debuggt und behebt seinen eigenen MCP-Dateisystem-Server-UNC-Pfad-Fehler unter Windows

Ein Entwickler nutzte Claude Opus, um einen Fehler im MCP Filesystem Server zu diagnostizieren und zu beheben, bei dem UNC-Netzwerkfreigabepfade unter Windows für Unterverzeichnisoperationen fehlschlugen. Die Korrektur behebt ein Pfadvalidierungsproblem, das den Zugriff auf Dateien und Ordner innerhalb von UNC-Freigaben verhinderte.

OpenClawRadar
ClawClone: Cloud-Backup-Tool für OpenClaw-Arbeitsbereiche
Werkzeuge

ClawClone: Cloud-Backup-Tool für OpenClaw-Arbeitsbereiche

ClawClone ist ein Tool, das OpenClaw-Arbeitsbereiche mit einem Befehl in die Cloud sichert und mit einem weiteren wiederherstellt. Es wurde entwickelt, nachdem ein Entwickler einen Monat an Trainingsdaten verloren hatte.

OpenClawRadar
Claude Codes dateibasiertes Speichersystem: Eine pragmatische Alternative zu Vektor-Datenbanken
Werkzeuge

Claude Codes dateibasiertes Speichersystem: Eine pragmatische Alternative zu Vektor-Datenbanken

Claude Code implementiert ein dateibasiertes Speichersystem, das .md-Dateien mit Frontmatter-Metadaten und einer MEMORY.md-Indexdatei verwendet. Es vermeidet Vektordatenbanken und Embedding-Pipelines, indem es Dateien scannt, Manifeste erstellt und ein kleines Modell zur Auswahl relevanter Erinnerungen nutzt.

OpenClawRadar
Kreativ-Exzellenz-Plugin für Claude Code verbessert Animationsqualität durch Interaktionsthese
Werkzeuge

Kreativ-Exzellenz-Plugin für Claude Code verbessert Animationsqualität durch Interaktionsthese

Ein neues Open-Source-Plugin für Claude Code adressiert die generische Animation-Erstellung durch die Implementierung eines 'Interaktions-These'-Ansatzes, bei dem Claude zunächst Bewegungskonzepte beschreiben muss, bevor er Code schreibt. Das Plugin umfasst 8 Teilfähigkeiten, die GSAP, Framer Motion, CSS-Animationen und Designprinzipien aus untersuchten Repositories abdecken.

OpenClawRadar