Kuriame SPACE: saugios ir efektyvios vykdymo aplinkos ilgai veikiantiems agentams

SPACE yra Perplexity saugi, efektyvi Sandbox platforma, palaikanti ilgai veikiančias agentines darbo eigas ir greitą, izoliuotą kodo vykdymą.

AutoriaiPerplexity Engineering

Agentinėms darbo eigoms ilgėjant ir tampant autonomiškesnėms, aplinka, kurioje veikia DI 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 jautrūs kredencialai 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ų sesijos yra ilgalaikės ir išlaiko 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ų sesijoms reikalinga sistema, galinti izoliuoti priešišką svečio sistemą, išsaugoti jos būseną ir kartu veikti dideliu mastu.

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.
  • Kuo daugiau išteklių Sandbox aplinkos dalijasi tarpusavyje, tuo greičiau jas galima sukurti, tačiau tuo labiau išsiplečia atakos paviršius.
  • Dažniau kuriant momentines kopijas pagerėja atkūrimo galimybės ir galima naudoti tokias funkcijas kaip grąžinimą į ankstesnę būseną, tačiau tam reikia laiko ir saugyklos vietos.

Agentinėms Sandbox aplinkoms, pavyzdžiui, reikalingoms kodui vykdyti, naudoti Agent Skills arba vykdyti Search as Code konvejerius Computer užklausose, reikia visų trijų elementų. Per pastaruosius kelis mėnesius atkakliai dirbome kurdami naujos kartos agentų infrastruktūrą, kuri palaiko mūsų produktus. Šiandien pristatome SPACE (Sandboxed Platform for Agentic Code Execution) – Sandbox platformą, sukurtą agentinėms darbo eigoms, kuri yra saugi, patikima ir efektyvi dideliu mastu. Praėjusį mėnesį pradėjome diegti SPACE kaip Sandbox sluoksnį, palaikantį Perplexity Computer. Per pastarąją savaitę ji saugiai aptarnavo milijonus Sandbox kūrimo atvejų ir dešimtis milijonų pakartotinio prisijungimo atvejų, o paleidimo laikai 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 sesijų 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ė infrastruktūra, 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 demonu – svečio sistemoje veikiančiu foniniu procesu, kuris darbo krūviui tarpininkauja gaunant prieigą prie failų sistemos, proceso ir tinklo.

SPACE architektūra padalyta į tris sluoksnius: be būsenos veikiančią valdymo plokštumą; mazgo lygio paslaugas, kurios valdo Sandbox gyvavimo ciklą, saugyklą ir apsaugos vartus; bei patį Sandbox.

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 jų atsarginės kopijos buvo sukurtos patvarioje saugykloje. Ji nuolat lygina norimą būseną su pastebėta būsena ir skatina jas abi supanašėti. Operacijos yra idempotentinė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 demonų, 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 mazge, 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šeinančio srauto politikos laikymąsi.

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 demonas veikia kiekvienos virtualios mašinos viduje, tarnaudamas kaip lengvasvoris 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 demonas tiesiogiai su klientais nebendrauja, o palaiko ryšį su pagrindiniu kompiuteriu per privatų 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 kenksmingas kodas, paleistas Sandbox viduje, negalėtų padaryti žalos kitur. Neužtikrinant griežtos išeinančio srauto kontrolės ir nepasirūpinus, kad paslaptys liktų už Sandbox ribų, vienas neteisingas agento žingsnis galėtų sukelti vartotojo raktų nutekėjimą arba darbo nutekinimą.

SPACE užtikrina sluoksniuotą saugumą, derindama VM ir pagrindinio kompiuterio lygio izoliaciją su griežtai kontroliuojamais ryšio kanalais, kredencialų valdymu ir šifravimu.

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 visą išeinantį srautą nukreipia per jį. space demonas 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 posistemę, nustato kredencialus pagal hierarchinę aprėptį, 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: Agentinių darbo eigų įgalinimas

Kad būtų palaikomos agentinės darbo eigos, Sandbox reikalingas visavertis gyvavimo ciklo palaikymas. Jie turi būti sukuriami greitai ir dideliu mastu, 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ą, grąžinimą į ankstesnę būseną 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 tokios operacijos kaip sukūrimas, pristabdymas, tęsimas, sustabdymas ir atkūrimas.

Šis pagrindinis Sandbox būsenų ir būsenų perėjimų pogrupis įgalina visavertį gyvavimo ciklo palaikymą.

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 artefaktai įkeliami į objektų saugyklą. Duomenų bazės eilutė seka momentinę kopiją ir tampa atstatoma tik tada, kai visi artefaktai pasiekia tikslą, todėl iš dalies įkelta momentinė kopija niekada negali būti panaudota VM atkurti į sugadintą būseną. 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 artefaktus, pritaiko failų sistemos pokytį virš šablono ir tęsia VM veikimą iš jos užfiksuotos būsenos.

Efektyvumas: Laiko ir atminties 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 būti nebrangios laiko ir erdvės požiūriu. 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 copy-on-write (rašymo kopijuojant) failų sistemą su integruotu loginiu tomų valdymu. Tai suteikia tam tikrų privalumų:

Reflink kopijos yra greitos, nes dalijatės pagrindiniais duomenų blokais, 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 copy-on-write 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, lengvasvorė 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, kūrimo delsos mediana 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 maždaug eilės dydžio pagerėjimus ir kituose našumo bei išteklių naudojimo rodikliuose.

Tiesioginio palyginimo metu SPACE Sandbox sukūrimo vėlavimas yra iki 5 kartų mažesnis nei naudojant mūsų ankstesnį Sandbox sprendimą.

Tai taip pat palengvina nuolatinių disko momentinių kopijų kūrimą, nes jos yra greitos, taupios saugyklos vietos atžvilgiu ir nereikalauja pristabdyti Sandbox. Be to, efektyvi deltos saugykla sumažina vietą, 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. Kiekvienam Sandbox skirta VM suteikia darbo krūviui savą 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 demonas 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šeinančiam srautui ir kredencialų įterpimui niekada neatskleisdamas paslapčių svečiui.

Šių ir kitų dizaino sprendimų rezultatas yra platforma, įgalinanti realaus pasaulio agentų orkestravimą dideliu mastu. 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 palaiko milijonus Perplexity Computer sesijų. 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 plėsti SPACE į šias naujas aplinkas, kad kūrėjai galėtų išleisti DI produktus, kurie veikia visur, kur dirba vartotojai.

Jei degate noru formuoti skaičiavimo sluoksnį, valdantį rytojaus pažangius agentus, kviečiame prisijungti prie mūsų komandos.

Citacija

BibTeX
@online{perplexity2026MakingSpaceSecureAndEfficientRuntimesForLongRunningAgents,
  author = {{Perplexity} and Kumar Pallav and Nick Dujay and Zibi Braniecki and Dmitry Pervukhin and Gigi Sayfan and Mostafa Abdelraouf and Nikhil Birmiwal and Rohin Bhasin and Shrikant Pandhare and Nikitha Lokareddy and Phi Hoang and Claire Beamer and Jeremy Yang and Jerry Ma},
  title = {{Making SPACE: Secure and efficient runtimes for long-running agents}},
  date = {2026-07-15},
  url = {https://www.perplexity.ai/hub/blog/making-space-secure-and-efficient-runtimes-for-long-running-agents}
}