Jednostavniji harnessi i agenti koji izvršavaju kod pogodniji su za otvorene zadatke, kod kojih pretjerano kruta orkestracija može ograničiti performanse modela.
Zbog toga su izvršavanje koda i sandboxing sada ključna arhitektonska pitanja za agentske sisteme.
Agents SDK smanjuje složenost i količinu koda potrebnu za izradu agenata koji izvršavaju kod – u našim testovima čak do šest puta.
Napredak agentskih sistema dugo se zasnivao na poboljšanju orkestracije: boljim upitima, interfejsima alata, upravljanju kontekstom i strožijem toku kontrole. Međutim, kako agenti za programiranje postaju sposobniji, ta se ravnoteža počinje mijenjati.
U mnogim otvorenim radnim tokovima usko grlo više nije sama petlja agenta, nego sloj za izvršavanje: sandbox u kojem model piše kod, pokreće naredbe, pregleda rezultate i ponavlja postupak. Kako se sve veći dio rezonovanja na nivou zadatka premješta u to okruženje, okolna orkestracija mora postati jednostavnija kako bi model mogao iskazati sve svoje mogućnosti.
Upravo tu promjenu omogućava nova verzija Agents SDK-a. Tokom testiranja u fazi ranog pristupa utvrdili smo da SDK, umjesto dodavanja još jednog sloja logike radnog okvira, čini sloj za izvršavanje modularnijim i lakšim za kombinovanje, pa ostatak sistema može ostati jednostavan.
U inženjeringu harnessa postalo je popularno svesti harness na njegov najmanji djelotvorni oblik. U osnovi, harness je softver oko modela: sloj koji upravlja kontekstom, alatima, tokom kontrole i petljama povratnih informacija kako bi model mogao pouzdano obavljati posao.
Tokom proteklih nekoliko godina mnoga poboljšanja performansi agenata proizašla su iz jačanja tog sloja. Bolji alati, bolje pamćenje i dohvaćanje podataka, eksplicitnija razrada zadataka i strožija orkestracija često su sisteme činili pouzdanijim i sposobnijim. U toj paradigmi napredak je uglavnom značio ugrađivanje veće količine logike zadatka u softver oko modela.
Taj obrazac sada slabi, barem kada je riječ o određenoj grupi otvorenih zadataka. Sve više projekata i radova ukazuje na to da se performanse ne poboljšavaju uvijek kada harness postane strože definiran. Kod potpomognutog programiranja, dugotrajnih zadataka, korištenja preglednika i zadataka s dugim kontekstom stalno se pojavljuje isti obrazac: kada model postane dovoljno inteligentan, nametanje previše strukture zadatka u okolnom softveru može postati ograničenje, a ne prednost.
Uloga harnessa se stoga mijenja. Umjesto da krutom orkestracijom unaprijed pokušava predvidjeti zadatak, harness sve više služi za pružanje jasnog okruženja za izvršavanje: sandboxa u kojem model može pregledati stanje, pokretati kod, oporavljati se od grešaka i prilagođavati vlastiti pristup, ostajući pritom unutar granica interfejsa i sigurnosnih mehanizama sistema. To je blisko promjeni koju je Andrej Karpathy opisao u izlaganju Softverski inženjer 3.0: dio logike koji je ranije bio u softveru premješta se na viši nivo, u „upit“.
Pouka nije da iz agentskih sistema svugdje treba ukloniti strukturu. Mnogi zadaci i dalje imaju koristi od eksplicitnih radnih tokova, heuristika i determinističkih zaštitnih mehanizama, posebno kada su usko definirani, obimni ili imaju jasan kriterij uspjeha. Kao što smo naveli u prethodnoj objavi o heuristikama za dizajn agentskih sistema, snažna orkestracija i dalje je važna kada je pouzdan logički tok istovremeno moguć i poželjan.
Kod otvorenih zadataka fokus se mijenja. Izazov više nije toliko u osmišljavanju sve složenijih slojeva orkestracije, koliko u izgradnji okruženja za izvršavanje koja su dovoljno jednostavna, pregledna i modularna da bi model u njima djelotvorno radio.
Kada agent može čitati datoteke, pisati kod, pokretati naredbe ljuske i pokretati dugotrajne zadatke, inženjerski izazov se mijenja. Najteži dio više nije samo optimizacija upita ili usmjeravanje alata. Činjenica da agent sada djeluje u stvarnom sistemu čini ove agente znatno moćnijim, ali i osjetljivijim jer povećavaju površinu izloženu sigurnosnim rizicima. Naprimjer, agent koji može izvršavati kod može poduzeti štetne radnje ako njegovo okruženje nije dobro izolirano (pogledajte AISI-jev Sandbox Bench).
Sandboxing stoga postaje ključno pitanje u agentskim radnim okvirima. U ranijim sistemima izvršavanje se često smatralo dodatkom: alatom naknadno priključenim na harness. Međutim, kada izvršavanje počne čuvati stanje, dugo trajati ili se obavljati na daljinu, taj pristup prestaje funkcionirati. Upravljanje samim sandboxom, njegovim životnim ciklusom, stanjem i interfejsima te njegovo povezivanje s petljom agenta brzo postaju zaseban problem dizajna sistema. To je jedan od razloga zašto sve više pružatelja nudi upravljana okruženja za izvršavanje koda, uključujući OpenAI Container API i alat ljuske, kao i Modal, Cloudflare, Daytona, E2B i druge.
Ova granica je važna jer izvršavanje koda zahtijeva bolju izolaciju i strožu kontrolu vremena izvođenja nego ostatak harnessa. U praksi, loše implementirani agenti koji izvršavaju kod mogu stvoriti tri poslovno kritična rizika: nekontrolirane troškove računarskih resursa, destruktivne radnje u internim sistemima i izlaganje osjetljivih podataka. Uz odgovarajuću kontejnerizaciju, izolaciju i zaštitne mehanizme tokom izvršavanja, ti se rizici mogu svesti na nivo prihvatljiv za primjenu u stvarnom svijetu.
To možemo zamisliti kao da agentu dajemo vlastiti zatvoreni radni prostor umjesto ključeva cijelog ureda. U tom prostoru i dalje može obavljati koristan posao, ali samo unutar jasno definiranih granica. Možete ograničiti količinu računarskih resursa koje koristi, odrediti kojim sistemima i datotekama smije pristupati te kontrolirati koje su mu informacije uopće dostupne.
Time se rizik ne uklanja u potpunosti, ali se problem mijenja iz „agenta koji slobodno luta vašom infrastrukturom“ u „agenta koji djeluje unutar kontroliranog okruženja“. Ako će ovaj sloj postati standardni dio agentskih sistema, mora imati punu podršku u samom radnom okviru. Sandbox tako postaje modularni sloj za izvršavanje s prenosivim osnovnim komponentama koje razvojni programeri mogu brzo usvojiti, mijenjati između pružatelja i skalirati bez stalnog prepravljanja logike agenta.
Kada agent počne izvršavati kod, i samom sandboxu potrebna je orkestracija. Prelazak s lokalnog dokaza koncepta na udaljeno izvršavanje, više pozadinskih sistema ili dugotrajne sesije eksponencijalno povećava operativno opterećenje. Potreban vam je dosljedan način za kreiranje i zaustavljanje okruženja, njihovo pauziranje i nastavljanje, snimanje stanja, kasnije ponovno povezivanje te upravljanje svime time kod različitih pružatelja.
Ništa od toga nije naročito privlačno u teoriji, ali je važno u praksi. Upravo takva infrastruktura postaje problematična kada svaki tim iznova gradi agentski proces, naročito ako nije integrirana u agentski radni okvir…
Tu bolja podrška radnog okvira postaje važna. Imali smo rani pristup novijem OpenAI Agents SDK-u i koristili ga za izradu vlastitih agenata u sandboxu. Posebno se isticala promjena arhitektonskog naglaska: SDK izvršavanje tretira kao punopravan sloj, a ne kao sporedni alat. U praksi to znači da možete pokrenuti agenta u sandboxu, snimiti stanje sandboxa ili nastaviti izvršavanje uz manje koda – u nekim našim testovima oko šest puta manje – a zatim promijeniti pozadinski sistem bez prepisivanja okolne logike agenta.
Ovo jasnije razdvajanje odgovornosti omogućava harnessu da ostane usmjeren na rezonovanje, kontekst i radni tok. Sloj za izvršavanje može se usmjeriti na izolaciju, prenosivost i stanje tokom izvršavanja. Ova apstrakcija olakšava izradu agenata za programiranje koji su sposobniji i jednostavniji za daljnji razvoj, mogu prelaziti između lokalnog i udaljenog izvršavanja, podržavati dugotrajnije zadatke te mijenjati pozadinske sisteme za izvršavanje bez redizajniranja cijelog sistema.
Kako se sve više logike na nivou zadatka premješta iz harnessa u model, s njom se dio složenosti sistema spušta u sloj za izvršavanje. Izvršavanje koda i sandboxing sada su ključna arhitektonska pitanja za agentske sisteme, posebno za otvorene zadatke i one koji se uveliko oslanjaju na programiranje. Dizajn agentskog procesa sada je jednako važan kao i dizajn okruženja u kojem agent može djelovati sigurno, pouzdano i tokom dužeg perioda.
Zato su važne apstrakcije višeg nivoa za izvršavanje u sandboxu. Noviji OpenAI Agents SDK kreće se u tom smjeru tretirajući izvršavanje kao modularni sloj sistema: prenosiv između pozadinskih sistema, sposoban čuvati stanje tokom dugotrajnih zadataka i dovoljno jednostavan za korištenje bez ponovne izgradnje iste infrastrukture za svako novo okruženje.
Šira pouka je da će sljedeću generaciju agentskih radnih okvira vjerovatno manje određivati količina orkestracijske logike koju dodaju, a više način na koji strukturiraju okruženja za izvršavanje o kojima agenti sve više zavise.