Kreiranje platforme SPACE: Bezbedna i efikasna okruženja za izvršavanje dugotrajnih agenata

SPACE je Perplexity-jeva bezbedna i efikasna platforma sa sandboksom koja pokreće dugotrajne radne procese agenata i brzo, izolovano izvršavanje koda.

AutoriPerplexity Engineering

Kako radni procesi veštačke inteligencije (AI) postaju duži i autonomniji, okruženja u kojima AI agenti rade postaju jednako važna kao i modeli koji ih pokreću. Agentima je potrebno da obavljaju stvaran posao, kao što je pokretanje koda, uređivanje fajl sistema i izvršavanje zadataka u više koraka tokom sati ili dana. Korisnici žele da agenti imaju pristup alatima i fajlovima koji su im potrebni za obavljanje ovih zadataka, ali takođe moraju da budu sigurni da će njihovi sistemi ostati bezbedni čak i ako agenti budu kompromitovani. Sandbox je ono što sve ovo čini mogućim: izolovano okruženje u kojem agent može slobodno da radi dok domaćin, drugi zakupci i osetljivi akreditivi ostaju zaštićeni.

Tradicionalni pristupi sa sandboksom bazirani na kontejnerima nisu dizajnirani za ove zadatke. Oni obično podrazumevaju kratkotrajne poslove bez memorisanja stanja (stateless) i imaju kernel kao jednu tačku kvara. Nasuprot tome, sesije agenata su dugotrajne i sa stanjem (stateful): agent akumulira sate konteksta, radni fajl sistem i procese u izvršavanju koji se ne mogu jednostavno odbaciti i rekonstrukcionisati od nule. Štaviše, radno opterećenje unutar sistema treba da bude podrazumevano nepoverljivo, što nalaže strože mere bezbednosti. Dugotrajne sesije agenata zahtevaju podlogu koja može izolovati neprijateljski nastrojenog gosta, očuvati njegovo stanje i pritom raditi u velikom obimu.

Glavni izazov u inženjeringu sandboksa potiče iz tenzije koja se često javlja između bezbednosti, funkcionalnosti i efikasnosti. Na primer:

Odobravanje šireg pristupa omogućava agentu da postigne više, ali izlaže veći deo sistema radnom opterećenju u koje nemate poverenja.

Deljenje više elemenata između sandboksova čini kreiranje bržim, ali širi površinu napada.

Pravljenje snimaka (snapshot) češće poboljšava oporavak i omogućava funkcije poput vraćanja u prethodno stanje (rollback), ali zahteva vreme i prostor na disku.

Sandboksovi za agente, poput onih koji su potrebni za izvršavanje koda, korišćenje veština agenata (Agent Skills) ili sprovođenje pretrage kao koda (Search as Code) u upitima računara, zahtevaju sve ovo. Naporno smo radili u proteklih nekoliko meseci na projektovanju sledeće generacije infrastrukture za agente koja pokreće naše proizvode. Danas predstavljamo SPACE (Sandboxed Platform for Agentic Code Execution): platformu sa sandboksom napravljenu za radne procese agenata koja je bezbedna, pouzdana i efikasna u velikom obimu. Prošlog meseca počeli smo sa uvođenjem SPACE-a kao sloja sandboksa koji pokreće Perplexity Computer. Tokom prošle nedelje, on je bezbedno podržao milione kreiranja sandboksova i desetine miliona ponovnog povezivanja, sa vremenom pokretanja koje je 3 do 5 puta brže od našeg prethodnog rešenja.

Ovaj članak predstavlja arhitektonske odluke i odluke o dizajnu koje stoje iza sistema SPACE. Od danas, 100% sesija računara (Computer) radi na platformi SPACE. Uzbuđeni smo što ćemo primeniti ovu platformu na još više površina kako bismo našim korisnicima i programerima pružili najbolje okruženje za izvršavanje agenata u klasi.

Arhitektura

