Važno je pažljivo razmotriti kako i gdje se donose odluke u vašem agentskom sistemu.
Prepuštanje većeg broja odluka LLM-u omogućava sistemu da se potencijalno može primijeniti na više zadataka, ali moguće nauštrb brzine, pouzdanosti i robusnosti.
Gdje god je moguće, nastojte što veći dio procesa donošenja odluka premjestiti iz LLM-a u eksplicitan softverski kôd. To je naročito važno za visokorizične i/ili produkcijske tokove rada.
Pri projektovanju agentskog sistema zasnovanog na LLM-u, jedna od najvažnijih odluka jeste u kojoj mjeri donošenje odluka treba biti obuhvaćeno LLM modelom, a u kojoj eksplicitnim softverom.
Radi lakšeg razumijevanja, ovaj izbor možemo posmatrati kao spektar između sljedećih pristupa:
Arhitekture zasnovane na usmjerivaču eksplicitno definiraju redoslijed i logiku u kodu, čime osiguravaju mogućnost testiranja, predvidljivost i robusnost za zadatke iz usko određene domene (nazivaju se i „agenti toka rada“).
Agenti orkestratori oslanjaju se na velike jezičke modele (LLM-ove) da pomoću upita na prirodnom jeziku dinamički određuju tok zadataka, što ih čini idealnim za otvorene interakcije u kojima unaprijed definirana logika nije dovoljna ili moguća.


Za visokorizične produkcijske tokove rada obično preporučujemo više funkcija zasnovanih na usmjerivaču, dok orkestratore treba čuvati za aplikacije koje zahtijevaju fleksibilne razgovore opće namjene.
Arhitekture zasnovane na usmjerivaču
Agentski sistemi s usmjerivačem:
Eksplicitno definiraju tok donošenja odluka kroz kôd odnosno softver, a LLM koriste da odredi kojim će putem taj softver krenuti.
Sličniji su tradicionalnim softverskim sistemima jer imaju jasne i predvidljive putanje koje daju dosljednije rezultate.
Idealni su za zadatke koji se mogu strogo definirati.
Slijedi pojednostavljeni primjer agenta za rezervacije u aviokompaniji koji koristi „pristup s usmjerivačem“. Vidimo da nam LLM pomaže klasificirati namjeru pitanja prema tri moguća izbora, ali naš softver na kraju povezuje tu namjeru s predloškom tekstualnog odgovora. Budući da je LLM strogo ograničen, korisnik će iskusiti dosljednije ponašanje.


Arhitekture s orkestratorom
Za razliku od sistema s usmjerivačem, agentski sistemi s orkestratorom:
Definiraju logičke tokove pomoću upita na prirodnom jeziku umjesto softvera. Napomena: u poređenju s programskim jezikom, prirodni jezik je sam po sebi dvosmislen i fleksibilan, što je istovremeno prednost i nedostatak, kao što ćemo kasnije objasniti. O tome razmišljamo kao o „namjeri umjesto upute“.
Mogu pružiti više opcija obrade, pri čemu LLM određuje redoslijed i način izvršavanja.
Mogu dinamički stvarati nove logičke putanje koje je teško eksplicitno definirati u softveru.
Ova dvosmislenost može dovesti do nedosljednih rezultata, ali kada sve funkcionira, iskustvo može djelovati „čarobno“.
Sljedeći primjer primjenjuje pristup s orkestratorom na isti pojednostavljeni problem aviokompanije. Umjesto da softver odlučuje koji je odgovor prikladan, donošenje odluka prepušta se sloju LLM-a. Ovdje imamo sistem s više agenata u kojem „glavni“ agent orkestrator procjenjuje korisnički upit i prosljeđuje ga agentu posebno namijenjenom za izmjenu letova, koji na kraju korisniku daje odgovor.
U ovom primjeru sloj LLM-a ima ulogu klasifikatora, usmjerivača i autora odgovora. U primjeru s usmjerivačem imao je samo ulogu klasifikatora, dok je softver obavljao ostalo.


