engineering deep-dive

Wie ZeroClaws Hybrid-Speicher funktioniert: SQLite Vector + FTS5 erklärt

ZeroClaws.io

ZeroClaws.io

@zeroclaws

February 25, 2026

9 Min. Lesezeit

Wie ZeroClaws Hybrid-Speicher funktioniert: SQLite Vector + FTS5 erklärt

Wer sich anschaut, wie die meisten Produktions-KI-Agent-Speichersysteme aufgebaut sind, findet ein vertrautes Muster: eine Vektordatenbank wie Pinecone oder Weaviate für semantische Suche, Elasticsearch oder OpenSearch für Keyword-Suche, Redis für Caching heißer Erinnerungen und Postgres für strukturierte Daten. Vier Services zum Deployen, vier Services zum Monitoren, vier Services, die ausfallen können, vier Rechnungen am Monatsende.

Die Komplexität wird als unvermeidlich behandelt. Aber sie ist es nicht. Sie ist eine Konsequenz davon, verteilte System-Tools für ein Problem einzusetzen, das sie nicht erfordert.

ZeroClaws Speicher ist eine einzige SQLite-Datei. Hier ist, warum das kein Kompromiss ist.

Die Infrastruktur-Falle

Vektordatenbanken sind echte leistungsfähige Tools. Für ein RAG-System über Millionen von Dokumenten sind sie die richtige Wahl. Aber KI-Agent-Speicher ist ein anderes Problem.

Die meisten Agenten speichern Tausende von Erinnerungen, nicht Millionen. Ein Jahr täglicher Gespräche könnte 50.000 Gesprächszüge produzieren. Das ist kein Big-Data-Problem – es ist ein kleines Datenproblem, das als großes behandelt wird, weil das Tooling für etwas anderes entwickelt wurde.

Die Kosten dieses Mismatches sind real. Pinecone beginnt bei 70 €/Monat für den Produktionseinsatz. Weaviate erfordert einen laufenden Server. Jeder Speicher-Lookup ist ein Netzwerk-Round-Trip – typischerweise 10–50 ms – der jeder Antwort Latenz hinzufügt.

Warum SQLite das richtige Fundament ist

SQLite ist die am weitesten verbreitete Datenbank der Welt. Sie läuft auf jedem Smartphone, jedem Browser, jedem eingebetteten Gerät. Sie ist seit 2000 in kontinuierlicher Entwicklung und wird in der Produktion von Unternehmen verwendet, die Milliarden von Transaktionen verarbeiten.

Was sie speziell für Agent-Speicher richtig macht, ist die Kombination von Eigenschaften: ACID-Compliance mit WAL-Modus für gleichzeitige Lesevorgänge, null Konfiguration (kein Server, keine Zugangsdaten, kein Setup), eine einzige portable Datei, die den gesamten Speicher enthält.

ZeroClaw verwendet zwei SQLite-Erweiterungen zusammen, um ein Speichersystem zu bauen, das beide Dinge verarbeitet, die Agenten brauchen: exakten Abruf und semantisches Verständnis.

FTS5: Volltextsuche

SQLites FTS5-Erweiterung bietet schnelle Keyword-Suche mit BM25-Ranking:

```sql CREATE VIRTUAL TABLE memory_fts USING fts5(content, tokenize='porter');

-- Suche nach Erinnerungen über "Rust deployment" SELECT * FROM memory_fts WHERE memory_fts MATCH 'rust deployment' ORDER BY rank; ```

FTS5 behandelt Tokenisierung, Stemming und Ranking automatisch. Es ist schnell – unter einer Millisekunde für typische Agent-Speichergrößen – und exzellent bei exaktem Abruf.

Vektorsuche: Semantische Ähnlichkeit

ZeroClaw speichert Embedding-Vektoren neben Text und führt Kosinus-Ähnlichkeitssuche direkt in SQLite durch. Das behandelt Fälle, in denen Keyword-Suche versagt: Erinnerungen finden, die konzeptuell verwandt sind, auch wenn sie keine exakten Wörter teilen.

„Mein Raspberry-Pi-Setup“ passt zu „Deployment auf ARM-Hardware“, obwohl sie keine Keywords teilen. „Die Projektdeadline“ passt zu „wann ist es fällig“, obwohl die Formulierung völlig anders ist.

Hybridsuche: Beides richtig machen

Keiner der Ansätze allein ist ausreichend. Keyword-Suche verpasst semantische Verbindungen. Vektorsuche verpasst exakte Übereinstimmungen.

ZeroClaw führt beide Suchen parallel aus und führt Ergebnisse mit Reciprocal Rank Fusion zusammen:

``` score(doc) = 1/(k + rank_fts) + 1/(k + rank_vector) ```

Wo `k` eine Konstante (typischerweise 60) ist, die steuert, wie viel Gewicht Top-Ergebnisse bekommen. Dokumente, die in beiden Suchen hoch ranken, steigen nach oben. Das Ergebnis ist Speicherabruf, der sowohl „was genau habe ich über X gesagt“ als auch „was habe ich gesagt, das mit X zusammenhängt“ korrekt behandelt.

Die Performance-Zahlen

Auf einem Raspberry Pi Zero 2 W dauert der Speicherabruf unter 3 ms insgesamt: etwa 0,3 ms für FTS5-Suche, 2 ms für Vektorsuche und 0,1 ms zum Zusammenführen der Ergebnisse. Auf x86-Hardware sind diese Zahlen unter einer Millisekunde.

Zum Vergleich: Ein Netzwerk-Round-Trip zu Pinecone oder Weaviate dauert typischerweise 10–50 ms. ZeroClaws Speicherabruf ist schneller als ein einzelnes Netzwerkpaket durch eine Stadt reisen kann.

Der Speicher ist nur eine Datei

Die praktische Konsequenz von SQLite-basiertem Speicher ist, dass der gesamte Gesprächsverlauf, der gesamte gelernte Kontext, alles, was der Agent weiß – in einer einzigen Datei namens `memory.db` lebt.

Ein Backup ist `cp memory.db memory.db.bak`. Auf eine neue Maschine umziehen bedeutet, die Datei zu kopieren. Inspizieren bedeutet, sie mit einem beliebigen SQLite-Client zu öffnen. Keine Export-Tools, keine Migrationsskripte, keine API-Aufrufe.

Wenn der Speicher in Pinecone ist, ist er in Pineconees Format, auf Pineconees Servern, über Pineconees API zugänglich. Wenn Pinecone seine Preise, seine API oder seinen Dienst ändert, ist der Speicher betroffen. Wenn der Speicher in einer SQLite-Datei auf der eigenen Maschine ist, gilt nichts davon.

Null Infrastruktur, null Kosten, null Komplexität und Performance, die externe Datenbanken nicht erreichen können, weil kein Netzwerk im Weg ist. Für KI-Agent-Speicher ist das kein Kompromiss – es ist das richtige Design.

Auf dem Laufenden bleiben

Erhalte Updates zu neuen Releases, Integrationen und Rust-basierter Agent-Infrastruktur. Kein Spam, jederzeit abbestellbar.