# Sessies en geheugen ## Sessies ### Hoe sessies werken Elk gesprek met een agent vindt plaats in een **sessie**. Sessies worden geïdentificeerd door sleutels die de context coderen, welke agent, welk kanaal, welke chat. Sessies onderhouden een volledig transcript (alleen-toevoegen JSONL) van alle berichten, toolaanroepen en resultaten. Dit transcript is wat agents context geeft over het lopende gesprek. ### Sessiesleutels Sessies worden automatisch gerouteerd op basis van context: | Patroon | Betekenis | |---------|---------| | `agent:main:main` | Hoofdgesprek direct | | `agent:::group:` | Groepschat op een specifiek kanaal | | `agent:::channel:` | Kanaal-/kamersgesprek | | `cron:` | Geplande taakuitvoering | | `hook:` | Webhook-geactiveerde uitvoering | ### Sessielevenscyclus - **Dagelijkse reset**, Sessies worden automatisch gereset op een configureerbaar tijdstip (standaard 4:00 uur lokaal). Dit creëert dagelijks een frisse gesprekscontext terwijl de geschiedenis wordt bewaard. - **Inactieve vervaldatum**, Sessies die gedurende een configureerbare periode niet actief zijn geweest, kunnen automatisch worden gereset. - **Handmatige reset**, Start op elk moment opnieuw met een `/new`- of `/reset`-opdracht. ### Tokenbijhouding Sessies bijhouden cumulatief tokengebruik (invoer, uitvoer, cache-lezen, cache-schrijven) voor kostenmonitoring en contextvenster-beheer. --- ## Compactie ### Wat is compactie? Wanneer een gesprek de contextvensterlimieten van het model nadert, **compacteert** Neotask het, oudere berichten samenvatten in een gecondenseerd overzicht en een nieuwe sessie starten met die samenvatting plus recente berichten. ### Hoe het werkt 1. **Detectie**, Contextgebruik monitoren (standaard trigger: 80% van het contextvenster) 2. **Samenvatting**, Oudere berichten worden samengevat in een compactie-invoer 3. **Nieuwe sessie**, Een nieuwe sessie start met de samenvatting bovenin ingespoten 4. **Bewaring**, Oude transcripten worden bewaard voor geschiedenis maar niet meer in context geladen ### Configuratie - **In-/uitgeschakeld**, Automatische compactie aan/uitzetten - **Drempel**, Percentage van het contextvenster dat compactie activeert (standaard 80%) - **Minimum berichten**, Niet compacteren als er minder dan N berichten zijn ### Handmatige compactie U kunt compactie op elk moment handmatig activeren met de `/compact`-opdracht. Dit is handig wanneer u context wilt resetten zonder belangrijke informatie te verliezen. --- ## Geheugen ### Agentgeheugen Elke agent heeft een geheugensysteem voor het bewaren van belangrijke informatie over sessies heen: - **MEMORY.md**, Een markdownbestand in de werkruimte van de agent waar belangrijke feiten, voorkeuren en context worden opgeslagen - **Geheugenmap**, Aanvullende bestanden in `memory/` voor gestructureerde kennis ### Vectorzoeken Neotask ondersteunt vectorgelijkenis-zoeken over agentgeheugen: 1. **Indexeren**, Geheugenbestanden worden geïndexeerd met behulp van embeddings 2. **Zoeken**, Agents bevragen geheugen met natuurlijke taal ("Wat zei de gebruiker over hun API-voorkeuren?") 3. **Herinnering**, Relevante herinneringen worden geretourneerd gerangschikt op gelijkenis ### Geheugen-plugin (LanceDB) De LanceDB-geheugenplugin biedt geavanceerde vectoropslag: - Aanhoudende vectordatabase - Configureerbare chunkgrootte en overlap - Efficiënt gelijkenis-zoeken - Automatisch herindexeren wanneer geheugenbestanden veranderen ### Automatische herinnering Aan het begin van een sessie kunnen relevante herinneringen automatisch worden teruggeroepen en ingespoten in de context van de agent. Dit geeft agents continuïteit over sessies zonder volledige gespreksgeschiedenissen te laden. --- ## Sessiepersistentie Alle sessiegegevens worden lokaal opgeslagen: - **Sessiemetadata**, `sessions.json` bijhoudt actieve sessies, laatste activiteit, tokentellingen en configuratie - **Transcripten**, Individuele sessietranscripten opgeslagen als `.jsonl`-bestanden - **Herstel**, Sessies overleven Gateway-herstarts zonder gegevensverlies ### Opschoning - Sessies die gedurende een configureerbare periode niet zijn benaderd (standaard 30 dagen) komen in aanmerking voor opschoning - Handmatig sessiebeheer is beschikbaar via de UI of API - Gecomprimeerde transcripten worden gearchiveerd maar kunnen worden bekeken