Lage SPACE: Sikre og effektive kjøretider for langvarige agenter

SPACE er Perplexity sin sikre, effektive sandbox-plattform som driver langvarige agentbaserte arbeidsflyter og rask, isolert kodeutførelse.

ForfatterePerplexity Engineering

Ettersom agentbaserte arbeidsflyter blir lengre og mer autonome, betyr miljøene som AI-agenter opererer i like mye som modellene som driver dem. Agenter må utføre ekte arbeid, som å kjøre kode, redigere filsystemer og utføre flertrinns oppgaver over timer eller dager. Brukere ønsker at agenter skal ha tilgang til verktøyene og filene de trenger for å utføre disse oppgavene, men må også kunne stole på at systemene deres forblir sikre selv om agenter blir kompromittert. En sandbox er det som gjør alt dette mulig: et isolert miljø der en agent kan operere fritt, mens verten, andre leietakere og sensitive påloggingsinformasjoner forblir beskyttet.

Tradisjonelle containerbaserte sandbox-tilnærminger er ikke designet for disse oppgavene. De antar vanligvis kortlivede, tilstandsløse jobber og har kjernen som et enkelt feilpunkt. I motsetning til dette er agentøkter langlivede og tilstandsbevarende: en agent akkumulerer timer med kontekst, et arbeidsfilsystem og kjørende prosesser som ikke bare kan kastes bort og gjenoppbygges fra bunnen av. Dessuten bør arbeidsbelastningen på innsiden være upålitelig som standard, noe som krever strengere sikkerhetstiltak. Langvarige agentøkter trenger et underlag som kan isolere en fiendtlig gjest, bevare tilstanden dens og fremdeles betjenes i skala.

Hovedutfordringen innen sandbox-teknikk kommer fra spenningen som ofte oppstår mellom sikkerhet, funksjonalitet og effektivitet. For eksempel:

  • Å gi bredere tilgang lar en agent oppnå mer, men eksponerer mer av systemet for en arbeidsbelastning du ikke stoler på.
  • Å dele mer mellom sandboxer gjør opprettelsen raskere, men utvider angrepsflaten.
  • Hyppigere øyeblikksbilder gir bedre gjenoppretting og muliggjør funksjoner som tilbakerulling, men krever tid og lagringsplass.

Agentbaserte sandboxer, som de som kreves for å kjøre kode, bruke Agent Skills, eller utføre Search as Code-pipeliner i Computer-spørringer, trenger alle tre. Vi har jobbet hardt de siste månedene med å utvikle neste generasjon agentinfrastruktur som driver produktene våre. I dag introduserer vi SPACE (Sandboxed Platform for Agentic Code Execution): en sandbox-plattform bygget for agentbaserte arbeidsflyter som er sikker, pålitelig og effektiv i stor skala. Forrige måned begynte vi å rulle ut SPACE som sandbox-laget som driver Perplexity Computer. Over den siste uken har den sikkert støttet millioner av sandbox-opprettelser og titalls millioner gjenoppkoblinger, med oppstartstider som er 3–5 ganger raskere enn vår forrige løsning.

Denne artikkelen presenterer arkitektur- og designbeslutningene bak SPACE. Fra og med i dag kjører 100 % av Computer-øktene nå på SPACE. Vi er begeistret for å distribuere denne plattformen på enda flere flater for å levere en førsteklasses agentbasert kjøretid til våre brukere og utviklere.

Arkitektur

På et overordnet nivå er systemet organisert i tre lag.

Kontrollplanet er systemets hjerne, som avgjør hva som skal eksistere og hvor. Det består av API-gatewayen og moduler for tilstandsstyring på klyngenivå.

Nodenes lokale tjenester er det lokale maskineriet som kreves for å utføre kontrollplanets plan. De eier sandboxens livssyklus, lagring, nettverk og de privilegerte operasjonene bak dem.

Selve sandboxen er det isolerte utførelsesmiljøet. Det er implementert som en virtuell maskin paret med space-daemonen: en bakgrunnsprosess i gjesten som formidler filsystem-, prosess- og nettverkstilgang for arbeidsbelastningen.

SPACE-arkitektur er delt inn i tre lag: det tilstandsløse kontrollplanet; nodelokale tjenester som administrerer sandboxens livssyklus, lagring og sikkerhetsporter; og selve sandboxen.

Kontrollplan

API-gatewayen er inngangspunktet. Innkommende forespørsler autentiseres og autoriseres, og oversettes deretter til poster over ønsket tilstand.

