Pagrindinė navigacija

Prijungiamas kodo vykdymas naudojant „OpenAI Agents SDK“

Išankstinė prieiga prie „OpenAI Agents SDK“ atskleidžia, kaip prijungiamos izoliuotos aplinkos supaprastina kodo vykdymą skirtingų nuotolinių paslaugų teikėjų sistemose.

Santrauka

  • Paprastesnė infrastruktūra ir kodą vykdantys agentai geriau tinka atviroms užduotims, kurių atveju pernelyg griežtas koordinavimas gali riboti modelio našumą.

  • Todėl kodo vykdymas ir izoliavimas dabar yra esminiai agentinių sistemų architektūros aspektai.

  • „Agents SDK“ sumažina kodą vykdančių agentų kūrimo sudėtingumą ir reikiamo kodo kiekį – mūsų bandymuose net iki 6 kartų.

Ilgą laiką agentų sistemos tobulėjo gerinant koordinavimą: užklausų formulavimą, įrankių sąsajas, konteksto valdymą ir griežčiau kontroliuojant veiksmų eigą. Tačiau programavimo agentams tampant pajėgesniems ši pusiausvyra pradeda keistis.

Daugelyje atvirų darbo eigų kliūtis nebėra pats agento ciklas. Ja tampa vykdymo sluoksnis – izoliuota aplinka, kurioje modelis rašo kodą, vykdo komandas, tikrina rezultatus ir kartoja procesą. Vis daugiau užduoties lygmens protavimo perkeliant į šią aplinką, ją supantis koordinavimas turi paprastėti, kad modelis galėtų išnaudoti visus savo pajėgumus.

Būtent tokį pokytį įgalina naujoji „Agents SDK“ versija. Bandydami išankstinės prieigos laikotarpiu nustatėme, kad užuot pridėjusi dar vieną sistemos logikos sluoksnį, ji padaro vykdymo sluoksnį moduliškesnį ir lengviau komponuojamą, todėl likusi sistema gali išlikti paprasta.

Pokytis

Infrastruktūros inžinerijoje tapo populiaru infrastruktūrą supaprastinti iki minimalios veiksmingos formos. Apskritai infrastruktūra yra modelį supanti programinė įranga: sluoksnis, valdantis kontekstą, įrankius, veiksmų eigą ir grįžtamojo ryšio ciklus, kad modelis galėtų patikimai atlikti darbą.

Per pastaruosius kelerius metus agentų našumas dažnai augo stiprinant šį sluoksnį. Geresni įrankiai, atmintis ir informacijos gavimas, aiškesnis užduočių skaidymas bei griežtesnis koordinavimas dažnai padėdavo kurti patikimesnes ir pajėgesnes sistemas. Pagal šį požiūrį pažanga daugiausia reiškė, kad modelį supančioje programinėje įrangoje užkoduojama daugiau užduoties logikos.

Dabar ši tendencija silpnėja, bent jau tam tikros rūšies atvirų užduočių atveju. Vis daugiau projektų ir mokslinių darbų rodo, kad griežčiau nurodanti infrastruktūra ne visada pagerina našumą. Programuojant su pagalba, atliekant ilgai trunkančias užduotis, naudojantis naršykle ir vykdant didelio konteksto užduotis, vis kartojasi tas pats dėsningumas: kai modelis tampa pakankamai išmanus, pernelyg griežta užduoties struktūra jį supančioje programinėje įrangoje gali ne padėti, o riboti.

Taigi infrastruktūros vaidmuo keičiasi. Užuot mėginusi iš anksto numatyti užduotį griežtai koordinuodama veiksmus, infrastruktūra vis dažniau suteikia aiškią vykdymo terpę: izoliuotą aplinką, kurioje modelis gali tikrinti būseną, vykdyti kodą, atsitiesti po klaidų ir pritaikyti savo metodą, tačiau išlikti apribotas sistemos sąsajų bei apsaugos priemonių. Tai artima pokyčiui, kurį Andrejus Karpathy apibūdino pranešime „Software Engineer 3.0“: dalis logikos, anksčiau buvusios programinėje įrangoje, perkeliama aukščiau – į „užklausą“.

