Vodila za načrtovanje agentskih sistemov

Praktična vodila ekipam pomagajo določiti, katera vedenja agenta sodijo v jezikovni model in katera zahtevajo eksplicitno programsko opremo.

Povzetek

  • Pomembno je skrbno premisliti, kako in kje se v agentskem sistemu sprejemajo odločitve.

  • Če več odločitev prepustimo velikemu jezikovnemu modelu, se lahko sistem posploši na več nalog, vendar morda na račun hitrosti, zanesljivosti in robustnosti.

  • Kjer je mogoče, čim več odločanja prenesite iz velikega jezikovnega modela v eksplicitno programsko kodo. To še posebej velja za visoko tvegane in produkcijske delovne postopke.

Uvod

Pri načrtovanju agentskega sistema, ki temelji na velikem jezikovnem modelu, je ena najpomembnejših odločitev, koliko odločanja bo zajetega v velikem jezikovnem modelu in koliko v eksplicitni programski opremi.

Za lažje razumevanje si lahko to izbiro predstavljamo kot razpon med naslednjima pristopoma:

  • Arhitekture z usmerjevalnikom zaporedje in logiko izrecno opredelijo v kodi, kar pri nalogah z ozkega področja zagotavlja možnost preizkušanja, predvidljivost in robustnost (imenujemo jih tudi »agenti delovnih postopkov«).

  • Agenti orkestratorji uporabljajo velike jezikovne modele, da na podlagi pozivov v naravnem jeziku dinamično določajo potek nalog. Primerni so za odprte interakcije, pri katerih vnaprej določena logika ne zadostuje ali ni izvedljiva.

Uvodni diagram.

Za visoko tvegane produkcijske delovne postopke običajno priporočamo več funkcij, ki temeljijo na usmerjevalniku, orkestratorje pa prihranimo za aplikacije, ki zahtevajo prilagodljive, splošno namenske pogovore.

Usmerjevalnik in orkestrator: razumevanje razlike

Arhitekture z usmerjevalnikom

Agentski sistemi z usmerjevalnikom:

  • Potek odločanja izrecno opredelijo s kodo oziroma programsko opremo, veliki jezikovni model pa uporabijo za določitev poti, ki jo bo programska oprema izbrala.

  • So bližje tradicionalnim programskim sistemom, saj imajo jasne in predvidljive poti, ki zagotavljajo doslednejše rezultate.

  • Idealni so za naloge, ki jih je mogoče strogo opredeliti.

V nadaljevanju je poenostavljen primer agenta klepetalnega robota za rezervacije letov, ki uporablja »pristop z usmerjevalnikom«. Veliki jezikovni model pomaga razvrstiti namen vprašanja med tri možnosti, vendar na koncu naša programska oprema ta namen preslika v predlogo besedilnega odgovora. Ker je veliki jezikovni model močno omejen, bo uporabnik deležen doslednejšega vedenja.

Diagram, ki ponazarja razliko med usmerjevalnikom in orkestratorjem.

Arhitekture z orkestratorjem

Za razliko od sistemov z usmerjevalnikom agentski sistemi z orkestratorjem:

  • Logične poteke namesto s programsko opremo opredelijo s pozivi v naravnem jeziku. Opomba: naravni jezik je v primerjavi s programskim jezikom že po naravi dvoumen in prilagodljiv, kar je hkrati prednost in slabost, kot bomo obravnavali pozneje. Temu pravimo »namen namesto navodila«.

  • Ponudijo lahko več možnosti obdelave, pri čemer veliki jezikovni model določi vrstni red in način izvajanja.

  • Dinamično lahko ustvarijo nove logične poti, ki jih je težko izrecno opredeliti v programski opremi.

  • Ta dvoumnost lahko povzroči nedosledne rezultate, kadar pa pristop deluje, lahko učinkuje »čarobno«.

Naslednji primer pri istem poenostavljenem letalskem scenariju uporablja pristop z orkestratorjem. Namesto da bi ustrezen odgovor določila programska oprema, se odločanje prepusti plasti velikega jezikovnega modela. V tem večagentskem sistemu »glavni« agent orkestrator razvrsti uporabnikovo poizvedbo in jo preda agentu, posebej zasnovanemu za spreminjanje letov, ta pa nato uporabniku posreduje odgovor.

V tem primeru plast velikega jezikovnega modela opravlja vloge razvrščevalnika, usmerjevalnika in pisca odgovorov. V primeru z usmerjevalnikom je opravljala le vlogo razvrščevalnika, za vse drugo pa je poskrbela programska oprema.

Diagram, ki ponazarja razliko med usmerjevalnikom in orkestratorjem.

Prednosti in izzivi arhitektur z usmerjevalnikom

Kjer je mogoče, priporočamo pristope z usmerjevalnikom, saj imajo naslednje prednosti:

  • Hitrost in učinkovitost: Lokalno računanje je hitrejše od orkestratorjev, ki so odvisni od zunanjih vmesnikov API. Poleg tega je veliko ceneje obdelati logiko »IF/ELSE« v Pythonu kot plačati ponudniku velikega jezikovnega modela, da jo obdela s svojim modelom s 400 milijardami parametrov.

  • Možnost preizkušanja in predvidljivost: Z uveljavljenimi praksami razvoja programske opreme je odpravljanje napak, preizkušanje in vzdrževanje bistveno lažje.

  • Preglednost in zanesljivost: Manjše razlike v vedenju poenostavijo odpravljanje težav. Večji delež poteka aplikacije je izražen tudi v pregledni programski opremi z nadzorom različic, ne pa v nepreglednih in nerazložljivih utežeh velikega jezikovnega modela.

