# Sesje i pamięć ## Sesje ### Jak działają sesje Każda rozmowa z agentem odbywa się w **sesji**. Sesje są identyfikowane przez klucze kodujące kontekst -- który agent, który kanał, który czat. Sesje utrzymują kompletny transkrypt (tylko do dołączania JSONL) wszystkich wiadomości, wywołań narzędzi i wyników. Ten transkrypt jest tym, co daje agentom kontekst o trwającej rozmowie. ### Klucze sesji Sesje są kierowane automatycznie na podstawie kontekstu: | Wzorzec | Znaczenie | |---------|----------| | `agent:main:main` | Główna bezpośrednia rozmowa | | `agent:::group:` | Czat grupowy na konkretnym kanale | | `agent:::channel:` | Rozmowa na kanale/pokoju | | `cron:` | Wykonanie zaplanowanego zadania | | `hook:` | Wykonanie wyzwolone przez webhook | ### Cykl życia sesji - **Dzienny reset** -- Sesje automatycznie resetują się o konfigurowalnej godzinie (domyślnie 4:00 lokalnie). Tworzy to świeży kontekst rozmowy każdego dnia, zachowując historię. - **Wygaśnięcie po bezczynności** -- Sesje, które nie były aktywne przez konfigurowalny okres, mogą się automatycznie resetować. - **Ręczny reset** -- Zacznij od nowa w dowolnym momencie poleceniem `/new` lub `/reset`. ### Śledzenie tokenów Sesje śledzą skumulowane użycie tokenów (wejściowe, wyjściowe, odczyt cache, zapis cache) do monitorowania kosztów i zarządzania oknem kontekstu. --- ## Kompakcja ### Czym jest kompakcja? Gdy rozmowa zbliża się do limitu okna kontekstu modelu, Neotask **kompaktuje** ją -- podsumowuje starsze wiadomości w skondensowany przegląd i rozpoczyna nową sesję z tym podsumowaniem plus najnowszymi wiadomościami. ### Jak to działa 1. **Wykrywanie** -- Monitoruj użycie kontekstu (domyślny wyzwalacz: 80% okna kontekstu) 2. **Podsumowanie** -- Starsze wiadomości są podsumowywane we wpis kompakcji 3. **Nowa sesja** -- Nowa sesja zaczyna się z wstrzykniętym podsumowaniem na górze 4. **Zachowanie** -- Stare transkrypty są zachowywane do historii, ale nie są już ładowane do kontekstu ### Konfiguracja - **Włączone/wyłączone** -- Przełącz automatyczną kompakcję - **Próg** -- Procent okna kontekstu, który wyzwala kompakcję (domyślnie 80%) - **Minimalna liczba wiadomości** -- Nie kompaktuj, jeśli jest mniej niż N wiadomości ### Ręczna kompakcja Możesz wyzwolić kompakcję ręcznie w dowolnym momencie poleceniem `/compact`. Jest to przydatne, gdy chcesz zresetować kontekst bez utraty ważnych informacji. --- ## Pamięć ### Pamięć agenta Każdy agent ma system pamięci do utrwalania ważnych informacji między sesjami: - **MEMORY.md** -- Plik markdown w przestrzeni roboczej agenta, gdzie przechowywane są ważne fakty, preferencje i kontekst - **Katalog pamięci** -- Dodatkowe pliki w `memory/` dla ustrukturyzowanej wiedzy ### Wyszukiwanie wektorowe Neotask obsługuje wyszukiwanie podobieństwa wektorowego po pamięci agenta: 1. **Indeksowanie** -- Pliki pamięci są indeksowane przy użyciu osadzeń 2. **Wyszukiwanie** -- Agenci zapytują pamięć w języku naturalnym („Co użytkownik powiedział o swoich preferencjach API?") 3. **Przypominanie** -- Odpowiednie wspomnienia są zwracane uszeregowane według podobieństwa ### Wtyczka pamięci (LanceDB) Wtyczka pamięci LanceDB zapewnia zaawansowane przechowywanie wektorów: - Trwała wektorowa baza danych - Konfigurowalny rozmiar fragmentu i nakładanie - Efektywne wyszukiwanie podobieństwa - Automatyczne ponowne indeksowanie przy zmianach plików pamięci ### Automatyczne przypominanie Na początku sesji odpowiednie wspomnienia mogą być automatycznie przypomniane i wstrzyknięte do kontekstu agenta. Daje to agentom ciągłość między sesjami bez ładowania całych historii rozmów. --- ## Trwałość sesji Wszystkie dane sesji są przechowywane lokalnie: - **Metadane sesji** -- `sessions.json` śledzi aktywne sesje, ostatnią aktywność, liczby tokenów i konfigurację - **Transkrypty** -- Indywidualne transkrypty sesji przechowywane jako pliki `.jsonl` - **Odzyskiwanie** -- Sesje przeżywają ponowne uruchomienie bramy bez utraty danych ### Czyszczenie - Sesje, do których nie uzyskano dostępu przez konfigurowalny okres (domyślnie 30 dni), kwalifikują się do czyszczenia - Ręczne zarządzanie sesjami jest dostępne przez interfejs użytkownika lub API - Skompaktowane transkrypty są archiwizowane, ale można je przeglądać