Na višem nivou, sistem je organizovan u tri sloja.

Upravljačka ravan (control plane) predstavlja mozak sistema, koji odlučuje šta treba da postoji i gde. Sastoji se od API mrežnog prolaza (gateway) i modula za upravljanje stanjem na nivou klastera.

Usluge na nivou čvora su lokalni mehanizmi potrebni za izvršavanje plana upravljačke ravni. One su vlasnici životnog ciklusa sandboksa, skladištenja, umrežavanja i privilegovanih operacija koje stoje iza njih.

Sam sandboks je izolovano okruženje za izvršavanje. Implementiran je kao virtuelna mašina uparena sa demonom space: pozadinskim procesom unutar gosta koji posreduje u pristupu fajl sistemu, procesima i mreži za radno opterećenje.

Arhitektura platforme SPACE podeljena je na tri sloja: upravljačku ravan bez memorisanja stanja; usluge na nivou čvora koje upravljaju životnim ciklusom sandboksa, skladištenjem i sigurnosnim kapijama; i sam sandboks.

Upravljačka ravan

API mrežni prolaz (gateway) je ulazna tačka. Dolazni zahtevi se autentifikuju i autorizuju, a zatim prevode u zapise o željenom stanju.

Upravljačka ravan je po dizajnu bez memorisanja stanja (stateless), pri čemu su sve trajne informacije premeštene u deljenu bazu podataka. Ona prati informacije na nivou klastera o sandboksovima, kao što su čvor kojem su dodeljeni, gde se izvršavaju i da li su sačuvani na trajnoj memoriji. Ona kontinuirano upoređuje željeno stanje sa uočenim stanjem i usmerava ih ka konvergenciji. Operacije su idempotentne, tako da se upravljačka ravan može automatski oporaviti nakon bilo kakvog pada, ponovnog pokretanja ili delimičnog kvara.

Usluge na nivou čvora

Usluge na nivou čvora obavljaju stvarni posao pripreme šablona, pokretanja sandboksova, umrežavanja i pokretanja run time servisa na strani domaćina. Svaki čvor pokreće mali skup deamona koji upravljaju svakim sandboksom smještenim na njemu, pri čemu je čvor izvor istine za živa stanja tih sandboksova.

Menadžer sandboksa zna koji sandboksovi rade, pauzirani su, suspendovani ili zaustavljeni, zajedno sa njihovim stvarnim resursima. On radi bez privilegija i sve privilegovane poslove delegira menadžeru čvora, jedinom root procesu koji posreduje u osnovnim primitivnim funkcijama. Skladištenje se obavlja lokalno i trajno: snimci trenutnih stanja sandboksa čuvaju se na čvoru, dok menadžer volumena premešta snimke i šablone ka i iz skladišta objekata po potrebi kako bi omogućio operacije na nivou više čvorova. Sigurnosne kapije štite ono čemu sandboks može da pristupi: menadžer akreditiva upravlja ubacivanjem akreditiva uz autorizaciju po servisu, a mrežni prolaz sprovodi politiku izlaznog saobraćaja (egress) za svaki sandboks.

Sandboks

Sam sandboks je virtuelna mašina (VM) sa sopstvenim gostujućim kernelom, koja pokreće korisničko radno opterećenje iza granice hardverske izolacije. Pošto svaki sandboks ima sopstveni kernel, kompromitovano radno opterećenje ne može da se osloni na deljeni kernel domaćina kao na jedinu tačku kvara; čak i ako uspešno iskoristi svoj gostujući kernel, ta kompromitacija je ograničena na granicu VM-a sandboksa umesto da se širi na druga radna opterećenja.

