SPACE létrehozása: Biztonságos és hatékony futtatókörnyezetek hosszú ideig futó ügynökök számára
A SPACE a Perplexity biztonságos, hatékony sandbox platformja, amely a hosszú ideig futó ügynök-alapú munkafolyamatokat és a gyors, izolált kódfuttatást támogatja.
Ahogy az ügynök alapú munkafolyamatok egyre hosszabbá és önállóbbá válnak, az a környezet, amelyben az AI-ügynökök működnek, ugyanolyan fontossá válik, mint az őket hajtó modellek. Az ügynököknek valódi munkát kell végezniük, például kódot futtatniuk, fájlrendszereket szerkeszteniük, és órákon vagy napokon át tartó, többlépéses feladatokat kell végrehajtaniuk. A felhasználók azt szeretnék, ha az ügynökök hozzáférnének a ezen feladatok elvégzéséhez szükséges eszközökhöz és fájlokhoz, de arra is számítanak, hogy rendszereik biztonságban maradnak még akkor is, ha az ügynökök kompromittálódnak. Egy sandbox teszi mind ezt lehetővé: egy izolált környezet, ahol az ügynök szabadon működhet, miközben a gazdagép, a többi bérlő és az érzékeny hitelesítő adatok védve maradnak.
A hagyományos, konténeralapú sandbox megközelítések nem ilyen feladatokra lettek tervezve. Jellemzően rövid életű, állapot nélküli feladatokkal számolnak, és a rendszermagot egyetlen hibaforrásként kezelik. Ezzel szemben az ügynökök Munkamenetei hosszú életűek és állapot-nyilvántartóak: az ügynök óráknyi kontextust, egy működő fájlrendszert és futó folyamatokat halmoz fel, amelyeket nem lehet egyszerűen eldobni és a semmiből újjáépíteni. Sőt, a benne lévő munkaterhelés alapértelmezés szerint nem megbízható, ami erősebb biztonsági intézkedéseket tesz szükségessé. A hosszú ideig futó ügynök-munkameneteknek olyan alapra van szükségük, amely képes elszigetelni egy ellenséges vendéget, megőrizni annak állapotát, és mégis nagy skálázhatséggel működtethető.
A sandbox-tervezés fő kihívása a biztonság, a funkcionalitás és a hatékonyság között gyakran feszülő ellentétből adódik. Például:
A szélesebb körű hozzáférés biztosítása lehetővé teszi, hogy az ügynök többet érjen el, de a rendszer nagyobb részét teszi ki egy olyan munkaterhelésnek, amelyben nem bízik meg.
A sandboxok közötti nagyobb fokú megosztás gyorsabbá teszi a létrehozást, de növeli a támadási felületet.
A gyakibb pillanatkép-készítés javítja a helyreállítást és lehetővé teszi az olyan funkciókat, mint a visszagörgetés, de időt és tárhelyet igényel.
Az ügynök-alapú sandboxokhoz – mint amilyenek a kód futtatásához, az Agent Skills használatához, vagy a Computer-lekérdezésekben a Search as Code folyamatok végrehajtásához szükségesek – mindháromra szükség van. Keményen dolgoztunk az elmúlt néhány hónapban a termékeinket hajtó ügynök-infrastruktúra következő generációjának megtervezésén. Ma bemutatjuk a SPACE-t (Sandboxed Platform for Agentic Code Execution): egy kifejezetten az ügynök-alapú munkafolyamatokhoz épített sandbox platformot, amely biztonságos, megbízható és nagy skálázhatóság mellett is hatékony. A múlt hónapban megkezdtük a SPACE bevezetését a Perplexity Computer mögött álló sandbox rétegként. Az elmúlt héten biztonságosan támogatott több millió sandbox-létrehozást és tízmilliókat meghaladó újracsatlakozást, a felállási idő pedig 3-5-ször gyorsabb, mint az előző megoldásunk esetében.
Ez a cikk a SPACE mögött álló építészeti és tervezési döntéseket mutatja be. Mára a Computer-Munkamenetek 100%-a a SPACE-en fut. Nagy izgalommal tölt el minket, hogy ezt a platformot még több felületen bevezethetjük, hogy a legjobb kategóriájú ügynök-futtatókörnyezetet biztosítsuk felhasználóinknak és fejlesztőinknek.
Architektúra
Magas szinten a rendszer három rétegre van szervezve.
A vezérlősík a rendszer agya, amely eldönti, minek kell léteznie és hol. Ez az API-átjáróból és a fürt szintű állapotkezelő modulokból áll.
A csomópont-helyi szolgáltatások azok a helyi mechanizmusok, amelyek a vezérlősík tervének végrehajtásához szükségesek. Ezek felelnek a sandbox életciklusáért, a tárolásért, a hálózatkezelésért és az ezek mögött álló emelt szintű jogosultságú műveletekért.
Maga a sandbox az izolált futtatókörnyezet. Virtuális gépként van implementálva, amelyet a space démon egészít ki: egy vendégen belüli háttérfolyamat, amely közvetíti a fájlrendszer-, a folyamat- és a hálózati hozzáférést a munkaterhelés számára.

