Att skapa SPACE: Säkra och effektiva körmiljöer för långvariga agenter
SPACE är PerplexityS säkra, effektiva sandlådeplattform som driver långvariga agentbaserade arbetsflöden och snabb, isolerad kodexekvering.
Allteftersom agentbaserade arbetsflöden blir längre och mer autonoma spelar den miljö där AI-agenter verkar lika stor roll som de modeller som driver dem. Agenter behöver utföra verkligt arbete, som att köra kod, redigera filsystem och exekvera uppgifter i flera steg under timmar eller dagar. Användare vill att agenter ska ha tillgång till de verktyg och filer de behöver för att utföra dessa uppgifter, men de måste också kunna lita på att deras system förblir säkra även om agenterna komprometteras. En sandlåda är det som gör allt detta möjligt: en isolerad miljö där en agent kan arbeta fritt medan värden, andra klienter och känsliga autentiseringsuppgifter förblir skyddade.
Traditionella containerbaserade sandlåde-metoder är inte utformade för dessa uppgifter. De förutsätter oftast kortlivade, tillståndslösa jobb och har kärnan som en enskild felpunkt. Däremot är agent-sessioner långlivade och tillståndsberoende: en agent samlar på sig timmar av kontext, ett fungerande filsystem och processer som körs och som inte bara kan kastas bort och rekonstrueras från grunden. Dessutom bör arbetsbelastningen inuti betros som osäker som standard, vilket kräver starkare säkerhetsåtgärder. Långvariga agent-sessioner behöver ett underlag som kan isolera en fientlig gäst, bevara dess tillstånd och ändå drivas i stor skala.
Den huvudsakliga utmaningen inom sandlåde-teknik kommer från den spänning som ofta uppstår mellan säkerhet, funktionalitet och effektivitet. Till exempel:
Att ge bredare åtkomst låter en agent uppnå mer men exponerar mer av systemet för en arbetsbelastning som du inte litar på.
Att dela mer mellan sandlådor gör skapandet snabbare men breddar angreppsytan.
Att ta ögonblicksbilder oftare förbättrar återställningen och möjliggör funktioner som återställning (rollback), men kräver tid och lagringsutrymme.
Agentbaserade sandlådor, som de som krävs för att köra kod, använda Agent Skills eller utföra Search as Code-pipelines i Computer-frågor, behöver alla tre. Vi har arbetat hårt under de senaste månaderna med att konstruera nästa generations agentinfrastruktur som driver våra produkter. Idag introducerar vi SPACE (Sandboxed Platform for Agentic Code Execution): en sandlåde-plattform byggd för agentbaserade arbetsflöden som är säker, pålitlig och effektiv i stor skala. Förra månaden började vi rulla ut SPACE som det sandlåde-lager som driver Perplexity Computer. Under den senaste vecka har den säkert stöttat miljoner skapade sandlådor och tiotals miljoner återanslutningar, med uppstartstider som är 3–5 gånger snabbare än vår föregående lösning.
Denna artikel presenterar de arkitektur- och designbeslut som ligger bakom SPACE. Från och med idag körs 100 % av Computer-sessionerna på SPACE. Vi är glada över att distribuera denna plattform över ännu fler ytor för att leverera en förstklassig agentbaserad körmiljö till våra användare och utvecklare.
Arkitektur
På en övergripande nivå är systemet organiserat i tre lager.
Styrplanet är systemets hjärna som bestämmer vad som ska finnas och var. Det består av API-gatewayen och klusternivåns moduler för tillståndshantering.
Nodlokala tjänster är det lokala maskineri som krävs för att utföra styrplanets plan. De äger sandlådans livscykel, lagring, nätverk och de privilegierade operationerna bakom dem.
Sandlådan är själva den isolerade exekveringsmiljön. Den är implementerad som en virtuell maskin i par med space-daemon: en bakgrundsprocess i gästen som förmedlar filsystem-, process- och nätverksåtkomst för arbetsbelastningen.