Demon space radi unutar svake virtuelne mašine, služeći kao lagani agent koji reguliše svaku radnju ili izmenu koju platforma obavlja unutar gosta. On upravlja pristupom fajl sistemu i procesima. Takođe izveštava o spremnosti gosta i prati aktivnost, tako da platforma zna kada je sandboks postao neaktivan i kada može biti pauziran ili vraćen. Što je najvažnije, demon space ne komunicira direktno sa klijentima, već komunicira sa domaćinom preko privatnog kanala unutar VM-a. Ovo održava svu interakciju sa gostom na kontrolisanoj putanji i čuva sopstvenu mrežu sandboksa isključivo za odlazni saobraćaj radnog opterećenja.

Tri stuba: Bezbednost, Funkcionalnost i Efikasnost

Zatim prelazimo na ključne osobine koje SPACE mora da isporuči kroz tri stuba: bezbednost, funkcionalnost i efikasnost. Kao što je ranije pomenuto, ova tri stuba suprotstavljaju se jedan drugome. Ipak, ne možemo praviti kompromise ni po jednom od njih ukoliko želimo da podržimo moćne agente koji ispunjavaju današnje mogućnosti modela. Bezbednost sprečava nepoverljivo, potencijalno neprijateljski nastrojeno radno opterećenje da nanese štetu domaćinu, drugim zakupcima ili korisničkim tajnama. Funkcionalnost daje agentima bogat životni ciklus koji im je potreban. Efikasnost čini sve ovo pristupačnim u uslovima ograničene memorije, diska i računarske snage.

Bezbednost: Zaštita podataka i sistema

Platformama sa sandboksom potrebna je jaka bezbednost kako bi se osiguralo da pogrešan ili čak zlonameran kod pokrenut unutar sandboksa ne može da izazove štetne efekte na drugim mestima. Bez sprovođenja stroge kontrole izlaznog saobraćaja i čuvanja tajni van sandboksa, jedan pogrešan korak agenta mogao bi da dovede do curenja korisničkih ključeva ili izvlačenja posla.

SPACE primenjuje slojevitu bezbednost kombinovanjem izolacije na nivou VM-a i domaćina sa strogo kontrolisanim komunikacionim kanalima, upravljanjem akreditivima i enkripcijom.

SPACE primenjuje slojeviti pristup obezbeđivanju sigurnosti za sandboksove. Izolacija sandboksa ima dve komponente: izolaciju virtuelne mašine i izolaciju procesa operativnog sistema domaćina. Obe moraju biti probijene za pristup između sandboksova. Komunikacija sa sandboksom je strogo kontrolisana; procesi mogu komunicirati samo preko namenskih kanala. Mrežni prolaz primorava sav izlazni saobraćaj da prolazi kroz njega. Demon space je jedini odobreni kanal između (nepoverljivog) sandboksa i (pouzdanog) dela platforme.

Akreditivi nikada ne borave tamo gde ih agent može ukrasti. Skladište akreditiva se nalazi izvan granice sandboksa i odgovorno je za životni ciklus akreditiva. Ono čuva i preuzima tajne putem prilagodljivog pozadinskog skladišta (backend), razrešava akreditive koristeći hijerarhijsko obuhvatanje, upravlja metapodacima kao što su metod ubacivanja i istek važnosti, te sprovodi ograničavanje brzine (rate limiting) i revizijsko evidentiranje (audit logging) za sve pristupe. Kada je potrebno, akreditivi se ubacuju na mrežnom sloju ili ih automatski popunjava agent pretraživača, umesto da direktno ulaze u sandboks.

Podaci su zaštićeni u stanju mirovanja (at rest). SPACE podržava BYOK (Bring Your Own Key) radi zaštite spolja uskladištenih podataka. Ključevi za enkripciju dolaze iz usluge upravljanja ključevima klijenta i nikada ne ulaze u sandboks. Ukoliko preduzeće opozove ključ, njihovi podaci postaju nečitki.

Funkcionalnost: Pokretanje radnih procesa agenata