Vezérlősík
Az API-átjáró a belépési pont. A bejövő kérések hitelesítése és felhatalmazása megtörténik, majd a kívánt állapot rekordjaivá alakulnak át.
A vezérlősík tervezésénél fogva állapot nélküli, az összes tartós információ egy megosztott adatbázisba van kiszervezve. Nyomon követi a sandboxokkal kapcsolatos fürt szintű információkat, például hogy melyik csomóponthoz vannak rendelve, hol futnak, és hogy készítettek-e róluk biztonsági mentést a tartós tárolóba. Folyamatosan összehasonlítja a kívánt állapotot a megfigyelt állapottal, és a kettőt a konvergencia felé tereli. A műveletek idempotensek, így a vezérlősík bármilyen összeomlás, újraindítás vagy részleges hiba után automatikusan képes helyreállni.
Csomópont-helyi szolgáltatások
A csomópont-helyi szolgáltatások végzik a sablonok előkészítésének, a sandboxok elindításának, a hálózat bekötésének és a gazdagép oldali futtatókörnyezeti szolgáltatások futtatásának tényleges munkáját. Minden csomópont egy kis daemon-készletet futtat, amely kezeli az rá telepített összes sandboxot, és a csomópont az igazság forrása ezen sandboxok élő állapotait illetően.
A sandbox-kezelő tudja, hogy mely sandboxok futnak, vannak szüneteltetve, felfüggesztve vagy leállítva, a valós erőforrásaikkal együtt. Jogosultság nélkül fut, és minden emelt szintű jogosultságú munkát delegál a csomópontkezelőnek, az egyetlen gyökérfolyamatnak, amely közvetíti az alapszintű primitíveket. A tárolás helyben és tartósan történik: az aktuális sandbox-állapotok pillanatképei a csomóponton vannak mentve, és egy kötetkezelő szükség szerint mozgatja a pillanatképeket és a sablonokat az objektumtárba és abból ki a csomópontok közötti műveletek engedélyezéséhez. A biztonsági kapuk őrzik, hogy mit érhet el egy sandbox: a hitelesítőadat-kezelő szabályozza a hitelesítő adatok injektálását szolgáltatásonkénti engedélyezés alapján, a hálózati átjáró pedig érvényesíti az egyes sandboxok kimenő adatforgalmi (egress) házirendjét.
Sandbox
Maga a sandbox egy virtuális gép (VM) saját vendég rendszermaggal, amely a felhasználó munkaterhelését egy hardveres izolációs határ mögött futtatja. Mivel minden sandbox saját rendszermaggal rendelkezik, egy kompromittálódott munkaterhelés nem támaszkodhat egy megosztott gazda-rendszermagra egyetlen hibaforrásként; még akkor is, ha sikeresen kihasználja a vendég rendszermagját, ez a kompromittálódás a sandbox VM-határára korlátozódik ahelyett, hogy átterjedne más munkaterhelésekre.
Egy space démon fut minden virtuális gépen belül, könnyű súlyú ügynökként szolgálva, amely szabályozza a platform által a vendégen belül végrehajtott minden műveletet vagy módosítást. Kezeli a fájlrendszer-hozzáférést és a folyamatkezelést. Emellett jelenti a vendég készenlétét és nyomon követi a aktivitást, így a platform tudja, mikor vált egy sandbox üresjáratúvá, és szüneteltethető vagy visszavehető. Kulcsfontosságú, hogy a space démon nem közvetlenül kommunikál az ügyfelekkel, hanem egy privát VM-en belüli csatornán keresztül a gazdagéppel. Ez minden vendég-interakciót egy ellenőrzött útvonalon tart, és a sandbox saját hálózatát tisztán a munkaterhelés kimenő forgalmára tartja fenn.
Három pillér: Biztonság, Funkcionalitás és Hatékonyság
Következő lépésként behatolunk azokba a kulcsfontosságú tulajdonságokba, amelyeket a SPACE-nek három pillér mentén kell biztosítania: biztonság, funkcionalitás és hatékonyság. Mint korábban említettük, ez a három hatás feszül egymásnak. Mégsem köthetünk kompromisszumot egyiknél sem, ha támogatni kívánjuk a mai modellképességekhez felnövő, erős ügynököket. A biztonság megakadályozza, hogy egy nem megbízható, esetleg ellenséges munkaterhelés kárt tegyen a gazdagépben, más bérlőkben vagy a felhasználó titkaiban. A funkcionalitás megadja az ügynököknek a szükséges gazdag életciklust. A hatékonyság megfizethetővé teszi mindezt véges memória, lemez és számítási kapacitás mellett.
Biztonság: Az adatok és rendszerek védelme
A sandbox platformoknak erős biztonságra van szükségük annak biztosításához, hogy a sandboxokon belül futtatott téves vagy akár rosszindulatú kód ne okozzon káros hatásokat máshol. A szigorú kimenő forgalmi ellenőrzés betartatása és a titkok sandboxon kívül tartása nélkül az ügynök egyetlen hibás lépése is kiszivárogtathatja a felhasználó kulcsait vagy elszivárogtathatja a munkát.

