Making SPACE: Secure and efficient runtimes for long-running agents
SPACE yra Perplexity saugi, efektyvi Sandbox platforma, maitinanti ilgai veikiančias agentines darbo eigas ir greitą, izoliuotą kodo vykdymą.
Agentinėms darbo eigoje ilgėjant ir tampant autonomiškesnėms, aplinka, kurioje veikia AI agentai, tampa tokia pat svarbi, kaip ir juos valdantys modeliai. Agentams reikia atlikti realius darbus, pavyzdžiui, vykdyti kodą, redaguoti failų sistemas ir valandas ar dienas vykdyti daugiapakopes užduotis. Vartotojai nori, kad agentai turėtų prieigą prie įrankių ir failų, kurių jiems reikia šioms užduotims atlikti, tačiau taip pat turi būti užtikrinti, kad jų sistemos išliks saugios net ir tuo atveju, jei agentai būtų pažeisti. Viską įmanoma padaryti naudojant Sandbox: tai izoliuota aplinka, kurioje agentas gali laisvai veikti, kol pagrindinis kompiuteris, kiti nuomininkai ir neskelbtini duomenys lieka apsaugoti.
Tradiciniai konteineriais pagrįsti Sandbox metodai nėra pritaikyti šioms užduotims. Paprastai jie skirti trumpalaikiams, be būsenos veikiantiems procesams, o branduolys juose yra vienas galimas gedimo taškas. Tuo tarpu agentų Sesija yra ilgalaikės ir išlaikančios būseną: agentas kaupia valandų valandas trukmės kontekstą, darbinę failų sistemą ir veikiančius procesus, kurių negalima paprasčiausiai išmesti ir atkurti nuo nulio. Be to, viduje esantis darbo krūvis iš pradžių turėtų būti laikomas nepatikimu, todėl būtina taikyti griežtesnes saugumo priemones. Ilgai veikiančioms agentų Sesija reikalinga sistema, galinti izoliuoti priešišką svečią, išsaugoti jo būseną ir kartu veikti mastelio keitimo režimu.
Pagrindinis Sandbox inžinerijos iššūkis kyla dėl įtampos, dažnai atsirandančios tarp saugumo, funkcionalumo ir efektyvumo. Pavyzdžiui:
Suteikiant platesnę prieigą, agentas gali nuveikti daugiau, tačiau daugiau sistemos elementų tampa prieinami nepatikimam darbo krūviui.
Daugiau dalykų bendrinimas tarp Sandbox pagreitina kūrimą, tačiau padidina atakų paviršių.
Dažnesnis momentinių kopijų kūrimas pagerina atkūrimą ir įgalina tokias funkcijas kaip atstatymas, tačiau tam reikia laiko ir atminties erdvė.
Agentinėms Sandbox, pavyzdžiui, reikalingoms kodui vykdyti, naudoti Agent Skills arba vykdyti Search as Code konvejerius kompiuterio užklausose, reikia visų trijų elementų. Per pastaruosius kelis mėnesius atkakliai dirbome kurdami naujos kartos agentų infrastruktūrą, kuri maitina mūsų produktus. Šiandien pristatome SPACE (Sandboxed Platform for Agentic Code Execution) – Sandbox platformą, sukurtą agentinėms darbo eigoje, kuri yra saugi, pationali ir efektyvi mastelio keitimo režimu. Praėjusį mėnesį pradėjome diegti SPACE kaip Sandbox sluoksnį, maitinantį Perplexity Computer. Per pastarąją savaitę ji saugiai aptarnavo milijonus Sandbox kūrimo atvejų ir dešimtis milijonų pakartotinio prisijungimo atvejų, o paleidimo laika yra 3–5 kartus greitesni nei mūsų ankstesnio sprendimo.
Šiame straipsnyje pristatomi architektūriniai ir dizaino sprendimai, kuriais grindžiama SPACE. Nuo šiandien 100 % Computer sesija dabar veikia SPACE pagrindu. Džiaugiamės galėdami diegti šią platformą dar platesnėje srityje, kad savo vartotojams ir kūrėjams suteiktume geriausią savo klasėje agentinę vykdymo aplinką.
Architektūra
Apibendrinant galima teigti, kad sistema susideda iš trijų sluoksnių.
Valdymo plokštuma yra sistemos smegenys, sprendžiančios, kas ir kur turi egzistuoti. Ją sudaro API šliuzas ir klasterio lygio būsenos valdymo moduliai.
Mazgo lygio paslaugos yra vietinė techninė įranga, reikalinga valdymo plokštumos planui įgyvendinti. Jos atsakingos už Sandbox gyvavimo ciklą, saugyklą, tinklą ir už jų slypinčias privilegijuotas operacijas.
Sandbox yra pati izoliuota vykdymo aplinka. Ji įdiegta kaip virtuali mašina, suporuota su space deamonu – svečio sistemoje veikiančiu foniniu procesu, kuris darbo krūviui tarpininkauja gaunant prieigą prie failų sistemos, proceso ir tinklo.