Da bi podržali radne procese agenata, sandboksovima je potrebna podrška za bogat životni ciklus. Oni moraju biti kreirani brzo i u velikom obimu, pošto agent može pokrenuti mnoge od njih odjednom i ne bi trebalo da čeka da se bilo koji od njih pokrene. Oni moraju da traju neograničeno vreme, jer sesija može trajati nekoliko minuta ili raditi mesecima. Moraju se čistim putem pauzirati, ponekad na duže periode, na primer kada je zadatak blokiran unosom od strane čoveka. Takođe, moraju podržavati račvanje (forking), vraćanje u prethodno stanje i oporavak od pada, tako da se sesija može granati, poništiti loš korak ili nastaviti rad nakon greške umesto da se kreće ispočetka.

SPACE podržava sve navedeno. On modeluje celokupan životni ciklus sandboksa kao eksplicitnu mašinu stanja, što je ono što omogućava operacije poput kreiranja, pauziranja, nastavka, suspenzije i obnavljanja.

Ovaj osnovni podskup stanja sandboksa i prelaza stanja omogućava sveobuhvatnu podršku životnom ciklusu.

Snimci (snapshots) predstavljaju mehanizam koji stoji iza većine ovih mogućnosti. Planer se pokreće u redovnim intervalima i hvata dve vrste snimaka: snimke diska (kopije fajl sistema u određenom trenutku) i potpune snimke (kontrolne tačke cele pauzirane VM). Snimci diska se prave često, dok su potpune kontrolne tačke ređe. Sve ostaje na čvoru, a zadržavanje opada po nivoima. Ovi snimci se mogu koristiti za oporavak unutar sesije; na primer, snimci diska se mogu koristiti za vraćanje fajl sistema unazad radi poništavanja destruktivne komande, dok potpune kontrolne tačke omogućavaju srušenom sandbosu da nastavi rad sa nedavne tačke pokretanja umesto sa hladnog diska.

Kada je sandboks suspendovan, virtuelna mašina se pauzira, pravi se potpuni snimak, a artefakti iz potpunog snimka se otpremaju u skladište objekata. Red u bazi podataka prati snimak i on postaju obnovljiv tek nakon što svi artefakti budu otpremljeni, tako da se delimično otpremljeni snimak nikada ne može vratiti u korumpirano stanje. Obnavljanje je suprotan proces od suspenzije. Pošto se snimak nalazi u skladištu objekata umesto na originalnom čvoru, bilo koji čvor može vratiti sandboks. Planer bira čvor, taj čvor preuzima artefakte, ponovo primenjuje razliku fajl sistema (delta) preko šablona i nastavlja rad VM-a iz njenog sačuvanog stanja.

Efikasnost: Optimizacija vremena i prostora

Nije dovoljno implementirati gore navedene funkcije u izolaciji; one takođe moraju biti izvodljive u uslovima uskih ograničenja resursa. Memorija i disk na čvoru su konačni, a korisnici žele da agenti rade što je brže moguće, tako da operacije životnog ciklusa moraju biti povoljne i u pogledu vremena i u pogledu prostora. Ne možemo sebi priuštiti kopiranje kompletne slike mašine svaki put kada se sandboks kreira, pauzira ili grana.

Ključni dizajnerski izbor ovo čini mogućim: fajl sistem. SPACE koristi btrfs kao fajl sistem na čvoru za skladištenje sandboksa. Btrfs (B-tree filesystem) kombinuje copy-on-write fajl sistem sa integrisanim upravljanjem logičkim volumenima. Ovo donosi nekoliko prednosti:

Reflink kopije su brze jer delite osnovne ekstente, tako da je potrebno kopirati samo metapodatke.

Snimci su atomski i brzi pošto samo pravite novi koren (root).

Potreban je minimalan prostor pošto skladištite samo ono što je promenjeno.

