HTTP jest protokołem bezstanowym. Każde żądanie jest niezależne — serwer nie pamięta poprzedniego. Cookies, session tokens, bazy danych — to są warstwy które dodają stan do bezstanowego protokołu.
Agenty AI mają ten sam dylemat. Model językowy sam w sobie jest bezstanowy — każde wywołanie zaczyna od zera. Dodanie stanu (historia konwersacji, pamięć, kontekst zadania) jest decyzją architektoniczną z trade-offami.
Czym jest stateful vs stateless agent
Stateful vs stateless agent to fundamentalne rozróżnienie architektoniczne — stateless agent nie przechowuje stanu między wywołaniami (każde wywołanie jest niezależne, stan jest przekazywany w każdym żądaniu lub nie istnieje), stateful agent utrzymuje stan między wywołaniami przez zewnętrzny magazyn (baza danych, pamięć wektorowa, session store) — z różnymi trade-offami dotyczącymi złożoności, skalowalności i możliwości agenta.
Stateless agent
Każde wywołanie jest niezależne. Jeśli agent potrzebuje historii konwersacji — jest ona przekazywana jako część każdego żądania. Jeśli agent skończy zadanie — nie pamięta go przy następnym wywołaniu.
Zalety: prostota implementacji, łatwe skalowanie (każda instancja jest identyczna), brak problemów z synchronizacją stanu, łatwy testing (deterministyczne inputy → deterministyczne outputy przy tym samym modelu).
Wady: każde żądanie musi zawierać cały potrzebny kontekst → duże okna kontekstu → wyższe koszty tokenów. Brak ciągłości między sesjami — użytkownik musi powtarzać kontekst przy każdej nowej rozmowie.
Stateful agent
Agent utrzymuje stan między wywołaniami. Pamięta poprzednie konwersacje, decyzje, kontekst zadania. Może prowadzić wielogodzinne lub wielodniowe zadania z zachowaniem ciągłości.
Zalety: ciągłość między sesjami, mniejsze okna kontekstu per wywołanie (stan jest w bazie, nie w prompcie), możliwość długoterminowych zadań.
Wady: złożoność implementacji (synchronizacja stanu, obsługa konfliktów, backup i recovery), trudniejsze skalowanie (stan musi być dostępny dla właściwej instancji), problemy z izolacją (stan jednego użytkownika nie może „przeciec” do innego).
Hybrydowe podejście
Większość produkcyjnych agentów jest hybrydowa: stateless dla pojedynczych wywołań (model nie ma wbudowanego stanu), stateful na poziomie sesji (historia konwersacji w session store), stateful na poziomie użytkownika (preferencje, długoterminowa pamięć w bazie wektorowej).
Redis jako session store dla historii konwersacji (stateful na poziomie sesji, bezstanowe wywołania modelu) to popularny wzorzec w produkcji.