Tai nereiškia, kad iš agentų sistemų visur reikėtų pašalinti struktūrą. Daugeliui užduočių vis dar naudingi aiškūs procesai, heuristikos ir deterministinės apsaugos priemonės, ypač kai užduotis yra siauros apimties, dažnai kartojama arba turi aiškų sėkmės kriterijų. Kaip teigėme ankstesniame įraše „Agentinių sistemų projektavimo heuristikos“, veiksmingas koordinavimas tebėra svarbus, kai patikima loginė eiga yra ir įmanoma, ir pageidautina.

Atvirų užduočių atveju dėmesys krypsta kitur. Dabar svarbiau ne kurti vis sudėtingesnius koordinavimo sluoksnius, o vykdymo aplinkas, kurios būtų pakankamai paprastos, stebimos ir modulinės, kad modelis jose galėtų veiksmingai dirbti.

Sudėtingumo perkėlimas iš infrastruktūros į vykdymo sluoksnį

Kai agentas gali skaityti failus, rašyti kodą, vykdyti apvalkalo komandas ir paleisti ilgai trunkančias užduotis, inžinerinis iššūkis pasikeičia. Sudėtingiausia dalis nebėra vien užklausos optimizavimas ar įrankių parinkimas. Veikdami tikroje sistemoje šie agentai tampa gerokai pajėgesni, tačiau kartu ir jautresni, nes padidėja su sauga ir saugumu susijusių grėsmių paviršius. Pavyzdžiui, kodą vykdantis agentas gali atlikti žalingus veiksmus, jei jo aplinka prastai izoliuota (žr. AISI testą „Sandbox Bench“).

Todėl izoliavimas tampa itin svarbiu agentų sistemų aspektu. Ankstesnėse sistemose vykdymas dažnai buvo laikomas priedu – prie infrastruktūros prijungtu įrankiu. Tačiau toks požiūris ima nebetikti, kai vykdymui reikia išlaikyti būseną, jis ilgai trunka arba vyksta nuotoliniu būdu. Pačios izoliuotos aplinkos, jos gyvavimo ciklo, būsenos, sąsajų ir integravimo į agento ciklą valdymas greitai tampa atskira sistemų projektavimo problema. Tai viena iš priežasčių, kodėl vis daugiau paslaugų teikėjų siūlo valdomas kodo vykdymo aplinkas, įskaitant OpenAI „Container API“ ir apvalkalo įrankį, taip pat „Modal“, „Cloudflare“, „Daytona“, E2B ir kt.

Ši riba svarbi, nes kodo vykdymui reikia didesnės izoliacijos ir griežtesnės vykdymo kontrolės nei likusiai infrastruktūrai. Prastai įgyvendinti kodą vykdantys agentai gali kelti tris verslui itin svarbias rizikas: nekontroliuojamas skaičiavimo išlaidas, destruktyvius veiksmus vidinėse sistemose ir neskelbtinos informacijos atskleidimą. Tinkamai naudojant konteinerius, izoliavimą ir vykdymo apsaugos priemones, šias rizikas galima sumažinti iki realioms sistemoms priimtino lygio.

Tai galima įsivaizduoti kaip atskiros uždaros darbo erdvės suteikimą agentui, užuot patikėjus jam viso biuro raktus. Šioje erdvėje jis vis tiek gali naudingai dirbti, tačiau tik aiškiai apibrėžtose ribose. Galite apriboti jo naudojamus skaičiavimo išteklius, sistemas bei failus, su kuriais jis gali sąveikauti, ir nuo pat pradžių kontroliuoti jam prieinamą informaciją.

