# Sessions & Speicher ## Sessions ### Wie Sessions funktionieren Jedes Gespraech mit einem Agenten findet in einer **Session** statt. Sessions werden durch Schluessel identifiziert, die den Kontext kodieren -- welcher Agent, welcher Channel, welcher Chat. Sessions fuehren ein vollstaendiges Transkript (Append-only JSONL) aller Nachrichten, Tool-Aufrufe und Ergebnisse. Dieses Transkript gibt Agenten den Kontext ueber das laufende Gespraech. ### Session-Schluessel Sessions werden automatisch basierend auf dem Kontext geroutet: | Muster | Bedeutung | |---------|---------| | `agent:main:main` | Haupt-Direktkonversation | | `agent:::group:` | Gruppenchat auf einem bestimmten Channel | | `agent:::channel:` | Channel/Raum-Konversation | | `cron:` | Geplante Job-Ausfuehrung | | `hook:` | Webhook-ausgeloeste Ausfuehrung | ### Session-Lebenszyklus - **Taeglicher Reset** -- Sessions setzen sich automatisch zu einer konfigurierbaren Zeit zurueck (Standard 4 Uhr morgens lokal). Dies erstellt einen frischen Konversationskontext jeden Tag unter Beibehaltung des Verlaufs. - **Leerlauf-Ablauf** -- Sessions, die fuer einen konfigurierbaren Zeitraum nicht aktiv waren, koennen sich automatisch zuruecksetzen. - **Manueller Reset** -- Jederzeit mit einem `/new`- oder `/reset`-Befehl neu beginnen. ### Token-Verfolgung Sessions verfolgen kumulativen Token-Verbrauch (Eingabe, Ausgabe, Cache Read, Cache Write) fuer Kostenueberwachung und Kontextfenster-Management. --- ## Komprimierung ### Was ist Komprimierung? Wenn sich ein Gespraech dem Kontextfenster-Limit des Modells naehert, **komprimiert** Neotask es -- fasst aeltere Nachrichten in eine kompakte Uebersicht zusammen und startet eine neue Session mit dieser Zusammenfassung plus aktuellen Nachrichten. ### Wie es funktioniert 1. **Erkennung** -- Kontextverbrauch ueberwachen (Standard-Ausloeser: 80% des Kontextfensters) 2. **Zusammenfassung** -- Aeltere Nachrichten werden in einen Komprimierungseintrag zusammengefasst 3. **Neue Session** -- Eine frische Session startet mit der eingefuegten Zusammenfassung am Anfang 4. **Beibehaltung** -- Alte Transkripte werden fuer den Verlauf aufbewahrt, aber nicht mehr in den Kontext geladen ### Konfiguration - **Aktiviert/deaktiviert** -- Auto-Komprimierung ein-/ausschalten - **Schwellenwert** -- Prozentsatz des Kontextfensters, der die Komprimierung ausloest (Standard 80%) - **Mindestnachrichten** -- Nicht komprimieren, wenn weniger als N Nachrichten vorhanden sind ### Manuelle Komprimierung Sie koennen die Komprimierung jederzeit manuell mit dem `/compact`-Befehl ausloesen. Dies ist nuetzlich, wenn Sie den Kontext zuruecksetzen moechten, ohne wichtige Informationen zu verlieren. --- ## Speicher ### Agenten-Speicher Jeder Agent hat ein Speichersystem fuer das Persistieren wichtiger Informationen ueber Sessions hinweg: - **MEMORY.md** -- Eine Markdown-Datei im Workspace des Agenten, in der wichtige Fakten, Praeferenzen und Kontext gespeichert werden - **Speicherverzeichnis** -- Zusaetzliche Dateien in `memory/` fuer strukturiertes Wissen ### Vektorsuche Neotask unterstuetzt Vektoraehnlichkeitssuche ueber den Agenten-Speicher: 1. **Indizierung** -- Speicherdateien werden mittels Embeddings indiziert 2. **Suche** -- Agenten durchsuchen den Speicher mit natuerlicher Sprache ("Was hat der Benutzer ueber seine API-Praeferenzen gesagt?") 3. **Abruf** -- Relevante Erinnerungen werden nach Aehnlichkeit sortiert zurueckgegeben ### Memory-Plugin (LanceDB) Das LanceDB-Memory-Plugin bietet erweiterte Vektorspeicherung: - Persistente Vektordatenbank - Konfigurierbare Chunk-Groesse und Ueberlappung - Effiziente Aehnlichkeitssuche - Automatische Neuindizierung bei Aenderung von Speicherdateien ### Automatischer Abruf Zu Sessionbeginn koennen relevante Erinnerungen automatisch abgerufen und in den Kontext des Agenten injiziert werden. Dies gibt Agenten Kontinuitaet ueber Sessions hinweg, ohne komplette Konversationsverlaeufe laden zu muessen. --- ## Session-Persistenz Alle Session-Daten werden lokal gespeichert: - **Session-Metadaten** -- `sessions.json` verfolgt aktive Sessions, letzte Aktivitaet, Token-Zaehler und Konfiguration - **Transkripte** -- Individuelle Session-Transkripte als `.jsonl`-Dateien gespeichert - **Wiederherstellung** -- Sessions ueberstehen Gateway-Neustarts ohne Datenverlust ### Bereinigung - Sessions, auf die fuer einen konfigurierbaren Zeitraum nicht zugegriffen wurde (Standard 30 Tage), sind fuer die Bereinigung geeignet - Manuelle Session-Verwaltung ist ueber die UI oder API verfuegbar - Komprimierte Transkripte werden archiviert, koennen aber eingesehen werden