Поедноставните рамки и агентите што извршуваат код се посоодветни за задачи со отворен исход, каде што премногу строгата оркестрација може да ги ограничи перформансите на моделот.
Затоа, извршувањето код и изолирањето на околината сега се клучни архитектонски аспекти на агентските системи.
Во нашите тестови, Agents SDK ја намали сложеноста и количината код потребни за создавање агенти што извршуваат код дури шесткратно.
Долго време, напредокот кај агентските системи произлегуваше од подобрување на оркестрацијата: подобри промптови, интерфејси за алатки, управување со контекстот и построга контрола на текот. Но, како што агентите за програмирање стануваат поспособни, оваа рамнотежа почнува да се менува.
Во многу работни текови со отворен исход, тесното грло веќе не е самиот циклус на агентот, туку слојот за извршување: изолираната околина во која моделот пишува код, извршува команди, ги проверува резултатите и повторува. Како што сè поголем дел од расудувањето за задачата се префрла во таа околина, околната оркестрација треба да стане поедноставна за моделот да може целосно да ги изрази своите способности.
Токму оваа промена ја овозможува новата верзија на Agents SDK. Од тестирањето за време на раниот пристап утврдивме дека, наместо да додава уште еден слој логика во рамката, таа го прави слојот за извршување помодуларен и покомпонибилен, за остатокот од системот да остане едноставен.
Во инженерството на рамки стана популарно рамката да се сведе на нејзината минимална ефективна форма. Општо земено, рамката е софтверот околу моделот: слојот што управува со контекстот, алатките, контролниот тек и повратните циклуси, за моделот сигурно да ја извршува работата.
Во изминатите неколку години, многу подобрувања во перформансите на агентите произлегоа од зајакнувањето на тој слој. Подобрите алатки, меморија и пребарување, поексплицитното расчленување и построгата оркестрација често ги правеа системите посигурни и поспособни. Во таа парадигма, напредокот главно значеше вградување повеќе логика за задачата во софтверот околу моделот.
Овој образец сега слабее, барем кај одредена класа задачи со отворен исход. Сè повеќе проекти и трудови укажуваат дека перформансите не се подобруваат секогаш кога рамката станува попропишувачка. Кај асистираното програмирање, долготрајните задачи, користењето прелистувач и задачите со долг контекст, постојано се појавува истиот образец: штом моделот стане доволно интелигентен, наметнувањето премногу структура на задачата во околниот софтвер може да стане ограничување наместо предност.
Затоа, улогата на рамката се менува. Наместо однапред да ја предвидува задачата преку строга оркестрација, рамката сè повеќе служи за обезбедување јасна површина за извршување: изолирана околина во која моделот може да ја проверува состојбата, да извршува код, да закрепнува од грешки и да го приспособува својот пристап, останувајќи во границите на системските интерфејси и заштитни мерки. Ова е блиску до промената што Андреј Карпати ја опиша во Software Engineer 3.0: дел од логиката што претходно беше во софтверот се преместува нагоре, во „промптот“.
Поуката не е дека агентските системи треба насекаде да ја отстранат структурата. Многу задачи и понатаму имаат корист од експлицитни работни текови, хеуристики и детерминистички заштитни механизми, особено кога задачата е тесно определена, се извршува во голем обем или има јасен критериум за успех. Како што образложивме во претходната објава за хеуристиките за проектирање агентски системи, силната оркестрација и понатаму е важна кога сигурен логички тек е и можен и пожелен.
Кај задачите со отворен исход, фокусот се менува. Предизвикот веќе не е толку во проектирањето сè посложени слоеви за оркестрација, туку во создавањето околини за извршување што се доволно едноставни, видливи и модуларни за моделот ефикасно да работи во нив.
Штом агентот може да чита датотеки, да пишува код, да извршува команди во школка и да стартува долготрајни задачи, инженерскиот предизвик се менува. Тешкиот дел веќе не е само оптимизацијата на промптовите или насочувањето кон алатките. Фактот што агентот сега работи на реален систем ги прави овие агенти значително помоќни, но и почувствителни, бидејќи отвораат поголема површина за безбедносни ризици. На пример, агент што може да извршува код може да преземе штетни дејства ако неговата околина не е добро изолирана (видете го Sandbox Bench на AISI).
Затоа, изолирањето на околината станува клучен аспект на агентските рамки. Во претходните системи, извршувањето често се третираше како додаток: алатка прикачена на рамката. Но, штом извршувањето ќе стане состојбено, долготрајно или оддалечено, тој пристап почнува да се распаѓа. Управувањето со самата изолирана околина, нејзиниот животен циклус, состојба и интерфејси, како и поврзувањето со циклусот на агентот, брзо станува посебен проблем во проектирањето на системот. Тоа е една од причините зошто сè повеќе даватели нудат управувани околини за извршување код, меѓу кои Container API и алатката за школка на OpenAI, Modal, Cloudflare, Daytona, E2B и други.
Оваа граница е важна бидејќи извршувањето код бара посилна изолација и построга контрола при извршувањето од остатокот на рамката. Во практика, лошо имплементираните агенти што извршуваат код може да создадат три деловно критични ризици: неконтролирани трошоци за пресметување, деструктивни дејства врз внатрешните системи и изложување чувствителни информации. Со соодветна контејнеризација, изолација и заштитни механизми при извршувањето, овие ризици може да се ограничат на ниво прифатливо за примена во реални услови.
Може да се замисли како на агентот да му дадете сопствен запечатен работен простор, наместо клучевите од целата канцеларија. Тој и понатаму може да врши корисна работа во тој простор, но само во јасно дефинирани граници. Може да ја ограничите пресметковната моќ што ја користи, системите и датотеките до кои има пристап, како и информациите што воопшто му се достапни.
Тоа не го отстранува ризикот целосно, но го менува проблемот од „агент пуштен слободно во вашата инфраструктура“ во „агент што работи во контролирана околина“. Ако овој слој треба да стане стандарден дел од агентските системи, неопходна е првокласна поддршка во самата рамка. Така, изолираната околина станува модуларен слој за извршување со преносливи примитиви што програмерите можат брзо да ги применат, да ги менуваат меѓу даватели и да ги размеруваат без постојано да ја преработуваат логиката на агентот.
Штом агентот извршува код, и самата изолирана околина мора да се оркестрира. Преминот од локален доказ за концепт кон оддалечено извршување, повеќе заднински системи или долготрајни сесии експоненцијално го зголемува оперативниот товар. Потребен ви е доследен начин за создавање и запирање околини, нивно паузирање и продолжување, зачувување снимки од состојбата, подоцнежно повторно поврзување и управување со сето тоа кај различни даватели.
Ништо од ова не звучи особено возбудливо, но е важно во практиката. Токму ваквата инфраструктура станува проблематична кога секој тим од почеток создава агентски процес, особено кога тој не е интегриран во агентската рамка…
Тука станува важна подобрата поддршка од рамката. Имавме ран пристап до поновиот OpenAI Agents SDK и го искористивме за самите да создадеме агенти во изолирани околини. Особено се истакна промената во архитектонскиот фокус: SDK го третира извршувањето како првокласен слој, а не како споредна алатка. Во практика, тоа значи дека со помалку код можете да стартувате агент во изолирана околина, да зачувате снимка од околината или да продолжите со извршувањето (околу шестпати помалку во некои наши тестови), а потоа да го смените заднинскиот систем без да ја препишувате околната логика на агентот.
Ова појасно раздвојување на одговорностите ѝ овозможува на рамката да остане насочена кон расудувањето, контекстот и работниот тек. Слојот за извршување може да се фокусира на изолацијата, преносливоста и состојбата при извршувањето. Оваа апстракција го олеснува создавањето агенти за програмирање што се поспособни и полесно се развиваат, можат да преминуваат меѓу локално и оддалечено извршување, да поддржуваат подолготрајни задачи и да менуваат заднински системи за извршување без редизајнирање на целиот систем.
Како што сè повеќе логика за задачата се префрла од рамката во моделот, со неа се преместува и дел од сложеноста на системот — надолу, во слојот за извршување. Извршувањето код и изолирањето на околината сега се клучни архитектонски аспекти на агентските системи, особено за задачи со многу програмирање и отворен исход. Сега е подеднакво важно да се проектира агентскиот процес и околината во која агентот може да дејствува безбедно, сигурно и подолг период.
Затоа се важни апстракциите од повисоко ниво околу извршувањето во изолирани околини. Поновиот OpenAI Agents SDK се движи во таа насока третирајќи го извршувањето како модуларен слој на системот: пренослив меѓу заднински системи, со зачувана состојба при долготрајни задачи и доволно едноставен за користење без повторно создавање на истата инфраструктура за секоја нова конфигурација.
Пошироката поука е дека следната генерација агентски рамки веројатно помалку ќе ја одредува количината логика за оркестрација што ја додаваат, а повеќе начинот на кој ги структурираат околините за извршување од кои агентите сè повеќе зависат.