Styrplan
API-gatewayen är ingångspunkten. Inkommande förfrågningar autentiseras och auktoriseras, för att sedan översättas till poster för önskat tillstånd.
Styrplanet är tillståndslöst per design, där all beständig information flyttas till en delad databas. Det spårar information på klusternivå om sandlådor, såsom vilken nod de är tilldelade till, var de körs och om de har säkerhetskopierats till beständig lagring. Det jämför kontinuerligt det önskade tillståndet med det observerade tillståndet och driver de två mot konvergens. Operationer är idempotenta, så styrplanet kan återhämtas automatiskt efter en krasch, omstart eller partiellt fel.
Nodlokala tjänster
Nodlokala tjänster utför det faktiska arbetet med att förbereda mallar, starta sandlådor, koppla nätverk och köra körtjänster på värdsidan. Varje nod kör en liten uppsättning daemoner som hanterar varje sandlåda som placerats på den, och noden är sanningens källa för dessa sandlådors aktiva tillstånd.
Sandlådehanteraren vet vilka sandlådor som körs, är pausade, avstängda eller stoppade, tillsammans med deras faktiska resurser. Den körs oprivilegierad och delegerar allt privilegierat arbete till nodhanteraren, den enda rotprocessen som förmedlar de underliggande primitiverna. Lagring hanteras lokalt och beständigt: ögonblicksbilder av aktuella sandlådetillstånd sparas på noden, och en volymhanterare flyttar ögonblicksbilder och mallar till och från objektlagring efter behov för att möjliggöra operationer över noder. Säkerhetsgrindar vaktar vad en sandlåda kan nå: autentiseringshanteraren styr inmatning av autentiseringsuppgifter under per-tjänst-auktorisering, och nätverksgatewayen upprätthåller varje sandlådas egress-policy.
Sandlåda
Själva sandlådan är en virtuell maskin (VM) med sin egen gästkärna som kör användarens arbetsbelastning bakom en hårdvaru-isoleringsgräns. Eftersom varje sandlåda har sin egen kärna kan en komprometterad arbetsbelastning inte falla tillbaka på en delad värdkärna som en enskild felpunkt; även om den framgångsrikt utnyttjar sin gästkärna är den kompromissen begränsad till sandlådans VM-gräns snarare än att den sprider sig över andra arbetsbelastningar.
En space-daemon körs inne i varje virtuell maskin och fungerar som en lättviktsagent som reglerar varje åtgärd eller modifiering som plattformen utför inne i gästen. Den hanterar filsystemsåtkomst och processhantering. Den rapporterar också gästens beredskap och spårar aktivitet, så att plattformen vet när en sandlåda har blivit inaktiv och kan pausas eller återvinnas. Det avgörande är att space-daemonen inte pratar med klienter direkt utan istället kommunicerar med värden över en privat in-VM-kanal. Detta håller all gästinteraktion på en kontrollerad väg och reserverar sandlådans eget nätverk enbart för arbetsbelastningens utgående trafik.
Tre pelare: Säkerhet, funktionalitet och effektivitet
Härnäst dyker vi ner i de nyckelegenskaper som SPACE måste leverera över tre pelare: säkerhet, funktionalitet och effektivitet. Som nämnts tidigare drar dessa tre mot varandra. Ändå kan vi inte kompromissa med någon av dem om vi vill stödja kraftfulla agenter som lever upp till dagens modellkapacitet. Säkerhet hindrar en opålitlig, möjligen fientlig arbetsbelastning från att skada värden, andra klienter eller en användares hemligheter. Funktionalitet ger agenter den rika livscykel de behöver. Effektivitet gör allt detta överkomligt under ändligt minne, disk och beräkning.
Säkerhet: Skydda data och system
Sandlådeplattformar behöver stark säkerhet för att säkerställa att felaktig eller till och med skadlig kod som körs inuti sandlådor inte kan orsaka skadliga effekter någon annanstans. Utan att upprätthålla hård egress-kontroll och hålla hemligheter utanför sandlådan kan ett enda felsteg av en agent läcka en användares nycklar eller exfiltrera arbete.

