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:<id>:<kanał>:group:<id> |
Czat grupowy na konkretnym kanale |
agent:<id>:<kanał>:channel:<id> |
Rozmowa na kanale/pokoju |
cron:<jobId> |
Wykonanie zaplanowanego zadania |
hook:<uuid> |
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
/newlub/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
- Wykrywanie -- Monitoruj użycie kontekstu (domyślny wyzwalacz: 80% okna kontekstu)
- Podsumowanie -- Starsze wiadomości są podsumowywane we wpis kompakcji
- Nowa sesja -- Nowa sesja zaczyna się z wstrzykniętym podsumowaniem na górze
- 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:
- Indeksowanie -- Pliki pamięci są indeksowane przy użyciu osadzeń
- Wyszukiwanie -- Agenci zapytują pamięć w języku naturalnym („Co użytkownik powiedział o swoich preferencjach API?")
- 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ć