Slabost pristopov z usmerjevalnikom je, da so lahko togi in neprilagodljivi ter se slabše obnesejo pri bolj odprtih problemih. Klepetalni robot, ki vedno odgovarja s povsem enakimi odgovori, se lahko uporabnikom zdi dolgočasen ali nespremenljiv.

Prednosti in izzivi arhitektur z orkestratorjem

Zasnove z orkestratorjem ponujajo zmogljive funkcije:

  1. Načrtovanje: Odgovore lahko načrtujejo dinamično.

  2. Izbira orodij in predaja agentu: Izberejo ustrezna orodja ali naloge prenesejo na agente.

  3. Iterativno združevanje rezultatov: Rezultate ustvarjalno izpopolnjujejo in ponovno združujejo.

  4. Ugotavljanje dokončanosti: Določijo, kdaj je zbranih dovolj informacij za dokončanje odgovora.

Ogrodja, kot sta Pydantic-AI in OpenAI Agents SDK, omogočajo preprosto in hitro uvedbo orkestracije. Zato je ta pristop odličen za predstavitve in preverjanje izvedljivosti konceptov.

Slabosti tega pristopa so:

  • Nobenega zagotovila ni, da bodo koraki načrtovanja velikega jezikovnega modela in nadaljnja dejanja pravilni oziroma ustrezni. Enako težavo ima sistem z usmerjevalnikom, vendar je zaradi večjih omejitev njegovo vedenje predvidljivejše.

  • Pri preprostih, dobro opredeljenih nalogah najverjetneje ne potrebujemo vseh zmogljivosti večagentskega sistema. V našem primeru letalskega agenta je denimo verjetno le omejeno število vrst poizvedb, ki jih uporabniki dejansko želijo nasloviti na sistem podpore letalske družbe.

  • Ker je v velikem jezikovnem modelu več logike, je veliko dovzetnejši za prebijanje varnostnih mehanizmov ali izkoriščanje s strani zlonamernih akterjev.

  • Odločanje prenese v abstraktno plast velikega jezikovnega modela, zato je sistem težje razumeti, čeprav lahko pri tem deloma pomagajo orodja za spremljanje, kot sta Langfuse in Braintrust.

Naša vodila za načrtovanje agentskih sistemov

Opomba bralcu: čeprav se zmogljivosti modelov hitro spreminjajo, se spodnja priporočila v bližnji prihodnosti verjetno ne bodo spremenila.

Razumite, katere odločitve zahteva vaša aplikacija

Določite obseg svojega problema.

  • Ali lahko želeno logiko odločanja preprosto predstavite z diagramom?

  • Ali v svoji aplikaciji ne dopuščate napak ali nepričakovanega vedenja?

Če ste na katero od zgornjih vprašanj odgovorili pritrdilno, so primernejše funkcije usmerjevalnika.

Najprej usmerjevalnik, nato hibridni pristopi

Kjer je mogoče, priporočamo uporabo pristopov z usmerjevalnikom, dokler ti zadoščajo. Splošno pravilo je, da del sistema, ki ga je mogoče izraziti s kodo, tudi izrazite s kodo, torej velikih jezikovnih modelov ne uporabljajte čezmerno, kadar niso potrebni.

Ko ti pristopi dosežejo svoje meje, je mogoče nekatere prednosti odprtega orkestratorja poustvariti na omejen način. Na primer:

  1. Izbira orodij in predaja agentu: Preprosto se izvedeta s pogojnim razvejanjem ali razvrščevalniki na podlagi velikega jezikovnega modela.

  2. Ugotavljanje dokončanosti: Preprosti razvrščevalniki na podlagi velikega jezikovnega modela lahko preverijo popolnost odgovora, preden se ta vrne uporabniku.

»Načrtovanje« in »iterativno združevanje rezultatov« pa je v togem sistemu z usmerjevalnikom nedvomno veliko težje doseči. Kadar naloga zahteva te zmogljivosti, kar določi razvrščevalnik na podlagi velikega jezikovnega modela ali druga logika, predlagamo, da v sistemu ustvarite manj omejeno vejo z orkestratorjem.

Sklep in pogled v prihodnost

Izbira med arhitekturo z usmerjevalnikom in arhitekturo z orkestratorjem mora odražati jasnost in kompleksnost aplikacije ter način interakcije. Pristopi z usmerjevalnikom trenutno pri jasno opredeljenih nalogah zagotavljajo zanesljivost, učinkovitost in preprosto preizkušanje. Orkestratorji ponujajo več prilagodljivosti pri širših pogovornih interakcijah.

Z nadaljnjim napredkom velikih jezikovnih modelov se lahko ravnovesje med tema pristopoma spremeni. Za produkcijske delovne obremenitve se nagibamo k arhitekturam z usmerjevalnikom ali hibridnim arhitekturam, orkestratorje pa prihranimo za odprte probleme, ki zahtevajo dinamično interakcijo, podobno človeški.

Avtor

Andrew Liubinas