A SPACE rétegezett megközelítést alkalmaz a sandboxok biztonságának biztosítására. A sandbox izolációnak két összetevője van: a VM izoláció és a gazda OS folyamat-izoláció. A sandboxok közötti hozzáféréshez mindkettőt meg kell törni. A sandboxszal való kommunikáció szigorúan ellenőrzött; a folyamatok csak erre a célra szolgáló csatornákon keresztül kommunikálhatnak. A hálózati átjáró minden kimenő forgalmat ezen keresztül kényszerít át. A space démon az egyetlen jóváhagyott csatorna a (nem megbízható) sandbox és a (megbízható) platform között.
A hitelesítő adatok soha nem élnek ott, ahol egy ügynök ellophatná őket. A hitelesítőadat-tároló a sandbox határán kívül helyezkedik el, és felelős a hitelesítő adatok életciklusáért. Csatlakoztatható titkoskulcs-tároló (vault) háttérrendszeren keresztül tárolja és kérdezi le a titkokat, hierarchikus hatókör-meghatározással oldja fel a hitelesítő adatokat, kezeli a metaadatokat (például az injektálási módszert és a lejárati időt), valamint érvényesíti a sebességkorlátokat és a naplózást minden hozzáférésnél. Szükség esetén a hitelesítő adatok a hálózati rétegen lesznek injektálva, vagy egy böngészőügynök tölti ki őket automatikusan, ahelyett, hogy közvetlenül belépnének a sandboxba.
Az adatok védve vannak nyugalmi állapotban is. A SPACE támogatja a BYOK-ot (Bring Your Own Key) a külsőleg tárolt adatok védelme érdekében. A titkosítási kulcsok az ügyfél kulcskezelő szolgáltatásától származnak, és soha nem lépnek be a sandboxba. Ha a vállalat visszavonja a kulcsot, az adatai olvashatetlanná válnak.
Funkcionalitás: Ügynök-alapú munkafolyamatok támogatása
Az ügynök-alapú munkafolyamatok támogatásához a sandboxoknak gazdag életciklus-támogatásra van szükségük. Gyorsan és nagy skálázhatséggel kell létrehozni őket, mivel egy ügynök egyszerre többet is elindíthat, és nem szabad várnia egyiknek sem a betöltődésre. Határozatlan ideig fenn kell maradniuk, mivel egy munkamenet tarthat percekig vagy futhat hónapokig. Tisztán kell szüneteltetniük, néha hosszú időre, például amikor egy feladat emberi beavatkozásra vár. Támogatniuk kell a forkolást (forking), a visszagörgetést és az összeomlás utáni helyreállítást is, hogy egy munkamenet ágazhasson, visszavonhasson egy rossz lépést, vagy hiba után folytatódhasson ahelyett, hogy a elejéről kellene kezdeni.
A SPACE mindezt támogatja. A teljes sandbox életciklust explicit államgépként modellezi, ami lehetővé az olyan műveleteket, mint a létrehozás, a szüneteltetés, a folytatás, a felfüggesztés és a visszaállítás.