Valdymo plokštuma
API šliuzas yra įėjimo taškas. Gaunamos užklausos yra autentifikuojamos ir autorizuojamos, o tada paverčiamos norimos būsenos įrašais.
Valdymo plokštuma sukurta be būsenos, visa patvari informacija perkelta į bendrinamą duomenų bazę. Joje sekama klasterio lygio informacija apie Sandbox, pavyzdžiui, kuriam mazgui jie priskirti, kur jie veikia ir ar jie buvo sukurti atsarginę kopiją patvarioje saugykloje. Ji nuolat lygina norimą būseną su pastebėta būsenta ir skatina jas abi supanašėti. Operacijos yra idemotentinės, todėl valdymo plokštuma gali automatiškai atsigauti po bet kokios avarijos, paleidimo iš naujo ar dalinio gedimo.
Mazgo lygio paslaugos
Mazgo lygio paslaugos atlieka realų darbą: ruošia šablonus, paleidžia Sandbox, jungia tinklą ir vykdo prieglobos pusėje esančias vykdymo paslaugas. Kiekviename mazge veikia nedidelis rinkinys deamonų, kurie valdo kiekvieną jame patalpintą Sandbox, o pats mazgas yra tiesos šaltinis tų Sandbox aktyvioms būsenoms.
Sandbox tvarkytuvė žino, kurie Sandbox veikia, yra pristabdyti, sustabdyti ar nutraukti, kartu su jų realiais ištekliais. Ji veikia be privilegijų ir visą privilegijuotą darbą deleguoja mazgo tvarkytuvei – vieninteliam šakniniam procesui, kuris tarpininkauja naudojant pagrindinius primityvus. Saugykla tvarkoma vietoje ir patvariai: esamų Sandbox būsenų momentinės kopijos išsaugomos mazgo, o tūrių tvarkytuvė perkelia momentines kopijas ir šablonus į objektų saugyklą ir iš jos, kad būtų galima atlikti operacijas tarp mazgų. Apsaugos vartai saugo, ką Sandbox gali pasiekti: kredencialų tvarkytuvė valdo kredencialų įterpimą taikant autorizaciją kiekvienai paslaugai, o tinklo šliuzas užtikrina kiekvieno Sandbox išėjimo politiką.
Sandbox
Pats Sandbox yra virtuali mašina (VM) su savo svečio branduoliu, vykdanti vartotojo darbo krūvį už aparatinės įrangos izoliavimo ribos. Kadangi kiekvienas Sandbox turi savo branduolį, kompromituotas darbo krūvis negali pasikliauti bendru pagrindinio kompiuterio branduoliu kaip vienu gedimo tašku; net jei jis sėkmingai išnaudoja savo svečio branduolį, šis pažeidimas apsiriboja Sandbox VM ribomis, o ne išplinta į kitus darbo krūvius.
space deamonas veikia kiekvienos virtualios mašinos viduje, tarnaudamas kaip lengvašvoris agentas, reguliuojantis kiekvieną veiksmą ar modifikaciją, kurią platforma atlieka svečio sistemoje. Jis tvarko prieigą prie failų sistemos ir procesų valdymą. Jis taip pat praneša apie svečio pasirengimą ir seka veiklą, todėl platforma žino, kada Sandbox tapo neaktyvus ir gali būti sustabdytas arba susigrąžintas. Labai svarbu tai, kad space deamonas tiesiogiai su klientais nebendrauja, o palaiko ryšį su pagrindiniu kompiuteriu per privatus kanalą VM viduje. Tai išlaiko visą svečio sąveiką kontroliuojamu keliu ir rezervuoja paties Sandbox tinklą tik darbo krūvio išeinančiam srautui.
Trys ramsčiai: Saugumas, funkcionalumas ir efektyvumas
Toliau nagrinėjame pagrindines savybes, kurias SPACE turi užtikrinti trijose srityse: saugumo, funkcionalumo ir efektyvumo. Kaip minėta anksčiau, šie trys elementai konkuruoja tarpusavyje. Tačiau negalime nusileisti nė vienu iš jų, jei norime palaikyti galingus agentus, atitinkančius šių dienų modelio galimybes. Saugumas apsaugo nuo to, kad nepatikimas, galbūt priešiškas darbo krūvis nepakenktų pagrindiniam kompiuteriui, kitiems nuomininkams ar vartotojo paslaptims. Funkcionalumas suteikia agentams turtingą gyvavimo ciklą, kurio jiems reikia. Efektyvumas padaro visa tai prieinamu esant ribotai atminčiai, diskui ir skaičiavimo ištekliams.
Saugumas: Duomenų ir sistemų apsauga
Sandbox platformoms reikia stipraus saugumo, kad būtų užtikrinta, jog klaidingas ar net kenksmiškas kodas, paleistas Sandbox viduje, negalėtų padaryti žalos kitur. Neužtikrinant griežtos išėjimo kontrolės ir neapsaugojus paslapčių už Sandbox ribų, vienas neteisingas agento žingsnis galėtų sukelti vartotojo raktų nutekėjimą arba konfidencialaus darbo praradimą.