Gdje god je moguće, preporučujemo pristupe zasnovane na usmjerivaču jer nude sljedeće prednosti:
Brzina i efikasnost: Lokalni proračuni brži su od orkestratora koji zavise od vanjskih API-ja. Također je mnogo jeftinije obraditi logiku „IF/ELSE“ u Pythonu nego plaćati pružatelju LLM-a da je provuče kroz svoj model s 400 milijardi parametara.
Mogućnost testiranja i predvidljivost: Otklanjanje grešaka, testiranje i održavanje znatno su lakši primjenom ustaljenih softverskih praksi.
Transparentnost i pouzdanost: Manje varijacija u ponašanju pojednostavljuje rješavanje problema. Veći dio toka aplikacije ujedno je izražen kroz transparentan softver pod kontrolom verzija, za razliku od neprozirnih i nerazumljivih težina LLM-a.
Nedostaci pristupa s usmjerivačem jesu krutost, nefleksibilnost i poteškoće pri rješavanju otvorenijih problema. Korisnicima bi chatbot koji uvijek daje potpuno iste odgovore mogao djelovati dosadno i jednolično.
Dizajni s orkestratorom nude napredne mogućnosti:
Planiranje: Mogu dinamički planirati odgovore.
Odabir alata/predaja agentu: Odabiru odgovarajuće alate ili delegiraju zadatke agentima.
Iterativno kombiniranje rezultata: Iterativno i kreativno ponovo kombiniraju rezultate.
Utvrđivanje završetka: Određuju kada je prikupljeno dovoljno informacija za dovršavanje odgovora.
Okviri kao što su Pydantic-AI ili OpenAI Agents SDK omogućavaju jednostavnu i brzu implementaciju orkestracije. Zbog toga je ovaj pristup odličan za demonstracije ili provjeru koncepta.
Nedostaci ovog pristupa jesu sljedeći:
Nema garancije da će koraci planiranja LLM-a i radnje koje slijede biti ispravni ili prikladni. Sistem s usmjerivačem ima isti problem, ali je njegovo ponašanje predvidljivije jer je strože ograničen.
Za jednostavne i jasno definirane zadatke vjerovatno nam nisu potrebne sve mogućnosti sistema s više agenata. Naprimjer, u našem primjeru agenta aviokompanije vjerovatno postoji samo ograničen broj vrsta upita koje korisnik zaista želi uputiti sistemu podrške aviokompanije.
Budući da LLM sadrži više logike, znatno je podložniji jailbreak napadima i iskorištavanju od zlonamjernih aktera.
Donošenje odluka apstrahira u LLM, pa je vaš sistem teže razumjeti, iako alati za praćenje kao što su Langfuse ili Braintrust mogu djelimično pomoći.
Napomena čitaocu: iako se mogućnosti modela brzo mijenjaju, malo je vjerovatno da će se ono što slijedi promijeniti u bliskoj budućnosti.
Odredite obim svog problema.
Možete li željenu logiku odlučivanja jednostavno prikazati dijagramom?
Jesu li neuspjeh ili neočekivano ponašanje neprihvatljivi u vašoj aplikaciji?
Odgovor „da“ na bilo koje od prethodnih pitanja ukazuje na to da bi funkcije usmjerivača bile bolje rješenje.
Gdje god je moguće, preporučujemo pristupe s usmjerivačem dokle god to sistem dopušta. Opće je pravilo da svaki dio sistema koji se može izraziti kodom treba i izraziti kodom, odnosno da LLM-ove ne treba prekomjerno koristiti kada nisu potrebni.
Kada se dosegnu granice ovih pristupa, neke prednosti otvorenog orkestratora mogu se ostvariti na ograničen način. Naprimjer:
Odabir alata/predaja agentu: Jednostavno se implementira uslovnim grananjem ili LLM klasifikatorima.
Utvrđivanje završetka: Jednostavni LLM klasifikatori mogu provjeriti potpunost odgovora prije nego što se on vrati korisniku.
Međutim, „planiranje“ i „iterativno kombiniranje rezultata“ nesumnjivo je mnogo teže ostvariti u krutom sistemu s usmjerivačem. Zato, kada zadatak zahtijeva te mogućnosti, što utvrđuje LLM klasifikator ili neka druga logika, predlažemo da u sistemu napravite manje ograničenu granu s orkestratorom.
Izbor između arhitekture s usmjerivačem i arhitekture s orkestratorom treba odražavati jasnoću, složenost i stil interakcije vaše aplikacije. Pristupi zasnovani na usmjerivaču trenutno pružaju pouzdanost, efikasnost i jednostavno testiranje jasno definiranih zadataka. Orkestratori nude veću fleksibilnost za šire interakcije u obliku razgovora.
Kako LLM-ovi budu napredovali, ravnoteža između ovih pristupa mogla bi se mijenjati. Za produkcijska radna opterećenja prednost dajemo arhitekturama zasnovanim na usmjerivaču ili hibridnim arhitekturama, dok orkestratore čuvamo za otvorene probleme koji zahtijevaju dinamičnu interakciju nalik ljudskoj.