A pillanatképek jelzik a mechanizmust a legtöbb ilyen képesség mögött. Egy ütemező rendszeres időközönként fut, és kétféle pillanatképet rögzít: lemez-pillanatképeket (a fájlrendszer adott időpontbeli másolatait) és teljes pillanatképeket (a teljes szüneteltetett VM ellenőrzőpontjait). A lemez-pillanatképek gyakran készülnek, míg a teljes ellenőrzőpontok ritkábban. Minden a csomóponton marad, és a megőrzés szintenként csökken. Ezek a pillanatképek felhasználhatók a munkameneten belüli helyreállításhoz; például a lemez-pillanatképekkel visszaállítható a fájlrendszer egy romboló parancs visszavonásához, a teljes ellenőrzőpontok pedig lehetővé teszik, hogy egy összeomlott sandbox egy közelmúltbeli futó pontról folytatódjon a hideg lemez helyett.
Amikor egy sandbox felfüggesztésre kerül, a VM szünetel, egy teljes pillanatkép készül, és a teljes pillanatképből származó műtermékek felkerülnek az objektumtárba. Egy adatbázis-sor nyomon követi a pillanatképet, és csak akkor válik visszaállíthatóvá, amikor minden egyes műtermék megérkezett, így egy részben feltöltött pillanatkép soha nem állítható vissza sérült állapotba. A visszaállítás a felfüggesztés ellentéte. Mivel a pillanatkép az objektumtárban él, nem pedig az eredeti csomóponton, bármelyik csomópont visszahozhatja a sandboxot. Az ütemező kiválaszt egy csomópontot, az a csomópont letölti a műtermékeket, újra alkalmazza a fájlrendszer-deltát a sablon tetején, és a rögzített állapotából folytatja a VM futtatását.
Hatékonyság: Idő és tér optimalizálása
Nem elég vákuum megvalósítani a fenti funkciókat; szűk erőforrás-korlátok között is lehetségesnek kell lenniük. A csomóponton a memória és a lemez véges, a felhasználók pedig azt akarják, hogy az ügynökök a lehető leggyorsabban működjenek, ezért az életciklus-műveleteknek olcsónak kell lenniük időben és térben egyaránt. Nem engedhetjük meg magunknak, hogy minden alkalommal lemásoljunk egy teljes gépképet, amikor egy sandbox létrejön, szünetel vagy elágazik.
Egy kulcsfontosságú tervezési döntés teszi ezt lehetővé: a fájlrendszer. A SPACE a btrfs-t használja csomóponti fájlrendszerként a sandbox tároláshoz. A Btrfs (B-fa fájlrendszer) ötvözi a másoláskor író (copy-on-write) fájlrendszert az integrált logikai kötetkezeléssel. Ennek számos előnye van:
A Reflink-másolatok gyorsak, mivel megosztják az alatta lévő kiterjedéseket, így csak a metaadatokat kell lemásolni.
A pillanatképek atomiak és gyorsak, mivel csak egy új gyökeret kell létrehozni.
Minimális tárolás szükséges, mivel csak a megváltozott részeket tárolja.
Ennek eredményeként a sandboxok gyorsan létrehozhatók és visszaállíthatók. Ahelyett, hogy minden alkalommal a semmiből hoznánk létre egy sandboxot, fenntartjuk a podok egy olyan meleg készletét, amelyek lemezén már szerepelnek a közös sablonok, és a kérést úgy elégítjük ki, hogy összekapcsoljuk egy olyan poddal, amelynek sablonja már egyezik. Annak a sandboxnak a saját írható gyökérfájlrendszer biztosítása ezután egy copy-on-write klón, nem pedig teljes másolat. Ha nincs megfelelő meleg pod, akkor igény szerint hozzuk létre a sablont; az azonos képre irányuló párhuzamos kéréseket egyetlen letöltéssé vonjuk össze, így az azonos kérések rohamai nem alakulnak át azonos munka rohamává.
Az eredmény egy olyan sandbox futtatókörnyezet, amely egyszerre erős, könnyű súlyú és villámgyors. Amikor bevezettük a SPACE-t, azonos éles forgalom mellett futtattuk az előző sandbox szolgáltatónk mellett. A bevezetési héten a SPACE három-ötször gyorsabban hozott létre sandboxokat a disztribúció során. Konkrétan a medián létrehozási késleltetés 185 ezredmásodpercről 60 ezredmásodpercre esett vissza (3,1-szeres javulás), a 90. százalékos késleltetés pedig 447 ezredmásodpercről 89 ezredmásodpercre csökkent (5,0-szoros javulás). Hasonló nagyságrendű javulásokat figyeltünk meg más teljesítmény- és erőforrás-felhasználási mutatók terén is.