SPACE taiko sluoksniuotą požiūrį į Sandbox saugumo užtikrinimą. Sandbox izoliacija susideda iš dviejų komponentų: VM izoliacijos ir pagrindinio kompiuterio OS proceso izoliacijos. Kad būtų gauta prieiga prie kito Sandbox, reikia pažeisti abu. Ryšys su Sandbox yra griežtai kontroliuojamas; procesai gali bendrauti tik per tam skirtus kanalus. Tinklo šliuzas priverčia visą išėjimą eiti per jį. space deamonas yra vienintelis sankcionuotas kanalas tarp (nepatikimo) Sandbox ir (patikimos) platformos.
Kredencialai niekada negyvena ten, kur agentas galėtų juos pavogti. Kredencialų saugykla yra už Sandbox ribų ir yra atsakinga už kredencialų gyvavimo ciklą. Ji saugo ir gauna paslaptis per prijungiamą saugyklos užnugarį, sprendžia kredencialus naudodama hierarchinį apimtį, valdo metaduomenis, tokius kaip įterpimo metodas ir galiojimo laikas, bei užtikrina greičio ribas ir audito žurnalų tvarkymą visoms prieigoms. Kai reikia, kredencialai įterpiami tinklo sluoksnyje arba automatiškai užpildomi naršyklės agento, o ne patenka tiesiai į Sandbox.
Duomenys apsaugoti ramybės būsenoje. SPACE palaiko BYOK (Bring Your Own Key), kad apsaugotų išorėje saugomus duomenis. Šifravimo raktai gaunami iš kliento raktų valdymo paslaugos ir niekada nepateka į Sandbox. Jei įmonė atšaukia raktą, jos duomenys tampa neįskaitomi.
Funkcionalumas: Agentinės darbo eigos galios palaikymas
Kad būtų palaikomos agentinės darbo eigos, Sandbox reikalingas visavertis gyvavimo ciklo palaikymas. Jie turi būti sukuriami greitai ir mastelio režimu, nes agentas gali vienu metu paleisti daugybę jų ir neturėtų laukti, kol kuris nors iš jų pasileis. Jie turi išlikti neribotą laiką, nes sesija gali trukti kelias minutes arba mėnesius. Jie turi švariai pristabdyti veiklą, kartais ilgam laikui, pavyzdžiui, kai užduotis sustabdyta laukiant žmogaus įvesties. Ir jie turi palaikyti šakojimą, atstatymą ir avarinį atkūrimą, kad sesija galėtų išsišakoti, atšaukti blogą žingsnį arba atsinaujinti po gedimo, o ne pradėti viską iš naujo.
SPACE palaiko visus aukščiau išvardytus dalykus. Visą Sandbox gyvavimo ciklą ji modeliuoja kaip aiškią būsenų mašiną, todėl įmanomos tokias operacijos kaip sukūrimas, pristabdymas, atnaujinimas, sustabdymas ir atkūrimas.

