# Sessioner och minne ## Sessioner ### Hur sessioner fungerar Varje konversation med en agent sker i en **session**. Sessioner identifieras av nycklar som kodar kontexten, vilken agent, vilken kanal, vilken chatt. Sessioner upprätthåller ett komplett transkript (append-only JSONL) av alla meddelanden, verktygsanrop och resultat. Detta transkript är vad som ger agenter kontext om den pågående konversationen. ### Sessionsnycklar Sessioner dirigeras automatiskt baserat på kontext: | Mönster | Betydelse | |---------|---------| | `agent:main:main` | Huvud direkt konversation | | `agent:::group:` | Gruppchatt på en specifik kanal | | `agent:::channel:` | Kanal/rumskonversation | | `cron:` | Schemalagd jobbexekvering | | `hook:` | Webhook-utlöst exekvering | ### Sessionslivscykel - **Daglig återställning**, Sessioner återställs automatiskt vid en konfigurerbar tid (standard 04:00 lokal tid). Detta skapar en ny konversationskontext varje dag medan historiken bevaras. - **Inaktivitetsutgång**, Sessioner som inte har varit aktiva under en konfigurerbar period kan återställas automatiskt. - **Manuell återställning**, Börja om när som helst med kommandot `/new` eller `/reset`. ### Tokenspårning Sessioner spårar kumulativ tokenanvändning (input, output, cache-läsning, cache-skrivning) för kostnadsövervakning och kontextfönsterhantering. --- ## Kompaktering ### Vad är kompaktering? När en konversation närmar sig modellens kontextfönstergräns **kompakterar** Neotask den, sammanfattar äldre meddelanden till en komprimerad översikt och startar en ny session med den sammanfattningen plus nyliga meddelanden. ### Hur det fungerar 1. **Detektering**, Övervaka kontextanvändning (standardutlösare: 80 % av kontextfönstret) 2. **Sammanfattning**, Äldre meddelanden sammanfattas till en kompakteringspost 3. **Ny session**, En ny session startar med sammanfattningen injicerad överst 4. **Bevarande**, Gamla transkript bevaras för historik men laddas inte längre in i kontexten ### Konfiguration - **Aktiverad/inaktiverad**, Slå på eller av automatisk kompaktering - **Tröskel**, Procentandel av kontextfönstret som utlöser kompaktering (standard 80 %) - **Minsta antal meddelanden**, Kompaktera inte om det finns färre än N meddelanden ### Manuell kompaktering Du kan utlösa kompaktering manuellt när som helst med kommandot `/compact`. Detta är användbart när du vill återställa kontexten utan att förlora viktig information. --- ## Minne ### Agentminne Varje agent har ett minnessystem för att bevara viktig information mellan sessioner: - **MEMORY.md**, En markdown-fil i agentens arbetsyta där viktiga fakta, preferenser och kontext lagras - **Minneskatalog**, Ytterligare filer i `memory/` för strukturerad kunskap ### Vektorsökning Neotask stöder vektorsimilaritetssökning över agentminne: 1. **Indexering**, Minnesfiler indexeras med hjälp av inbäddningar 2. **Sökning**, Agenter frågar minnet med naturligt språk ("Vad sa användaren om sina API-preferenser?") 3. **Återkallning**, Relevanta minnen returneras rankade efter likhet ### Minnes-plug-in (LanceDB) LanceDB-minnes-plug-inet tillhandahåller avancerad vektorlagring: - Beständig vektordatabas - Konfigurerbar chunkstorlek och överlappning - Effektiv similaritetssökning - Automatisk omindexering när minnesfiler ändras ### Automatisk återkallning Vid sessionstart kan relevanta minnen automatiskt återkallas och injiceras i agentens kontext. Detta ger agenter kontinuitet mellan sessioner utan att ladda hela konversationshistoriker. --- ## Sessionsbeständighet All sessionsdata lagras lokalt: - **Sessionsmetadata**, `sessions.json` spårar aktiva sessioner, senaste aktivitet, tokenantal och konfiguration - **Transkript**, Individuella sessionstranskript lagrade som `.jsonl`-filer - **Återhämtning**, Sessioner överlever Gateway-omstarter utan dataförlust ### Rensning - Sessioner som inte har nåtts under en konfigurerbar period (standard 30 dagar) är berättigade till rensning - Manuell sessionshantering är tillgänglig via användargränssnittet eller API:et - Kompakterade transkript arkiveras men kan granskas