Kontrollplanet er tilstandsløst av design, der all holdbar informasjon er avlastet til en delt database. Den sporer informasjon på klyngenivå om sandboxer, for eksempel hvilken node de er tildelt, hvor de kjører, og om de er sikkerhetskopiert til holdbar lagring. Den sammenligner kontinuerlig den ønskede tilstanden mot den observerte tilstanden og driver de to mot konvergens. Operasjoner er idempotente, slik at kontrollplanet kan gjenopprettes automatisk etter enhver krasj, omstart eller delvis feil.

Nodelokale tjenester

Nodelokale tjenester utfører det faktiske arbeidet med å klargjøre maler, starte sandboxer, koble opp nettverk og kjøre kjøretidstjenester på vertssiden. Hver node kjører et lite sett med daemons som administrerer hver sandbox som er plassert på den, og noden er sannhetskilden for disse sandboxenes live-tilstander.

Sandbox-behandleren vet hvilke sandboxer som kjører, er satt på pause, suspendert eller stoppet, sammen med deres faktiske ressurser. Den kjører uprivilegert og delegerer alt privilegert arbeid til nodebehandleren, den eneste root-prosessen som formidler de underliggende primitivene. Lagring håndteres lokalt og holdbart: øyeblikksbilder av gjeldende sandbox-tilstander lagres på noden, og en volumbehandler flytter øyeblikksbilder og maler til og fra objektdagring etter behov for å muliggjøre tverrnodenes operasjoner. Sikkerhetsporter vokter hva en sandbox kan nå: legitimasjonsbehandleren styrer legitimasjonsinjeksjon under per-tjeneste-autorisasjon, og nettverksgatewayen håndhever hver sandbox sin utgående retningslinje.

Sandbox

Selve sandboxen er en virtuell maskin (VM) med sin egen gjestekjerne, som kjører brukerens arbeidsbelastning bak en maskinvareisoleringsgrense. Fordi hver sandbox har sin egen kjerne, kan en kompromittert arbeidsbelastning ikke falle tilbake på en delt vertskjerne som et enkelt feilpunkt; selv om den vellykket utnytter gjestekjernen sin, er denne kompromitteringen begrenset til sandboxens VM-grense i stedet for å forplante seg på tvers av andre arbeidsbelastninger.

En space-daemon kjører inne i hver virtuelle maskin, og fungerer som en lettvektsagent som regulerer hver handling eller endring plattformen utfører inne i gjesten. Den håndterer filsystemtilgang og prosessadministrasjon. Den rapporterer også om gjesten er klar og sporer aktivitet, slik at plattformen vet når en sandbox har blitt inaktiv og kan pauses eller frigjøres. Avgjørende er det at space-daemonen ikke snakker direkte med klienter, men i stedet kommuniserer med verten over en privat in-VM-kanal. Dette holder all gjesteinteraksjon på en kontrollert bane og reserverer sandboxens eget nettverk rent for arbeidsbelastningens utgående trafikk.

Tre søyler: Sikkerhet, funksjonalitet og effektivitet

Deretter dykker vi ned i de viktige egenskapene som SPACE må levere på tvers av tre søyler: sikkerhet, funksjonalitet og effektivitet. Som nevnt tidligere trekker disse tre mot hverandre. Likevel kan vi ikke gå på kompromiss med noen av dem hvis vi ønsker å støtte kraftige agenter som lever opp til dagens modellkapasiteter. Sikkerhet hindrer en upålitelig, potensielt fiendtlig arbeidsbelastning i å skade verten, andre leietakere eller en brukers hemmeligheter. Funksjonalitet gir agenter den rike livssyklusen de trenger. Effektivitet gjør alt dette overkommelig med begrensede mengder minne, diskplass og regnekraft.

Sikkerhet: Beskyttelse av data og systemer

Sandbox-plattformer trenger sterk sikkerhet for å sikre at feilaktig eller til og med ondsinnet kode som kjøres inne i sandboxer, ikke kan forårsake skadelige effekter andre steder. Uten å håndheve streng utgående kontroll og holde hemmeligheter ute av sandboxen, kan et enkelt feiltrinn fra en agent lekke en brukers nøkler eller eksfiltrere arbeid.

SPACE håndhever lagdelt sikkerhet ved å kombinere VM- og vertsnivå-isolering med strengt kontrollerte kommunikasjonskanaler, legitimasjonsadministrasjon og kryptering.