Momentinės kopijos yra daugumos šių galimybių pagrindas. Planuoklis periodiškai aktyvuojamas ir fiksuoja dviejų tipų momentines kopijas: disko momentines kopijas (failų sistemos kopijas tam tikru laiko momentu) ir pilnas momentines kopijas (visos pristabdytos VM kontrolinius taškus). Disko momentinės kopijos daromos dažnai, o pilni kontroliniai taškai – rečiau. Viskas lieka mazge, o saugojimo trukmė mažėja pagal pakopas. Šios momentinės kopijos gali būti naudojamos sesijos viduje vykdomam atkūrimui; pavyzdžiui, disko momentinės kopijos gali būti panaudotos failų sistemai grąžinti atgal, siekiant atšaukti destruktyvią komandą, o pilni kontroliniai taškai leidžia sugedusiam Sandbox atsinaujinti neseniai veikusiu tašku, o ne iš šalto disko.
Kai Sandbox sustabdomas, VM pristabdoma, padaroma pilna momentinė kopija, o tos pilnos momentinės kopijos artefaktas įkeliami į objektų saugyklą. Duomenų bazės eilutė seka momentinę kopiją ir tampa atstatoma tik tada, kai visi artefaktas pasiekia tikslą, todėl iš dalies įkelta momentinė kopija niekada negali būti atnaujinta iki sugadintos būsenos. Atkūrimas yra sustabdymo atvirkštinis veiksmas. Kadangi momentinė kopija gyvena objektų saugykloje, o ne pradiniame mazge, bet kuris mazgas gali sugrąžinti Sandbox. Planuoklis parenka mazgą, tas mazgas atsisiunčia artefaktas, pritaiko failų sistemos pokytį virš šablono ir atnaujina VM iš jos užfiksuotos būsenos.
Efektyvumas: Laiko ir erdvė optimizavimas
Nepakanka įdiegti aukščiau išvardytas funkcijas vakuume; jos taip pat turi būti įmanomos esant griežtiems išteklių apribojimams. Atmintis ir diskas mazge yra riboti, o vartotojai nori, kad agentai veiktų kuo greičiau, todėl gyvavimo ciklo operacijos turi kainuoti mažai laiko ir erdvė prasme. Mes negalime sau leisti kopijuoti viso mašinos atvaizdo kiekvieną kartą, kai Sandbox yra sukuriamas, pristabdomas ar išsišakoja.
Tai padaryti įmanoma dėl vieno esminio dizaino pasirinkimo: failų sistemos. SPACE naudoja btrfs kaip mazge esančią failų sistemą Sandbox saugyklai. Btrfs (B-medžio failų sistema) sujungia kopijavimo metu rašymo (copy-on-write) failų sistemą su integruotu loginiu tomų valdymu. Tai suteikia tam tikrų privalumų:
Nuorodų kopijos yra greitos, nes dalijatės pagrindiniais plėtiniais, todėl reikia kopijuoti tik metaduomenis.
Momentinės kopijos yra atominės ir greitos, nes tereikia sukurti naują šaknį.
Reikia minimalios saugyklos vietos, nes saugoma tik tai, kas pasikeitė.
Dėl to Sandbox galima sukurti ir atkurti greitai. Vietoj to, kad kiekvieną kartą kurtume Sandbox nuo nulio, mes palaikome šiltų pod'ų telkinį, kurių diske jau yra įkelti bendri šablonai, ir patenkiname užklausą susiedami ją su pod'u, kurio šablonas jau atitinka poreikius. Tam Sandbox suteikti savo rašomą šakninę failų sistemą tuomet yra kopijavimo metu rašymo klonas, o ne pilna kopija. Kai nėra tinkamo šilto pod'o, mes pagal poreikį įkeliame šabloną; sujungiame vienu metu gaunamas užklausas tam pačiam atvaizdui į vieną atsisiuntimą, todėl identiškų užklausų pliūpsnis nevirsta identiško darbo pliūpsniu.
Rezultatas – Sandbox vykdymo aplinka, kuri yra galinga, lengvašvorė ir nepaprastai greita. Kai paleidome SPACE, paleidome ją kartu su ankstesniu Sandbox tiekėju tuo pačiu gamybiniu srautu. Per visą paleidimo savaitę SPACE kūrė Sandbox tris-penkis kartus greičiau visame diapazone. Konkrečiai, mediana sukūrimo vėlavimas sumažėjo nuo 185 milisekundžių iki 60 milisekundžių (3,1 karto pagerėjimas), o 90-ojo procentilio vėlavimas sumažėjo nuo 447 milisekundžių iki 89 milisekundžių (5,0 karto pagerėjimas). Pastebėjome panašius eilės tvarkos pagerėjimus ir kituose našumo bei išteklių naudojimo rodikliuose.

