Прикључиво извршавање кода у OpenAI Agents SDK-у

Рани приступ OpenAI Agents SDK-у показује како заменљива изолована окружења поједностављују извршавање кода код различитих удаљених добављача.

Сажетак

  • Једноставнија окружења и агенти који извршавају код погоднији су за задатке отвореног типа, где превише крута оркестрација може да ограничи перформансе модела.

  • Због тога су извршавање кода и изолована окружења сада кључна архитектонска питања у агентским системима.

  • Agents SDK смањује сложеност и количину кода потребну за израду агената који извршавају код — у нашим тестовима и до шест пута.

Напредак агентских система дуго се заснивао на побољшању оркестрације: бољим инструкцијама, интерфејсима алата, управљању контекстом и строжој контроли тока. Међутим, како агенти за програмирање постају способнији, та равнотежа почиње да се мења.

У многим токовима рада отвореног типа, уско грло више није сама петља агента, већ слој за извршавање: изоловано окружење у којем модел пише код, покреће команде, прегледа резултате и понавља поступак. Како се све више резоновања на нивоу задатка премешта у то окружење, околна оркестрација мора да постане једноставнија како би модел могао да покаже све своје способности.

Управо тај помак омогућава нова верзија Agents SDK-а. Током тестирања у раном приступу утврдили смо да, уместо додавања још једног слоја логике радног оквира, он чини слој за извршавање модуларнијим и лакшим за комбиновање, па остатак система може да остане једноставан.

Промена приступа

У инжењерству окружења постало је популарно свести окружење на најмањи делотворни облик. Уопштено говорећи, окружење је софтвер око модела: слој који управља контекстом, алатима, током контроле и повратним спрегама како би модел могао поуздано да обавља посао.

Током протеклих неколико година, многа побољшања перформанси агената проистекла су из јачања тог слоја. Бољи алати, боље памћење и проналажење података, изричитије разлагање задатака и строжа оркестрација често су чинили системе поузданијим и способнијим. У тој парадигми, напредак је углавном значио уграђивање више логике задатка у софтвер око модела.

Тај образац сада губи на значају, барем за једну класу задатака отвореног типа. Све више пројеката и радова указује на то да се перформансе не побољшавају увек када окружење постане строже прописано. Код потпомогнутог програмирања, дуготрајних задатака, употребе прегледача и задатака са дугим контекстом, исти образац се стално понавља: када модел постане довољно интелигентан, наметање превелике структуре задатка у околном софтверу може постати ограничење уместо предности.

Улога окружења се, дакле, мења. Уместо да крутом оркестрацијом унапред предвиђа задатак, окружење све више служи као јасна површина за извршавање: изоловано окружење у којем модел може да испитује стање, покреће код, опоравља се од грешака и прилагођава сопствени приступ, остајући у границама системских интерфејса и заштитних механизама. То је блиско промени коју је Андреј Карпати описао у излагању Софтверски инжењер 3.0: део логике који се раније налазио у софтверу премешта се навише, у „инструкцију“.

Поука није да агентски системи свуда треба да уклоне структуру. Многи задаци и даље имају користи од изричитих токова рада, хеуристика и детерминистичких заштитних механизама, нарочито када су уско дефинисани, обављају се у великом обиму или имају јасан критеријум успеха. Као што смо навели у претходном тексту о хеуристикама за пројектовање агентских система, снажна оркестрација и даље је важна када је поуздан логички ток и могућ и пожељан.

Код задатака отвореног типа, фокус се помера. Изазов више није толико у пројектовању све сложенијих слојева оркестрације, већ у изградњи окружења за извршавање која су довољно једноставна, прегледна и модуларна да би модел у њима могао ефикасно да ради.

Премештање сложености из окружења у слој за извршавање

Када агент може да чита датотеке, пише код, покреће команде љуске и покреће дуготрајне задатке, инжењерски изазов се мења. Најтежи део више нису само оптимизација инструкција или усмеравање алата. То што агент сада ради на стварном систему чини ове агенте знатно моћнијим, али и осетљивијим јер проширује површину изложену ризицима по безбедност и заштиту. На пример, агент који може да извршава код може предузети штетне радње ако његово окружење није добро изоловано (погледајте AISI-јев Sandbox Bench).