SPACE antar ett skiktat tillvägagångssätt för att säkerställa säkerhet för sandlådor. Sandlådeisolering har två komponenter, VM-isolering och värd-OS-processisolering. Båda måste överträdas för åtkomst över sandlådor. Kommunikation med sandlådan är strikt kontrollerad; processer kan endast kommunicera genom dedikerade kanaler. Nätverksgatewayen tvingar all egress genom den. space-daemonen är den enda sanktionerade kanalen mellan den (osäkra) sandlådan och den (säkra) plattformen.
Autentiseringsuppgifter lever aldrig där en agent kan stjäla dem. Autentiseringslagret ligger utanför sandlådegränsen och ansvarar för livscykeln för autentiseringsuppgifter. Det lagrar och hämtar hemligheter via en pluggbar valv-backend, löser upp autentiseringsuppgifter med hierarkisk omfattning, hanterar metadata såsom injektionsmetod och utgångstid, samt upprätthåller hastighetsbegränsningar och granskningsloggning för all åtkomst. Vid behov injiceras autentiseringsuppgifter på nätverkslagret eller fylls i automatiskt av en webbläsaragent, i stället för att gå direkt in i sandlådan.
Data skyddas i vila. SPACE stöder BYOK (Bring Your Own Key) för att skydda extern lagrad data. Krypteringsnycklar kommer från kundens nyckelhanteringstjänst och kommer aldrig in i sandlådan. Om företaget återkallar nyckeln blir deras data oläslig.
Funktionalitet: Att driva agentbaserade arbetsflöden
För att stödja agentbaserade arbetsflöden behöver sandlådor ett rikt livscykelstöd. De måste skapas snabbt och i stor skala, eftersom en agent kan starta upp många samtidigt och inte bör vänta på att någon av dem ska starta. De måste finnas kvar under en obestämd tid, eftersom en session kan vara i minuter eller köras i månader. De måste pausas rent, ibland under långa sträckor, till exempel när en uppgift blockeras av mänsklig indata. Och de måste stödja förgrening (forking), återställning (rollback) och kraschåterställning, så att en session kan grena ut, ångra ett dåligt steg eller återuppta efter ett fel istället för att börja om.
SPACE stöder allt ovanstående. Den modellerar hela sandlådans livscykel som en explicit tillståndsmaskin, vilket är det som gör operationer som att skapa, pausa, återuppta, avbryta och återställa möjliga.

Ögonblicksbilder är mekanismen bakom de flesta av dessa funktioner. En schemaläggare tickar med jämna mellanrum och tar två typer av ögonblicksbilder: diskögonblicksbilder (tidssatta kopior av filsystemet) och fullständiga ögonblicksbilder (kontrollpunkter för hela den pausade virtuella maskinen). Diskögonblicksbilder tas ofta, medan fullständiga kontrollpunkter är mindre frekventa. Allting stannar på noden, och lagringen avtar efter nivå. Dessa ögonblicksbilder kan användas för återställning i sessionen; till exempel kan diskögonblicksbilder användas för the rulla tillbaka filsystemet för att ångra ett destruktivt kommando, och fullständiga kontrollpunkter låter en kraschad sandlåda återuppta vid en nyligen körande punkt istället för en kall disk.
När en sandlåda avbryts pausas den virtuella maskinen, en fullständig ögonblicksbild tas och artefakterna från den fullständiga ögonblicksbilden laddas upp till objektlagring. En databasrad spårar ögonblicksbilden och blir inte återställbar förrän varje artefakt har landat, så en delvis uppladdad ögonblicksbild kan aldrig återupptas i ett skadat tillstånd. Återställning är det omvända till avbrott. Eftersom ögonblicksbilden finns i objektlagring snarare än på den ursprungliga noden kan vilken nod som helst få tillbaka sandlådan. Schemaläggaren väljer en nod, den noden laddar ner artefakterna, tillämpar filsystemets delta ovanpå mallen och återupptar den virtuella maskinen från dess fångade tillstånd.
Effektivitet: Optimering av tid och utrymme
Det räcker inte att implementera funktionerna ovan i ett vakuum; de måste också vara möjliga under ansträngda resursbegränsningar. Minne och disk på en nod är ändliga, och användare vill att agenter ska arbeta så snabbt som möjligt, så livscykeloperationer måste vara billiga i både tid och utrymme. Vi har inte råd att kopiera en fullständig maskinbild varje gång en sandlåda skapas, pausas eller förgrenas.
Ett nyckelval i designen gör detta möjligt: filsystemet. SPACE använder btrfs som det nodinterna filsystemet för sandlådelagring. Btrfs (B-tree filesystem) kombinerar ett copy-on-write-filsystem med integrerad logisk volymhantering. Detta har några fördelar:
Reflink-kopior är snabba eftersom du delar på de underliggande extenterna, så endast metadata behöver kopieras.
Ögonblicksbilder är atomära och snabba eftersom du bara skapar en ny rot.
Minimalt med lagring krävs eftersom du bara lagrar det som har ändrats.
Som ett resultat kan sandlådor skapas och återställas snabbt. Istället för att skapa en sandlåda från grunden varje gång behåller vi en varm pool av poddar som redan har vanliga mallar materialiserade på disken, och uppfyller en begäran genom att binda den till en podd vars mall redan matchar. Att ge den sandlådan sin egen skrivbara rotfilsystem är då en copy-on-write-klon snarare än en fullständig kopia. När ingen varm podd passar materialiserar vi mallen på begäran; vi slår ihop samtidiga förfrågningar för samma avbildning till en enda nedladdning, så att en våg av identiska förfrågningar inte förvandlas till en våg av identiskt arbete.
Resultatet är en sandlåde-körtjänst som på samma gång är kraftfull, lättviktig och blixtsnabb. När vi rullade ut SPACE körde vi den bredvid vår föregående sandlådeleverantör på samma produktionstrafik. Under lanseringsveckan skapade SPACE sandlådor tre till fem gånger snabbare över hela distributionen. Specifikt sjönk medianvärdet för skapandets latens från 185 millisekunder till 60 millisekunder (3,1x förbättring), och latensen för det 90:e percentilen sjönk från 447 millisekunder till 89 millisekunder (5,0x förbättring). Vi observerade liknande storleksordningsförbättringar över andra prestanda- och resursanvändningsindikatorer.