Tai taip pat palengvina nuolatinių disko momentinių kopijų kūrimą, nes jos yra greitos, efektyvios erdvė atžvilgiu ir nereikalauja pristabdyti Sandbox. Be to, efektyvi deltos saugykla sumažina erdvė, reikalingą šioms momentinėms kopijoms saugoti.
Išvada
Projektuojant sudėtingas sistemas, kyla pagunda pasirinkti vieną tikslą, kurį būtų galima optimizuoti atskirai. Tačiau pažangių agentų kūrėjai vienodai reikalauja saugumo, funkcionalumo ir efektyvumo. Naudodami SPACE, išsikėlėme tikslą pasiekti Pareto pagerėjimą visuose trijuose ramsčiuose.
Kiekvienas atskiras dizaino pasirinkimas gali tarnauti keliems tikslams vienu metu, todėl ši subtili pusiausvyra tampa įmanoma. VM kiekvienam Sandbox suteikia kiekvienam darbo krūviui savo branduolį, sustiprindama saugumą per stiprią izoliaciją ir kartu suteikdama švarias kontrolinio taško ribas, kuriomis remiasi momentinės kopijos. Btrfs leidžia efektyviai įgyvendinti momentinių kopijų kūrimą, šakojimą ir kitas operacijas, kurios yra esminės agentinėms vykdymo aplinkoms. space deamonas išlaiko visą svečio sąveiką kontroliuojamu pagrindinio kompiuterio pusės keliu, sandariai uždarydamas svečio ir pagrindinio kompiuterio ribą, kartu išsaugodamas agentų judėjimo laisvę. Centrinis tinklo šliuzas tarpininkauja išėjimui ir kredencialų įterpimui niekada neatskleisdamas paslapčių svečiui.
Šių ir kitų dizaino sprendimų rezultatas yra platforma, įgalinanti realaus pasaulio agentų orkestravimą mastelio režimu. SPACE suteikia sistemą, kurioje ilgai veikiantys, būseną palaikantys agentai gali saugiai spręsti bet kokio sudėtingumo ar trukmės darbus, neaukojant nei našumo, nei saugumo.
Šiandien SPACE jau maitina milijonus Perplexity Computer sesija. Ketiname, kad SPACE tarnautų kaip vieningas sluoksnis aprūpinimui ir Sandbox valdymui bet kurioje aplinkoje: nuo Linux mikroVM iki Windows svečių ar vartotojo nuosavo vietinio kompiuterio. Sunkiai dirbame siekdami įstumti SPACE į šias naujas aplinkas, kad kūrėjai galėtų siųsti AI produktus, kurie veikia visur, kur dirba vartotojai.
Jei degate noru formuoti skaičiavimo sluoksnį, valdantį rytojaus pažangius agentus, kviečiame join our team.