Изолација окружења зато постаје кључно питање у радним оквирима за агенте. У ранијим системима, извршавање се често сматрало додатком: алатом накнадно прикљученим на окружење. Али када извршавање почне да чува стање, траје дуго или се одвија удаљено, тај приступ престаје да функционише. Управљање самим изолованим окружењем, његовим животним циклусом, стањем и интерфејсима, као и његово повезивање са петљом агента, брзо постаје засебан проблем пројектовања система. То је један од разлога што све више добављача нуди управљана окружења за извршавање кода, укључујући OpenAI Container API и алат за љуску, као и Modal, Cloudflare, Daytona, E2B и друге.

Ова граница је важна јер извршавање кода захтева снажнију изолацију и строжу контролу током рада него остатак окружења. У пракси, лоше имплементирани агенти који извршавају код могу створити три ризика кључна за пословање: неконтролисане трошкове рачунарских ресурса, деструктивне радње на интерним системима и излагање осетљивих података. Уз одговарајућу контејнеризацију, изолацију и заштитне механизме током рада, ови ризици могу се свести на ниво прихватљив за примену у стварном окружењу.

То се може замислити као да агенту дајете сопствени запечаћени радни простор, уместо кључева целе канцеларије. Он и даље може корисно да ради у том простору, али само у јасно дефинисаним границама. Можете ограничити количину рачунарских ресурса које користи, системе и датотеке којима може да приступи, као и податке који су му уопште доступни.

То не уклања ризик у потпуности, али проблем мења из „агента који слободно лута вашом инфраструктуром“ у „агента који ради у контролисаном окружењу“. Ако овај слој треба да постане стандардни део агентских система, сам радни оквир мора да му пружи пуноправну подршку. Тако изоловано окружење постаје модуларни слој за извршавање са преносивим основним компонентама које програмери могу брзо да усвоје, мењају између добављача и скалирају без сталне прераде логике агента.

Зашто је потребна боља подршка радних оквира за агенте

Када агент извршава код, и само изоловано окружење захтева оркестрацију. Прелазак са локалног доказа концепта на удаљено извршавање, више позадинских система или дуготрајне сесије експоненцијално повећава оперативно оптерећење. Потребан вам је доследан начин да правите и заустављате окружења, паузирате их и настављате њихов рад, снимате стање, касније се поново повежете и свиме тиме управљате код различитих добављача.

Ништа од тога није нарочито привлачно као концепт, али је важно у пракси. Управо ова врста инфраструктуре постаје мучна када сваки тим изнова гради агентски процес, нарочито ако није интегрисан у радни оквир за агенте…

Ту боља подршка радног оквира постаје важна. Добили смо рани приступ новијем OpenAI Agents SDK-у и употребили га да сами направимо агенте у изолованом окружењу. Посебно се истицала промена архитектонског фокуса: SDK третира извршавање као пуноправан слој, а не као споредни алат. У пракси то значи да можете покренути агента у изолованом окружењу, снимити стање окружења или наставити извршавање са мање кода — у неким нашим тестовима и око шест пута мање — а затим променити позадински систем без преписивања околне логике агента.

Ово јасније раздвајање одговорности омогућава окружењу да остане усредсређено на резоновање, контекст и ток рада. Слој за извршавање може да се усредсреди на изолацију, преносивост и стање током рада. Ова апстракција олакшава израду агената за програмирање који су способнији и лакше се унапређују, могу да прелазе између локалног и удаљеног извршавања, подржавају дуготрајније задатке и мењају позадинске системе за извршавање без редизајнирања целог система.

Кључни закључак

Како се све више логике на нивоу задатка премешта из окружења у модел, са њом се премешта и део сложености система — наниже, у слој за извршавање. Извршавање кода и изолација окружења сада су кључна архитектонска питања за агентске системе, нарочито код задатака који захтевају много програмирања или су отвореног типа. Данас је подједнако важно пројектовати агентски процес и окружење у којем агент може безбедно, поуздано и дуготрајно да делује.

Зато су важне апстракције вишег нивоа за извршавање у изолованом окружењу. Новији OpenAI Agents SDK иде у том смеру тако што извршавање третира као модуларни слој система: преносив између позадинских система, способан да чува стање током дуготрајних задатака и довољно једноставан за употребу без поновне изградње исте инфраструктуре за свако ново окружење.

Шира поука је да ће следећу генерацију радних оквира за агенте вероватно мање одређивати количина додате логике оркестрације, а више начин на који организују окружења за извршавање од којих агенти све више зависе.

Autor

Romain Bourboulou