SPACE tar en lagdelt tilnærming for å sikre sikkerhet for sandboxer. Sandbox-isolering har to komponenter, VM-isolering og prosessisolering på verts-OS-nivå. Begge må brytes for tilgang på tvers av sandboxer. Kommunikasjon med sandboxen er strengt kontrollert; prosesser kan bare kommunisere gjennom dedikerte kanaler. Nettverksgatewayen tvinger all utgående trafikk gjennom seg. space-daemonen er den eneste godkjente kanalen mellom den (upålitelige) sandboxen og den (pålitelige) plattformen.

Legitimasjon lever aldri der en agent kan stjele dem. Legitimasjonslageret befinner seg utenfor sandbox-grensen og er ansvarlig for legitimasjonens livssyklus. Det lagrer og henter hemmeligheter via et utskiftbart hvelv-backend, finner fram til legitimasjon basert på hierarkisk avgrensning, administrerer metadata som injeksjonsmetode og utløp, og håndhever hastighetsgrenser og revisjonslogging på all tilgang. Om nødvendig injiseres legitimasjon på nettverkslaget eller fylles ut automatisk av en nettleseragent, i stedet for å gå direkte inn i sandboxen.

Data er beskyttet i ro. SPACE støtter BYOK (Bring Your Own Key) for å beskytte eksternt lagrede data. Krypteringsnøkler kommer fra kundens nøkkelstyringstjeneste og kommer aldri inn i sandboxen. Hvis bedriften trekker tilbake nøkkelen, blir dataene deres uleselige.

Funksjonalitet: Støtte for agentbaserte arbeidsflyter

For å støtte agentbaserte arbeidsflyter trenger sandboxer rik livssyklusstøtte. De må opprettes raskt og i stor skala, siden en agent kan spinne opp mange samtidig og ikke bør vente på at noen av dem skal starte opp. De må vedvare på ubestemt tid, siden en økt kan vare i minutter eller kjøre i måneder. De må settes på pause på en ryddig måte, noen ganger over lengre strekk, for eksempel når en oppgave er blokkert av menneskelig inndata. Og de må støtte forking, tilbakerulling og krasjgjenoppretting, slik at en økt kan forgrene seg, angre et dårlig trinn eller gjenoppta etter en feil i stedet for å starte på nytt.

SPACE støtter alt ovenfor. Den modellerer hele sandbox-livssyklusen som en eksplisitt tilstandsmaskin, som er det som gjør det mulig å utføre operasjoner som å opprette, sette på pause, gjenoppta, suspendere og gjenopprette.

Dette kjernesettet av sandbox-tilstander og tilstandsoverganger muliggjør rik livssyklusstøtte.

Øyeblikksbilder er mekanismen bak de fleste av disse funksjonene. En planlegger tikker med jevne mellomrom og tar to typer øyeblikksbilder: disk-øyeblikksbilder (tidspunktskopier av filsystemet) og fullstendige øyeblikksbilder (sjekkpunkter for hele VM-en som er satt på pause). Disk-øyeblikksbilder tas ofte, mens fullstendige sjekkpunkter er sjeldnere. Alt forblir på noden, og oppbevaringstiden avtar etter nivå. Disse øyeblikksbildene kan brukes til økt-gjenoppretting; for eksempel kan disk-øyeblikksbilder brukes til å rulle filsystemet tilbake for å angre en destruktiv kommando, og fullstendige sjekkpunkter lar en krasjet sandbox gjenoppta ved et nylig kjørende punkt i stedet for en kald disk.

Når en sandbox suspenderes, settes VM-en på pause, det tas et fullstendig øyeblikksbilde, og artefaktene fra det fullstendige øyeblikksbildet lastes opp til objektlagring. En databaserad sporer øyeblikksbildet og blir bare gjenopprettelig når hver artefakt har landet, slik at et delvis opplastet øyeblikksbilde aldri kan gjenopptas til en korrupt tilstand. Gjenoppretting er det motsatte av suspensjon. Fordi øyeblikksbildet ligger i objektlagring i stedet for på den opprinnelige noden, kan hvilken som helst node bringe sandboxen tilbake. Planleggeren velger en node, den noden laster ned artefaktene, påfører filsystemets delta på nytt på toppen av malen og gjenopptar VM-en fra sin lagrede tilstand.

Effektivitet: Optimalisering av tid og plass

Det er ikke nok å implementere funksjonene ovenfor i et vakuum; de må også være mulige under strenge ressursbegrensninger. Minne og disk på en node er endelige, og brukere vil at agenter skal fungere så raskt som mulig, så livssyklusoperasjoner må være billige i både tid og plass. Vi har ikke råd til å kopiere et fullstendig maskinbilde hver gang en sandbox opprettes, pauses eller forgrener seg.