Megkönnyíti a gördülő lemez-pillanatképek készítését is, mivel azok gyorsak, helytakarékosak, és nem igénylik a sandbox szüneteltetését. Ezenkívül a hatékony delta-tárolás csökkenti a pillanatképek tárolásához szükséges helyet.
Következtetés
Összetett rendszerek tervezésekor csábító egyetlen célt kiválasztani az elszigetelt optimalizáláshoz. A határhelyzetben lévő ügynökök fejlesztői azonban egyenlő mértékben követelik meg a biztonságot, a funkcionalitást és a hatékonyságot. A SPACE-szel egy Pareto-javulás elérését tűztük ki célul mindhárom pillér mentén.
Minden egyes tervezési döntés egyszerre több célt is szolgálhat, ami lehetővé teszi ezt a kényes egyensúlyt. A sandboxonkénti VM-ek saját rendszermagot adnak minden munkaterhelésnek, erősítve a biztonságot az erős izoláció révén, miközben biztosítják azt a tiszta ellenőrzőpont-határt is, amelyre a pillanatképek támaszkodnak. A Btrfs lehetővé teszi a pillanatkép-készítés, a forkolás és az ügynök-alapú futtatókörnyezetek szempontjából elengedhetetlen egyéb műveletek hatékony megvalósítását. A space démon minden vendég-interakciót egy ellenőrzött gazdagép oldali útvonalon tart, lezárva a vendég-gazdagép határt, miközben fenntartja az ügynökök mozgásszabadságát. A központi hálózati átjáró közvetíti a kimenő forgalmat és a hitelesítő adatok injektálását anélkül, hogy valaha is felfedné a titkokat a vendég előtt.
Ezen és más tervezési döntések eredménye egy olyan platform, amely lehetővé teszi a valós idejű ügynök-orkesztrációt nagy skálázhatóság mellett. A SPACE biztosítja azt az alapot, amelyen a hosszú ideig futó, állapot-nyilvántartó ügynökök biztonságosan megbirkózhatnak tetszőleges összetettségű vagy időtartamú munkával, a teljesítmény vagy a biztonság feláldozása nélkül.
A SPACE máris millió Perplexity Computer-Munkamenetet hajt. Szándékunk szerint a SPACE egységes rétegként szolgál majd a sandboxok kiépítéséhez és vezérléséhez bármilyen környezetben: a Linux mikroVM-ektől kezdve a Windows vendégeken át a felhasználó saját helyi gépéig. Keményen dolgozunk azon, hogy a SPACE-t betoljuk ezekbe az új környezetekbe, hogy a fejlesztők olyan AI-termékeket adhassanak ki, amelyek mindenhol működnek, ahol a felhasználók dolgoznak.
Ha alig várod, hogy te alakítsd a holnap határhelyzetben lévő ügynökeit hajtó számítási réteget, meghívunk, hogy csatlakozz a csapatunkhoz.