Trajno stanje agenta: Zašto serijaliziramo svaku akciju u Postgres
U svijetu autonomnih agenata, gdje se svaki korak oslanja na prethodni, gubitak stanja nije samo smetnja – to je katastrofa. Zamislite da vaš agent, usred složenog zadatka, izgubi kontekst i krene ispočetka. Ili, još gore, da donese odluku na temelju nepotpunih podataka. Upravo zato smo u RiNET-u razvili obrazac koji svaku akciju agenta serijaliziramo u Postgres prije nego što krenemo na sljedeći korak.
Što je trajno stanje agenta?
Trajno stanje agenta (Durable Agent State) je obrazac u kojem se svaka promjena stanja – svaka odluka, svaki API poziv, svaki međurezultat – upisuje u bazu podataka prije nego agent nastavi s radom. To nije samo backup; to je temelj na kojem gradimo pouzdanost i transparentnost.
Zašto Postgres?
Postgres nije slučajan izbor. Njegova ACID svojstva (Atomicity, Consistency, Isolation, Durability) osiguravaju da je svaka transakcija potpuna i konzistentna, čak i u slučaju pada sustava. Uz to, Postgres podržava JSONB tip podataka, što omogućuje fleksibilno pohranjivanje složenih struktura stanja bez žrtvovanja performansi.
Kako to funkcionira u praksi?
Evo pojednostavljenog primjera toka rada:
- Korak 1: Agent prima ulazni podatak (npr. upit korisnika).
- Korak 2: Prije obrade, agent serijalizira trenutno stanje (uključujući ulaz) u Postgres tablicu
agent_state. - Korak 3: Tek nakon što je potvrda o upisu primljena, agent izvršava obradu (npr. poziv LLM modelu).
- Korak 4: Rezultat obrade se ponovno serijalizira, zajedno s ID-om prethodnog stanja, stvarajući neprekinuti lanac.
Ovaj pristup omogućuje da se u slučaju kvara agent može vratiti na posljednje potvrđeno stanje i nastaviti odatle, bez ponavljanja ili gubitka konteksta.
Prednosti za debugiranje i reprodukciju
Jedna od najvećih prednosti ovog obrasca je mogućnost točne reprodukcije (exact replay). Budući da je svaka akcija zabilježena s vremenskom oznakom i redoslijedom, možemo ponovno pokrenuti cijeli tok rada agenta, korak po korak, i provjeriti svaku odluku. Ovo je neprocjenjivo za debugiranje složenih ponašanja u rojevima agenata, gdje interakcije mogu biti nepredvidive.
Implementacija u RiNET-u
U RiNET-u smo ovaj obrazac integrirali u jezgru našeg sustava. Svaki agent, bez obzira na ulogu, koristi taj mehanizam za serijalizaciju stanja. To nam omogućuje da:
- Eliminiramo gubitak stanja čak i u slučaju pada čvora.
- Omogućimo horizontalno skaliranje – agenti mogu preuzeti stanje drugog agenta ako je potrebno.
- Pružimo potpunu reviziju (audit trail) svih akcija, što je ključno za usklađenost s regulativama.
Izazovi i rješenja
Naravno, serijalizacija svakog koraka donosi i izazove. Performanse su prva briga – upis u bazu prije svakog koraka može usporiti sustav. No, optimizacijama poput batch upisa i asinkronih potvrda, uspjeli smo smanjiti kašnjenje na prihvatljivu razinu. Također, koristimo connection pooling i indeksiranje ključnih polja kako bismo osigurali brz pristup.
Zaključak
Trajno stanje agenta nije samo tehnički detalj – to je filozofija. Vjerujemo da svaki korak agenta treba biti zabilježen i ponovljiv, jer samo tako možemo graditi pouzdane i transparentne autonomne sustave. U RiNET-u smo dokazali da je moguće kombinirati brzinu i pouzdanost, a Postgres je ključni dio te jednadžbe.
Zanima vas ovakva AI tehnologija?
RiNET gradi sovereign AI rjesenja za javni sektor i poduzeca - od civic intelligence do automatizacije nabave.
Kontaktirajte nas →
Komentari