Et nøkkeldesignvalg gjør dette mulig: filsystemet. SPACE bruker btrfs som nodens filsystem for sandbox-lagring. Btrfs (B-tre-filsystem) kombinerer et copy-on-write-filsystem med integrert logisk volumstyring. Dette har noen fordeler:

Reflink-kopier er raske, siden du deler de underliggende extentene, slik at bare metadata trenger å kopieres.

Øyeblikksbilder er atomiske og raske, siden du bare lager en ny rot.

Minimal lagring kreves, siden du bare lagrer det som er endret.

Som et resultat kan sandboxer opprettes og gjenopprettes raskt. I stedet for å opprette en sandbox fra bunnen av hver gang, beholder vi et varmt basseng av podder som allerede har vanlige maler materialisert på disken, og oppfyller en forespørsel ved å binde den til en pod hvis mal allerede samsvarer. Å gi den sandboxen sitt eget skrivbare rotfilsystem er da en copy-on-write-klon i stedet for en full kopi. Når ingen varm pod passer, materialiserer vi malen på forespørsel; vi slår sammen samtidige forespørsler om det samme bildet til en enkelt nedlasting, slik at en bølge av identiske forespørsler ikke blir til en bølge av identisk arbeid.

Resultatet er en sandbox-kjøretid som på en gang er kraftig, lett og flammende rask. Da vi rullet ut SPACE, kjørte vi den ved siden av vår forrige sandbox-leverandør på den samme produksjonstrafikken. Gjennom lanseringsuken opprettet SPACE sandboxer tre til fem ganger raskere gjennom distribusjonen. Spesielt falt median for opprettingsforsinkelse fra 185 millisekunder til 60 millisekunder (3,1x forbedring), og den 90. persentil-forsinkelsen falt fra 447 millisekunder til 89 millisekunder (5,0x forbedring). Vi observerte lignende størrelsesordens forbedringer på tvers av andre ytelses- og ressursbruksindikatorer.

I en direkte sammenligning er opprettelsesforsinkelsen for SPACE-sandboxer opptil 5 ganger raskere enn vår forrige sandbox-løsning.

Det gjør det også enkelt å ta rullende disk-øyeblikksbilder, ettersom de er raske, plasseffektive og ikke krever at sandboxen settes på pause. Og effektiv deltalagring reduserer plassen som trengs for å lagre disse øyeblikksbildene.

Konklusjon

Når man designer komplekse systemer, er det fristende å velge et enkelt mål å optimalisere isolert. Men utviklere av banebrytende agenter krever sikkerhet, funksjonalitet og effektivitet i like stor grad. Med SPACE satte vi oss fore å oppnå en Pareto-forbedring på tvers av alle tre søylene.

Hvert enkelt designvalg kan tjene flere mål samtidig, noe som gjør denne fine balansen mulig. Per-sandbox-VM-er gir hver arbeidsbelastning sin egen kjerne, og styrker sikkerheten gjennom sterk isolering samtidig som den gir den rene sjekkpunktgrensen som øyeblikksbilder bygger på. Btrfs muliggjør effektiv implementering av øyeblikksbilde, forking og andre operasjoner som er avgjørende for agentbaserte kjøretider. space-daemonen holder all gjesteinteraksjon på en kontrollert vertssidebane, og forsegler gjest-vert-grensen samtidig som den bevarer agentenes handlingsfrihet. Den sentrale nettverksgatewayen formidler utgående trafikk og legitimasjonsinjeksjon uten noen gang å eksponere hemmeligheter for gjesten.

Resultatet av disse og andre designbeslutninger er en plattform som muliggjør virkelige agentorkestreringer i skala. SPACE gir underlaget som langvarige, tilstandsbevarende agenter trygt kan takle arbeid av vilkårlig kompleksitet eller varighet på, uten å ofre hverken ytelse eller sikkerhet.

I dag driver SPACE allerede millioner av Perplexity Computer-økter. Vi har til hensikt at SPACE skal fungere som et helhetlig lag for klargjøring og kontroll av sandboxer i enhver setting: fra Linux mikro-VM-er til Windows-gjester til en brukers egen lokale maskin. Vi jobber hardt med å dytte SPACE inn i disse nye settingene, slik at utviklere kan levere AI-produkter som fungerer overalt der brukere arbeider.

Hvis du klør etter å forme databehandlingslaget som driver morgendagens banebrytende agenter, inviterer vi deg til å bli med i teamet vårt.

Sitat

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}
}