Lihtsamad täitmiskeskkonnad ja koodi käitavad agendid sobivad paremini avatud ülesanneteks, mille puhul võib liiga jäik orkestreerimine mudeli jõudlust piirata.
Seetõttu on koodi käitamine ja liivakastide kasutamine nüüd agentsete süsteemide arhitektuuri põhiküsimused.
Agents SDK vähendab koodi käitavate agentide loomiseks vajalikku keerukust ja koodimahtu – meie testides kuni kuus korda.
Pikka aega edendas agentseid süsteeme orkestreerimise täiustamine: paremad viibad, tööriistaliidesed ja kontekstihaldus ning rangem töövoo juhtimine. Programmeerimisagentide võimekuse kasvades hakkab see tasakaal aga muutuma.
Paljudes avatud töövoogudes ei ole kitsaskohaks enam agenditsükkel ise, vaid käituskiht: liivakast, kus mudel kirjutab koodi, käivitab käske, kontrollib väljundeid ja täiustab lahendust. Kuna üha suurem osa ülesandepõhisest arutlusest liigub sellesse keskkonda, peab ümbritsev orkestreerimine muutuma lihtsamaks, et mudel saaks oma võimeid täielikult rakendada.
Just seda muutust Agents SDK uus versioon võimaldabki. Varajase juurdepääsu ajal tehtud testides leidsime, et uue raamistikuloogika kihi lisamise asemel muudab see käituskihi modulaarsemaks ja kombineeritavamaks, nii et ülejäänud süsteem saab jääda lihtsaks.
Täitmiskeskkondade arenduses on saanud populaarseks nende taandamine minimaalse tõhusa vormini. Üldjoontes on täitmiskeskkond mudelit ümbritsev tarkvara: kiht, mis haldab konteksti, tööriistu, töövoogu ja tagasisideahelaid, et mudel saaks usaldusväärselt töötada.
Viimastel aastatel tulenes suur osa agentide jõudluse paranemisest selle kihi tugevdamisest. Paremad tööriistad, mälu ja teabeotsing, selgem osadeks jaotamine ning rangem orkestreerimine muutsid süsteeme sageli töökindlamaks ja võimekamaks. Selles paradigmas tähendas areng peamiselt rohkema ülesandeloogika kodeerimist mudelit ümbritsevasse tarkvarasse.
Vähemalt teatud tüüpi avatud ülesannete puhul on see suundumus nüüd taandumas. Üha rohkem projekte ja teadustöid viitab sellele, et täitmiskeskkonna ettekirjutavamaks muutmine ei paranda alati jõudlust. Abistatud programmeerimises, pikaajalistes ülesannetes, brauserikasutuses ja pika kontekstiga ülesannetes kordub sama muster: kui mudel on piisavalt võimekas, võib liiga üksikasjaliku ülesandestruktuuri surumine ümbritsevasse tarkvarasse muutuda eelise asemel piiranguks.
Seega on täitmiskeskkonna roll muutumas. Selle asemel et püüda ülesannet jäiga orkestreerimise abil ette näha, pakub täitmiskeskkond üha enam selget käituspinda: liivakasti, kus mudel saab olekut kontrollida, koodi käitada, vigadest taastuda ja oma lähenemist kohandada, jäädes samal ajal süsteemi liideste ja kaitsemeetmete seatud piiridesse. See sarnaneb muutusega, mida Andrej Karpathy kirjeldas ettekandes „Software Engineer 3.0“: osa varem tarkvaras olnud loogikast liigub kõrgemale, „viipa“ sisse.
Sellest ei tule järeldada, et agentsetest süsteemidest tuleks kogu struktuur eemaldada. Paljude ülesannete puhul on selgetest töövoogudest, heuristikatest ja deterministlikest kaitsepiiretest endiselt kasu, eriti kui ülesanne on kitsas, suure mahuga või selge edukriteeriumiga. Nagu selgitasime oma varasemas artiklis „Agentsete süsteemide kavandamise heuristikad“, on tugev orkestreerimine endiselt oluline, kui usaldusväärne loogikavoog on ühtaegu võimalik ja soovitav.
Avatud ülesannete puhul on rõhuasetus muutumas. Üha keerukamate orkestreerimiskihtide kavandamise asemel on peamine ülesanne luua käituskeskkonnad, mis on piisavalt lihtsad, jälgitavad ja modulaarsed, et mudel saaks neis tõhusalt töötada.
Kui agent suudab lugeda faile, kirjutada koodi, käivitada käsureakäske ja alustada pikaajalisi ülesandeid, muutub ka tehniline proovikivi. Keerukaim osa ei ole enam üksnes viiba optimeerimine ega tööriistade marsruutimine. Tegelikus süsteemis tegutsemine muudab need agendid märkimisväärselt võimekamaks, kuid suurema ohutus- ja turvariskide ulatuse tõttu ka tundlikumaks. Näiteks võib koodi käitav agent halvasti isoleeritud keskkonnas teha kahjulikke toiminguid (vt AISI võrdlustesti Sandbox Bench).
Seetõttu on liivakastide kasutamine muutumas agendiraamistikes keskseks küsimuseks. Varasemates süsteemides käsitleti käitust sageli lisana: täitmiskeskkonnale külge poogitud tööriistana. Kui käitus muutub olekuliseks, pikaajaliseks või kaugjuhitavaks, ei ole see lähenemine enam piisav. Liivakasti, selle elutsükli, oleku ja liideste haldamine ning agenditsükliga sidumine kujuneb kiiresti omaette süsteemikavanduse probleemiks. See on üks põhjusi, miks üha rohkem teenusepakkujaid pakub koodi käitamiseks hallatud keskkondi, sealhulgas OpenAI Container API ja shell-tööriist, Modal, Cloudflare, Daytona, E2B jt.
See piir on oluline, sest koodi käitamine nõuab tugevamat isoleerimist ja rangemat käitusaegset kontrolli kui ülejäänud täitmiskeskkond. Halvasti rakendatud koodi käitavad agendid võivad praktikas tekitada kolm ärikriitilist riski: kontrollimatud arvutuskulud, sisemiste süsteemide kahjustamine ja tundliku teabe avalikuks tulek. Nõuetekohase konteineriseerimise, isoleerimise ja käitusaegsete kaitsemeetmetega saab need riskid päris juurutustes vastuvõetavale tasemele piirata.
Seda võib kujutleda nii, et kogu kontori võtmete asemel antakse agendile oma suletud tööruum. Agent saab seal endiselt kasulikku tööd teha, kuid ainult selgelt määratud piirides. Saate piirata agendi arvutusressursside kasutust, määrata süsteemid ja failid, millele tal on juurdepääs, ning kontrollida, milline teave on talle üldse kättesaadav.
See ei kõrvalda riski täielikult, kuid muudab probleemi „meie taristus vabalt tegutsevast agendist“ „kontrollitud keskkonnas tegutsevaks agendiks“. Kui sellest kihist saab agentsete süsteemide standardosa, peab raamistik seda vahetult toetama. Nii saab liivakastist modulaarne käituskiht koos ülekantavate põhikomponentidega, mida arendajad saavad kiiresti kasutusele võtta, eri teenusepakkujate vahel vahetada ja skaleerida, ilma et peaksid pidevalt agendiloogikat ümber tegema.
Kui agent hakkab koodi käitama, vajab orkestreerimist ka liivakast ise. Üleminek kohalikult kontseptsioonitõenduselt kaugkäitusele, mitmele taustsüsteemile või pikaajalistele seanssidele suurendab käituskoormust hüppeliselt. Vaja on ühtset viisi keskkondade loomiseks ja peatamiseks, nende töö ajutiseks katkestamiseks ja jätkamiseks, olekutõmmiste tegemiseks, hilisemaks taasühendumiseks ning kõige selle haldamiseks eri teenusepakkujate juures.
Miski sellest ei tundu teoreetiliselt kuigi paeluv, kuid praktikas on see oluline. Just selline taristu muutub tülikaks, kui iga meeskond ehitab agentse konveieri algusest peale uuesti, eriti kui see pole agendiraamistikku integreeritud…
Siin muutubki oluliseks raamistiku parem tugi. Saime OpenAI Agents SDK uuemale versioonile varajase juurdepääsu ja kasutasime seda liivakastis töötavate agentide loomiseks. Silma paistis arhitektuurilise rõhuasetuse muutus: SDK käsitleb käitust kõrvalise tööriista asemel süsteemi põhikihina. Praktikas tähendab see, et liivakastis töötava agendi käivitamiseks, liivakasti olekutõmmise tegemiseks või käituse jätkamiseks kulub vähem koodi – mõnes meie testis ligikaudu kuus korda vähem – ning seejärel saab taustsüsteemi vahetada ümbritsevat agendiloogikat ümber kirjutamata.
Selline selgem vastutusalade eraldamine võimaldab täitmiskeskkonnal keskenduda arutlusele, kontekstile ja töövoole. Käivituskiht saab keskenduda isoleerimisele, ülekantavusele ja käitusaegsele olekule. See abstraktsioon lihtsustab võimekamate ja hõlpsamini edasiarendatavate programmeerimisagentide loomist. Need saavad liikuda kohaliku ja kaugkäituse vahel, toetada pikaajalisemaid ülesandeid ning vahetada käituse taustsüsteeme, ilma et kogu süsteemi peaks ümber kavandama.
Kui rohkem ülesandepõhist loogikat liigub täitmiskeskkonnast mudelisse, kandub osa süsteemi keerukusest sellega kaasa – alla käituskihti. Koodi käitamine ja liivakastide kasutamine on nüüd agentsete süsteemide arhitektuuri põhiküsimused, eriti programmeerimismahukate ja avatud ülesannete puhul. Agentse konveieri kavandamise kõrval on nüüd sama oluline kavandada keskkond, kus agent saab aja jooksul ohutult ja usaldusväärselt tegutseda.
Seetõttu on liivakastipõhise käituse kõrgema taseme abstraktsioonid olulised. Uuem OpenAI Agents SDK liigub selles suunas, käsitledes käitust süsteemi modulaarse kihina: see on eri taustsüsteemide vahel ülekantav, säilitab pikaajalistes ülesannetes oleku ja on piisavalt lihtne kasutada, et sama taristut poleks vaja iga uue lahenduse jaoks uuesti ehitada.
Üldisem õppetund on, et järgmise põlvkonna agendiraamistikke ei määratle tõenäoliselt mitte lisatava orkestreerimisloogika hulk, vaid see, kui hästi nad struktureerivad käituskeskkondi, millest agendid üha enam sõltuvad.