Kao rezultat toga, sandboksovi se mogu brzo kreirati i obnavljati. Umesto da svaki put kreiramo sandboks od nule, održavamo zagrejani skup podova (warm pool) koji već imaju uobičajene šablone materijalizovane na disku, i ispunjavamo zahtev tako što ga povezujemo sa podom čiji se šablon već podudara. Davanje sopstvenog upisivog korenskog fajl sistema tom sandboksu onda predstavlja copy-on-write kloniranje umesto pune kopije. Kada nijedan zagrejani pod ne odgovara, mi materijalizujemo šablon na zahtev; spajamo istovremene zahteve za istu sliku u jedno preuzimanje, tako da nalet identičnih zahteva ne prelazi u nalet identičnog posla.

Rezultat je okruženje za izvršavanje sandboksa koje je istovremeno moćno, lagano i neverovatno brzo. Kada smo uveli SPACE, pokrenuli smo ga uz našeg prethodnog provajdera sandboksa na istom produkcijskom saobraćaju. Tokom nedelje lansiranja, SPACE je kreirao sandboksove tri do pet puta brže kroz celu distribuciju. Konkretno, medijana latencije kreiranja pala je sa 185 milisekundi na 60 milisekundi (poboljšanje 3,1x), dok je latencija na 90. percentilu pala sa 447 milisekundi na 89 milisekundi (poboljšanje 5,0x). Primetili slična poboljšanja reda veličine i kod drugih pokazatelja performansi i iskorišćenja resursa.

U direktnom poređenju, latencija kreiranja za SPACE sandboksove je do 5 puta brža u odnosu na naše prethodno rešenje sa sandboksom.

Takođe olakšava pravljenje tekućih snimaka diska, pošto su brzi, efikasni po pitanju prostora i ne zahtevaju pauziranje sandboksa. Pored toga, efikasno skladištenje delti umanjuje prostor potreban za čuvanje ovih snimaka.

Zaključak

Prilikom projektovanja složenih sistema, privlačno je izabrati jedan cilj koji će se optimizovati izolovano. Međutim, programeri graničnih agenata zahtevaju bezbednost, funkcionalnost i efikasnost u jednakoj meri. Sa platformom SPACE, postavili smo cilj da postignemo Paretovo poboljšanje kroz sva tri stuba.

Svaki pojedinačni dizajnerski izbor može služiti višestrukim ciljevima istovremeno, čineći ovaj delikatni balans mogućim. Virtuelne mašine po sandboksu daju svakom radnom opterećenju sopstveni kernel, jačajući bezbednost kroz snažnu izolaciju, istovremeno obezbeđujući jasnu granicu kontrolne tačke na koju se snimci oslanjaju. Btrfs omogućava efikasnu implementaciju snimanja, račvanja i drugih operacija suštinskih za okruženja za izvršavanje agenata. Demon space održava svu interakciju sa gostom na kontrolisanoj putanji na strani domaćina, zapečaćujući granicu između gosta i domaćina uz očuvanje slobode manevrisanja agenata. Centralni mrežni prolaz posreduje u izlaznom saobraćaju i ubacivanju akreditiva bez ikakvog izlaganja tajni gostu.

Rezultat ovih i drugih odluka o dizajnu jeste platforma koja omogućava orkestraciju agenata u stvarnom svetu u velikom obimu. SPACE pruža podlogu na kojoj dugotrajni agenti sa stanjem mogu bezbedno da se hvataju u koštac sa poslom proizvoljne složenosti ili trajanja, bez žrtvovanja performansi ili bezbednosti.

Danas SPACE već pokreće milione sesija Perplexity Computer-a. Nameravamo da SPACE služi kao jedinstveni sloj za obezbeđivanje i kontrolu sandboksova u svakom okruženju: od Linux mikro-VM-ova do Windows gostiju i korisnikovog sopstvenog lokalnog računara. Naporno radimo na uvođenju platforme SPACE u ova nova okruženja, kako bi programeri mogli da isporuče AI proizvode koji rade svuda gde rade i korisnici.

Ako jedva čekate da oblikujete računarski sloj koji pokreće današnje granične agente, pozivamo vas da se pridružite našem timu.