EN·ES·DE·PT·FR
⌘K

Zustandsverwaltung & Speicher

SQLite-basierte Persistenz mit In-Memory-Arbeitsspeicher, semantischer Suche über Embeddings und Tri-Hybrid-Abruf.

v0.9.x-Update
Die zentrale Gesprächsspeicherung läuft jetzt über die Tabelle events. Alte messages-Daten werden beim Upgrade in events migriert.

Datenbankschema

messages-Tabelle

KeyTypeDefaultDescription
idTEXT PKUUID-Primärschlüssel
session_idTEXTSitzungskennung (indiziert)
roleTEXTuser, assistant oder tool
contentTEXTnullNachrichtentextinhalt
tool_call_idTEXTnullID für Tool-Ergebnis-Nachrichten
tool_nameTEXTnullTool-Name für Tool-Nachrichten
tool_calls_jsonTEXTnullJSON-Array von Tool-Aufrufen
created_atTEXTRFC3339-Zeitstempel
importanceREAL0.5Wichtigkeitsbewertung (0.0–1.0)
embeddingBLOBnullJSON-kodierter Vec<f32>-Embedding
embedding_errorTEXTnullFehlermeldung bei fehlgeschlagenem Embedding
consolidated_atTEXTnullZeitstempel der Speicherkonsolidierung

facts-Tabelle

KeyTypeDefaultDescription
idINTEGER PKautoAutomatisch inkrementierender Primärschlüssel
categoryTEXTGruppierungskategorie
keyTEXTFaktenschlüssel (eindeutig pro Kategorie)
valueTEXTFakteninhalt
sourceTEXT""Wer ihn gespeichert hat: "agent" oder "user"
created_atTEXTRFC3339-Zeitstempel
updated_atTEXTRFC3339-Zeitstempel

macros-Tabelle

KeyTypeDefaultDescription
idINTEGER PKautoAutomatisch inkrementierender Primärschlüssel
trigger_toolTEXTTool, das das Makro auslöst
trigger_args_patternTEXTnullArgumentmuster zum Abgleichen
next_toolTEXTNächstes zu verkettendes Tool
next_argsTEXTArgumente für das verkettete Tool
confidenceREAL0.0Konfidenzbewertung für das Makro
used_countINTEGER0Anzahl der Verwendungen des Makros
created_atTEXTRFC3339-Zeitstempel
updated_atTEXTRFC3339-Zeitstempel

scheduled_tasks-Tabelle

KeyTypeDefaultDescription
idTEXT PKUUID-Primärschlüssel
nameTEXTMenschenlesbarer Aufgabenname
cron_exprTEXTBerechneter 5-Feld-Cron-Ausdruck
original_scheduleTEXTBenutzereingabe (natürliche Sprache oder Cron)
promptTEXTAgent-Prompt zur planmäßigen Ausführung
sourceTEXT"tool" (über Tool erstellt) oder "config" (aus config.toml)
is_oneshotINTEGER0Einmal auslösen, dann automatisch löschen
is_pausedINTEGER0Pausierte Aufgaben werden nicht ausgelöst
is_trustedINTEGER0Trusted-Aufgaben überspringen die Terminal-Genehmigung
next_run_atTEXTRFC3339-Zeitstempel der nächsten geplanten Ausführung
last_run_atTEXTnullRFC3339-Zeitstempel der letzten Ausführung
created_atTEXTRFC3339-Zeitstempel
updated_atTEXTRFC3339-Zeitstempel

terminal_allowed_prefixes-Tabelle

KeyTypeDefaultDescription
prefixTEXT PKBefehlspräfix, gespeichert aus "Immer erlauben"-Genehmigungen

Arbeitsspeicher

Eine In-Memory-HashMap<String, VecDeque<Message>> pro Sitzung, begrenzt auf working_memory_cap (Standard 50). Vermeidet Datenbankzugriffe für den aktuellen Gesprächsverlauf.

Tri-Hybrid-Abruf

Die Methode get_context kombiniert drei Abrufstrategien:

StrategieQuelleLimitZweck
AktualitätLetzte N Nachrichten10Gesprächskontinuität
Relevanz (Wichtigkeit)importance ≥ 0.85Kritisch markierte Erinnerungen
Relevanz (Semantik)Vektorähnlichkeit > 0.655Semantische Suche über Embeddings

Ergebnisse werden vor der Aufnahme in den Kontext nach Nachrichten-ID dedupliziert.

Embedding-Service

  • Modell: AllMiniLML6V2 (via fastembed)
  • Läuft im Hintergrund — bettet neue Nachrichten ein, nachdem sie angehängt wurden
  • Ermöglicht den Relevanz-Zweig des Tri-Hybrid-Abrufs

Speicherkonsolidierung

Eine Hintergrundaufgabe läuft alle consolidation_interval_hours (Standard 6). Sie komprimiert alte Gespräche zu Zusammenfassungen mit dem Fast-Modell und reduziert so Speicherplatz und Kontextfensternutzung.

Wichtigkeitsbewertung

RolleStandardwert
Benutzernachricht0.5
Assistentenantwort0.5
Tool-Ausgabe0.3
Systemnachricht0.1

Verbindungspool

  • SQLite-Pool: maximal 5 Verbindungen
  • Journal-Modus: WAL (Write-Ahead Logging) für gleichzeitige Lesezugriffe
  • Erstellt Datenbank und Tabellen automatisch, falls nicht vorhanden