Det gör det också enkelt att ta rullande diskögonblicksbilder, eftersom de är snabba, utrymmeeffektiva och inte kräver att sandlådan pausas. Och effektiv deltalagring minskar det utrymme som behövs för att lagra dessa ögonblicksbilder.
Slutsats
När man designar komplexa system är det frestande att välja ett enda mål att optimera isolerat. Men utvecklare av frontier-agenter kräver säkerhet, funktionalitet och effektivitet i lika mått. Med SPACE satte vi igång för att uppnå en Pareto-förbättring över alla tre pelare.
Varje enskilt designval kan tjäna flera mål samtidigt, vilket gör denna känsliga balans möjlig. Per-sandlåda-VM:er ger varje arbetsbelastning sin egen kärna, vilket stärker säkerheten genom stark isolering samtidigt som det ger den rena kontrollpunktsgräns som ögonblicksbilder förlitar sig på. Btrfs möjliggör effektiv implementering av ögonblicksbilder, förgrening och andra operationer som är väsentliga för agentbaserade körmiljöer. space-daemonen håller all gästinteraktion på en kontrollerad värdbaserad sökväg, vilket förseglar gäst-värd-gränsen samtidigt som agenternas manöverfrihet bevaras. Den centrala nätverksgatewayen medlar egress och injicering av autentiseringsuppgifter utan att någonsin exponera hemligheter för gästen.
Resultatet av dessa och andra designbeslut är en plattform som möjliggör verklig agentorkestrering i skala. SPACE tillhandahåller det underlag på vilket långvariga, tillståndsberoende agenter säkert kan ta sig an arbete av godtycklig komplexitet eller varaktighet, utan att offra vare sig prestanda eller säkerhet.
Idag driver SPACE redan miljoner Perplexity Computer-sessioner. Vi har för avsikt att SPACE ska fungera som ett enhetligt lager för att tillhandahålla och styra sandlådor i alla miljöer: från Linux-mikro-VM:er till Windows-gäster till en användares egen lokala maskin. Vi arbetar hårt på att driva in SPACE i dessa nya miljöer, så att utvecklare kan leverera AI-produkter som fungerar överallt där användare arbetar.
Om du brinner för att forma beräkningslagret som driver morgondagens frontier-agenter, bjuder vi in dig att ansluta dig till vårt team.