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

Rails-AI-Context Gem stellt Claude-Code über MCP das vollständige Rails-App-Modell zur Verfügung
Werkzeuge

Rails-AI-Context Gem stellt Claude-Code über MCP das vollständige Rails-App-Modell zur Verfügung

Das rails-ai-context gem introspectiert automatisch Rails-Anwendungen und stellt 39 Werkzeuge über MCP bereit, sodass Claude Code spezifische App-Details wie das Schema mit verschlüsselten Spalten, Modellbeziehungen, Routen, Stimulus-Verknüpfungen und Turbo-Zuordnungen abfragen kann, anstatt ganze Dateien zu lesen.

OpenClawRadar
Atuin v18.13 fügt KI-Shell-Befehle, einen schnelleren Suchdaemon und einen PTY-Proxy hinzu.
Werkzeuge

Atuin v18.13 fügt KI-Shell-Befehle, einen schnelleren Suchdaemon und einen PTY-Proxy hinzu.

Atuin v18.13 führt drei Hauptfunktionen ein: einen KI-gestützten Englisch-zu-Bash-Helfer namens atuin ai, einen schnelleren Suchdaemon mit In-Memory-Indexierung und einen PTY-Proxy namens hex, der Popup-Darstellungen ermöglicht, ohne die Terminalausgabe zu löschen.

OpenClawRadar
Sense: Go SDK für KI-gestützte Test-Assertions und strukturierte Textextraktion
Werkzeuge

Sense: Go SDK für KI-gestützte Test-Assertions und strukturierte Textextraktion

Sense ist ein Go SDK, das Claude für zwei Hauptfunktionen nutzt: die Bewertung nicht-deterministischer Ausgaben in Tests mit einfachen englischen Assertions und die Extraktion typisierter Structs aus unstrukturiertem Text durch Reflection und erzwungene tool_use.

OpenClawRadar
rawq: Lokales CLI-Tool für semantische KI-Agenten-Codesuche
Werkzeuge

rawq: Lokales CLI-Tool für semantische KI-Agenten-Codesuche

rawq ist ein Open-Source-CLI-Tool, das KI-Agenten hilft, relevanten Code mithilfe semantischer Suche mit einem 33 MB lokalen Modell über ONNX Runtime und lexikalischer BM25-Suche über tantivy zu finden. In Tests verbrauchten KI-Agenten, die rawq nutzten, 4x weniger Tokens und erledigten Aufgaben 2x schneller im Vergleich zu blinden read/grep-Tools.

OpenClawRadar