Tai rizikos visiškai nepanaikina, tačiau problema iš „agento, laisvai veikiančio jūsų infrastruktūroje“ virsta „agentu, veikiančiu kontroliuojamoje aplinkoje“. Jei šis sluoksnis taps įprasta agentų sistemų dalimi, pati sistema turi visapusiškai jį palaikyti. Taip izoliuota aplinka tampa moduliniu vykdymo sluoksniu su perkeliamais baziniais komponentais, kuriuos kūrėjai gali greitai pritaikyti, keisti tarp paslaugų teikėjų ir plėsti nuolat neperdarydami agento logikos.

Kodėl agentų sistemoms reikia geresnio palaikymo

Agentui pradėjus vykdyti kodą, reikia koordinuoti ir pačią izoliuotą aplinką. Pereinant nuo vietinio koncepcijos įrodymo prie nuotolinio vykdymo, kelių vidinių sistemų ar ilgalaikių seansų, eksploatavimo našta auga eksponentiškai. Reikia nuoseklaus būdo kurti ir stabdyti aplinkas, pristabdyti ir tęsti jų veikimą, įrašyti būsenos momentines kopijas, vėliau vėl prisijungti ir visa tai valdyti skirtingų paslaugų teikėjų sistemose.

Visa tai teoriškai neatrodo įspūdinga, tačiau praktikoje yra svarbu. Būtent tokios infrastruktūros kūrimas tampa varginantis, kai kiekviena komanda agentinį procesą kuria nuo nulio, ypač jei jis neintegruotas į agentų sistemą…

Čia tampa svarbus geresnis sistemos palaikymas. Gavome išankstinę prieigą prie naujesnio „OpenAI Agents SDK“ ir patys su juo kūrėme izoliuotus agentus. Labiausiai išsiskyrė pasikeitę architektūros prioritetai: SDK vykdymą laiko visaverčiu sluoksniu, o ne šalutiniu įrankiu. Praktiškai tai reiškia, kad izoliuotą agentą galima paleisti, izoliuotos aplinkos momentinę kopiją įrašyti ar vykdymą pratęsti naudojant mažiau kodo (kai kuriuose mūsų bandymuose – apie 6 kartus mažiau), o tada pakeisti vidinę sistemą neperrašant agentą supančios logikos.

Taip aiškiau atskyrus atsakomybes, infrastruktūra gali likti sutelkta į protavimą, kontekstą ir darbo eigą. Vykdymo sluoksnis gali būti skirtas izoliavimui, perkeliamumui ir vykdymo būsenai. Ši abstrakcija padeda lengviau kurti pajėgesnius ir paprasčiau tobulinamus programavimo agentus, galinčius pereiti nuo vietinio prie nuotolinio vykdymo, atlikti ilgiau trunkančias užduotis ir keisti vykdymo sistemas neperprojektuojant visos sistemos.

Svarbiausia išvada

Vis daugiau užduoties lygmens logikos perkeliant iš infrastruktūros į modelį, kartu persikelia ir dalis sistemos sudėtingumo – į vykdymo sluoksnį. Kodo vykdymas ir izoliavimas dabar yra esminiai agentinių sistemų architektūros aspektai, ypač atliekant daug programavimo reikalaujančias ir atviras užduotis. Dabar agentinį procesą suprojektuoti taip pat svarbu, kaip ir aplinką, kurioje agentas galėtų ilgą laiką veikti saugiai ir patikimai.

Todėl aukštesnio lygio izoliuoto vykdymo abstrakcijos yra svarbios. Naujesnis „OpenAI Agents SDK“ juda šia kryptimi, vykdymą laikydamas moduliniu sistemos sluoksniu: perkeliamu tarp vidinių sistemų, išlaikančiu būseną vykdant ilgalaikes užduotis ir pakankamai paprastu naudoti, kad nereikėtų kiekvienai naujai konfigūracijai iš naujo kurti tos pačios infrastruktūros.

Bendresnė išvada: naujos kartos agentų sistemas tikriausiai apibrėš ne tai, kiek koordinavimo logikos jos prideda, o tai, kaip gerai jos struktūruoja vykdymo aplinkas, nuo kurių agentai tampa vis labiau priklausomi.

Autorius

Romain Bourboulou