SPACE izveide: Droši un efektīvi izpildlaiki ilgstoši strādājošiem aģentiem

SPACE ir Perplexity droša, efektīva smilšu kastes platforma, kas nodrošina ilgu darbplūsmu izpildi un ātru, izolētu koda izpildi.

AutoriPerplexity Engineering

Tā kā AI aģentu darbplūsmas kļūst garākas un autonomākas, vide, kurā tie darbojas, ir tikpat svarīga kā modeļi, kas tos darbina. Aģentiem ir jāveic reāls darbs, piemēram, jāizpilda kods, jārediģē failu sistēmas un jāizpilda daudzpakāpju uzdevumi vairāku stundu vai dienu garumā. Lietotāji vēlas, lai aģentiem būtu piekļuve rīkiem un failiem, kas nepieciešami šo uzdevumu veikšanai, taču viņiem ir arī jābūt pārliecinātībai, ka viņu sistēmas paliks drošas pat tad, ja aģenti tiks apdraudēti. Smilšu kaste ir tas, kas to visu padara iespējamu: izolēta vide, kurā aģents var darboties brīvi, kamēr resursdators, citi īrnieki un sensitīvi akreditācijas dati paliek aizsargāti.

Tradicionālās uz konteineriem balstītās smilšu kastes pieejas nav paredzētas šādiem uzdevumiem. Tās parasti pieņem īslaicīgus, bezstāvokļa darbus, un kodols kalpo kā viens kļūmes punkts. Pretstatā tam aģentu sesijas ir ilglaicīgas un ar saglabātu stāvokli: aģents uzkrāj stundām ilgu kontekstu, strādājošu failu sistēmu un darbojošos procesus, kurus nevar vienkārši izmest un rekonstruēt no nulles. Turklāt iekšējai slodzei pēc noklusējuma jābūt neuzticamai, kas prasa stingrākus drošības pasākumus. Ilgstošām aģenta sesijām ir nepieciešama pamatne, kas var izolēt naidīgu viesi, saglabāt tā stāvokli un joprojām darboties mērogā.

Galvenais izaicinājums smilšu kastes inženierijā rodas no spriedzes, kas bieži vien pastāv starp drošību, funkcionalitāti un efektivitāti. Piemēram:

Plašākas piekļuves piešķiršana ļauj aģentam paveikt vairāk, bet pakļauj lielāku sistēmas daļu slodzei, kurai jūs neuzticaties.

Lielāka kopīgošana starp smilšu kastēm padara izveidi ātrāku, bet paplašina uzbrukuma virsmu.

Biežāka momentuzņēmumu veidošana uzlabo atkopšanu un iespējo tādas funkcijas kā atgriešanu, bet prasa laiku un atmiņas telpu.

Aģentu smilšu kastēm, piemēram, tām, kas nepieciešamas koda izpildei, Agent Skills izmantošanai vai Search as Code konveijeru izpildei Datoru vaicājumos, ir nepieciešami visi trīs. Mēs pēdējo mēnešu laikā esam smagi strādājuši, lai izstrādātu nākamās paaudzes aģentu infrastruktūru, kas darbina mūsu produktus. Šodien mēs ieviešam SPACE (Sandboxed Platform for Agentic Code Execution): smilšu kastes platformu, kas izveidota aģentu darbplūsmām un ir droša, uzticama un efektīva mērogā. Pagājušajā mēnesī mēs sākām ieviest SPACE kā smilšu kastes slāni, kas darbina Perplexity Computer. Pagājušajā nedēļā tā droši atbalstīja miljoniem smilšu kastes izveides un desmitiem miljonu atkārtotu savienojumu, un palaišanas laiki ir 3–5 reizes ātrāki nekā mūsu iepriekšējam risinājumam.

Šajā rakstā ir apskatīti arhitektūras un dizaina lēmumi, kas pamato SPACE. No šodienas 100% Computer sesiju tagad darbojas vietnē SPACE. Mēs esam priecīgi izvietot šo platformu vēl vairākās virsmās, lai nodrošinātu labāko aģentu izpildlaiku mūsu lietotājiem un izstrādātājiem.

Arhitektūra

Augstākā līmenī sistēma ir sakārtota trijos slāņos.

Vadības plakne ir sistēmas smadzenes, kas nosaka, kam vajadzētu pastāvēt un kur. Tā sastāv no API vārtejas un klases līmeņa stāvokļa pārvaldības moduļiem.

Mezgliem raksturīgie pakalpojumi ir vietējā aparatūra, kas nepieciešama vadības plaknes plāna izpildei. Tie pārvalda smilšu kastes dzīves ciklu, krātuvi, tīklu un privilēģētas operācijas aiz tiem.

Smilšu kaste pati par to ir izolēta izpildes vide. Tā ir ieviesta kā virtuālā mašīna, kas savienota pārī ar space dēmonu: viesa fona procesu, kas nodrošina failu sistēmas, procesu un tīkla piekļuvi slodzei.

SPACE arhitektūra ir sadalīta trijos slāņos: bezstāvokļa vadības plakne; mezgliem lokālie pakalpojumi, kas pārvalda smilšu kastes dzīves ciklu, krātuvi un drošības vārtus; un pati smilšu kaste.

Vadības plakne

API vārteja ir sākumpunkts. Ienākošie pieprasījumi tiek autentificēti un pilnvaroti, pēc tam tulkoti vēlamā stāvokļa ierakstos.

Vadības plakne pēc dizaina ir bezstāvokļa, un visa izturīgā informācija tiek pārvietota uz koplietojamu datu bāzi. Tā izseko klastera līmeņa informāciju par smilšu kastēm, piemēram, kuram mezglam tās ir piešķirtas, kur tās darbojas un vai tās ir dublētas izturīgā krātuvē. Tā nepārtraukti salīdzina vēlamo stāvokli ar novēroto stāvokli un virza abus uz saplūšanu. Operācijas ir idempotentas, tāpēc vadības plakne var automātiski atgūties pēc jebkuras avārijas, sāknēšanas vai daļējas kļūmes.

Mezgliem lokālie pakalpojumi

Mezgliem lokālie pakalpojumi veic faktisko darbu pie veidņu sagatavošanas, smilšu kastu palaišanas, tīkla savienošanas un resursdatora puses izpildlaika pakalpojumu darbināšanas. Katrs mezgls palaiž nelielu dēmonu kopu, kas pārvalda katru tajā ievietoto smilšu kasti, un mezgls ir patiesības avots šo smilšu kastu aktīvajiem stāvokļiem.

Smilšu kastes pārvaldnieks zina, kuras smilšu kastes darbojas, ir pauzētas, apturētas vai apturētas, kopā ar to reālajiem resursiem. Tas darbojas ar nepriviliģētām tiesībām un deleģē visu priviliģēto darbu mezgla pārvaldniekam, vienīgajam saknes procesam, kas starpniecības ceļā apstrādā pamata primitīvus. Krātuve tiek pārvaldīta lokāli un izturīgi: pašreizējo smilšu kastes stāvokļu momentuzņēmumi tiek saglabāti mezglā, un sējumu pārvaldnieks pārvieto momentuzņēmumus un veidnes uz un no objektu krātuves, ja nepieciešams, lai iespējotu starpmezglu operācijas. Drošības vārti aizsargā to, ko smilšu kaste var sasniegt: akreditācijas datu pārvaldnieks pārvalda akreditācijas datu ievadīšanu saskaņā ar autorizāciju katram pakalpojumam, un tīkla vārteja nosaka katras smilšu kastes izejas politiku.

Smilšu kaste

Smilšu kaste pati par sevi ir virtuālā mašīna (VM) ar savu viesa kodolu, kas darbina lietotāja slodzi aiz aparatūras izolācijas robežas. Tā kā katrai smilšu kastei ir savs kodols, apdraudēta slodze nevar paļauties uz koplietotu resursdatora kodolu kā vienu kļūmes punktu; pat ja tā veiksmīgi izmanto savu viesa kodolu, šis apdraudējums aprobežojas ar smilšu kastes VM robežu, nevis izplatās citās slodzēs.

A space dēmons darbojas katrā virtuālajā mašīnā, kalpojot par vieglsvara aģentu, kas regulē katru darbību vai modifikāciju, ko platforma veic viesī. Tas apstrādā failu sistēmas piekļuvi un procesu pārvaldību. Tas arī ziņo par viesa gatavību un izseko darbību, lai platforma zinātu, kad smilšu kaste ir kļuvusi dīkstāvē un to var pauzēt vai atgūt. Izšķiroši svarīgi ir tas, ka space dēmons tieši nesarunājas ar klientiem, bet gan sazinās ar resursdatoru, izmantojot privātu kanālu virtuālās mašīnas iekšienē. Tas saglabā visu viesa mijiedarbību kontrolētā ceļā un rezervē pašas smilšu kastes tīklu tikai slodzes izejošajai satiksmei.

Trīs pīlāri: Drošība, funkcionalitāte un efektivitāte

Pēc tam mēs iedziļināmies galvenajās īpašībās, kas SPACE ir jānodrošina trīs pīlāros: drošība, funkcionalitāte un efektivitāte. Kā minēts iepriekš, šie trīs darbojas viens pret otru. Tomēr mēs nevaram piekāpties nevienā no tiem, ja vēlamies atbalstīt jaudīgus aģentus, kas atbilst mūsdienu modeļa iespējām. Drošība neļauj neuzticamai, iespējams, naidīgai slodzei kaitēt resursdatoram, citiem īrniekiem vai lietotāja noslēpumiem. Funkcionalitāte sniedz aģentiem nepieciešamo bagātīgo dzīves ciklu. Efektivitāte padara to visu par pieņemamu cenu ierobežotas atmiņas, diska un skaitļošanas apstākļos.

Drošība: Datu un sistēmu aizsardzība

Smilšu kastes platformām ir nepieciešama stingra drošība, lai nodrošinātu, ka kļūdains vai pat ļaunprātīgs kods, kas palaists smilšu kastēs, nevar radīt kaitīgas sekas citur. Bez stingras izejas kontroles nodrošināšanas un noslēpumu glabāšanas ārpus smilšu kastes, viens nepareizs aģenta solis var nopludināt lietotāja atslēgas vai eksfiltrēt darbu.

SPACE nodrošina slāņveida drošību, apvienojot VM un resursdatora līmeņa izolāciju ar stingri kontrolētiem saziņas kanāliem, akreditācijas datu pārvaldību un šifrēšanu.

SPACE izmanto slāņveida pieeju, lai nodrošinātu smilšu kastu drošību. Smilšu kastes izolācijai ir divas sastāvdaļas: VM izolācija un resursdatora operētājsistēmas procesa izolācija. Lai piekļūtu starp smilšu kastēm, ir jāpārkāpj abas. Saziņa ar smilšu kasti ir stingri kontrolēta; procesi var sazināties tikai pa īpašiem kanāliem. Tīkla vārteja piespiež visu izejošo datu plūsmu caur sevi. space dēmons ir vienīgais atļautais kanāls starp (neuzticamu) smilšu kasti un (uzticamu) platformu.

Akreditācijas dati nekad neatrodas vietā, kur aģents tos var nozagt. Akreditācijas datu krātuve atrodas ārpus smilšu kastes robežas un ir atbildīga par akreditācijas datu dzīves ciklu. Tā uzglabā un izgūst noslēpumus, izmantojot spraudņa glabātuves aizmugursistēmu, atrisina akreditācijas datus, izmantojot hierarhisku tvērumu, pārvalda tādus metadatus kā injekcijas metode un derīguma termiņš, kā arī uzliek ātruma ierobežojumus un audita žurnālu visai piekļuvei. Kad nepieciešams, akreditācijas dati tiek ievadīti tīkla slānī vai automātiski aizpildīti ar pārlūkprogrammas aģentu, nevis tieši iekļūst smilšu kastē.

Dati tiek aizsargāti miera stāvoklī. SPACE atbalsta BYOK (Bring Your Own Key), lai aizsargātu ārēji glabātos datus. Šifrēšanas atslēgas nāk no klienta atslēgu pārvaldības pakalpojuma un nekad neiekļūst smilšu kastē. Ja uzņēmums atsauc atslēgu, tā dati kļūst nelasāmi.

Funkcionalitāte: Aģentu darbplūsmu nodrošināšana

Lai atbalstītu aģentu darbplūsmas, smilšu kastēm ir nepieciešams bagātīgs dzīves cikla atbalsts. Tām jābūt izveidotām ātri un mērogā, jo aģents var palaist daudzas vienlaikus un tam nevajadzētu gaidīt nevienas no tām sāknēšanu. Tām ir jāpastāv nenoteiktu laiku, jo sesija var ilgt minūtes vai darboties mēnešiem ilgi. Tām ir tīri jāpauzē, dažreiz uz ilgu laiku, piemēram, kad uzdevums ir bloķēts cilvēka ievades dēļ. Un tām ir jāatbalsta sazarošanās, atgriešana un avārijas atkopšana, lai sesija varētu sazaroties, atsaukt sliktu soli vai atsākt darbību pēc kļūmes, nevis sākt no jauna.

SPACE atbalsta visu iepriekš minēto. Tā modelē pilnu smilšu kastes dzīves ciklu kā eksplicītu stāvokļa mašīnu, kas ir tas, kas padara iespējamas tādas operācijas kā izveide, pauzēšana, atsākšana, apturēšana un atjaunošana.

Šis smilšu kastes stāvokļu un stāvokļu pāreju pamata apakškopa nodrošina bagātīgu dzīves cikla atbalstu.

Momentuzņēmumi ir mehānisms, kas atrodas zem lielākās daļas šo iespēju. Plānotājs darbojas ar regulāriem intervāliem un uzņem divu veidu momentuzņēmumus: diska momentuzņēmumus (failu sistēmas kopijas konkrētā laika momentā) un pilnus momentuzņēmumus (visas pauzētās VM kontrolpunktus). Diska momentuzņēmumi tiek uzņemti bieži, savukārt pilni kontrolpunkti ir retāki. Viss paliek mezglā, un saglabāšana samazinās pa līmeņiem. Šos momentuzņēmumus var izmantot atkopšanai sesijas laikā; piemēram, diska momentuzņēmumus var izmantot, lai atgrieztu failu sistēmu atpakaļ, lai atsauktu destruktīvu komandu, un pilni kontrolpunkti ļauj avarējušai smilšu kastei atsākt darbību nesenā darbības punktā, nevis aukstā diskā.

Kad smilšu kaste ir apturēta, VM tiek pauzēta, tiek uzņemts pilns momentuzņēmums, un pilnā momentuzņēmuma artefakti tiek augšupielādēti objektu krātuvē. Datu bāzes rinda izseko momentuzņēmumu un kļūst atjaunojama tikai tad, kad katrs artefakts ir nonācis, tāpēc daļēji augšupielādētu momentuzņēmumu nekad nevar atsākt korumpētā stāvoklī. Atjaunošana ir apturēšanas pretstats. Tā kā momentuzņēmums atrodas objektu krātuvē, nevis oriģinālajā mezglā, jebkurš mezgls var atgriezt smilšu kasti. Plānotājs izvēlas mezglu, šis mezgls lejupielādē artefaktus, atkārtoti lieto failu sistēmas deltu virs veidnes un atsāk VM no tās uzņemtā stāvokļa.

Efektivitāte: Laika un telpas optimizācija

Ar iepriekš minēto funkciju ieviešanu vakuumā nepietiek; tām ir jābūt iespējamām arī stingru resursu ierobežojumu apstākļos. Atmiņa un disks mezglā ir galīgi, un lietotāji vēlas, lai aģenti darbotos pēc iespējas ātrāk, tāpēc dzīves cikla operācijām jābūt lētām gan laikā, gan telpā. Mēs nevaram atļauties kopēt pilnu mašīnas attēlu katru reizi, kad tiek izveidota, pauzēta vai sazarota smilšu kaste.

Galvenā dizaina izvēle padara to iespējamu: failu sistēma. SPACE izmanto btrfs kā mezgla failu sistēmu smilšu kastes krātuvei. Btrfs (B-koka failu sistēma) apvieno kopēšanas rakstīšanas failu sistēmu ar integrētu loģisko sējumu pārvaldību. Tam ir vairākas priekšrocības:

Reflink kopijas ir ātras, jo jūs koplietojat pamatā esošos apjomus, tāpēc ir jākopē tikai metadati.

Momentuzņēmumi ir atomāri un ātri, jo jūs vienkārši izveidojat jaunu sakni.

Ir nepieciešams minimāls krātuves apjoms, jo jūs glabājat tikai to, kas ir mainījies.

Rezultātā smilšu kastes var ātri izveidot un atjaunot. Tā vietā, lai katru reizi izveidotu smilšu kasti no nulles, mēs uzturam siltu podu baseinu, kuru diskā jau ir materializētas kopīgas veidnes, un izpildām pieprasījumu, piesaistot to podam, kura veidne jau sakrīt. Šīs smilšu kastes nodrošināšana ar savu rakstāmo saknes failu sistēmu tad ir kopēšanas rakstīšanas klons, nevis pilna kopija. Ja neviens silts pods neder, mēs materializējam veidni pēc pieprasījuma; mēs apvienojam vienlaicīgus pieprasījumus pēc viena un tā paša attēla vienā lejupielādē, tāpēc identisku pieprasījumu uzliesmojums nepārvēršas par identiska darba uzliesmojumu.

Rezultāts ir smilšu kastes izpildlaiks, kas vienlaikus ir jaudīgs, viegls un neticami ātrs. Kad mēs ieviesām SPACE, mēs to palaidām blakus mūsu iepriekšējam smilšu kastes nodrošinātājam tajā pašā ražošanas datu plūsmā. Visā palaišanas nedēļā SPACE izveidoja smilšu kastes trīs līdz piecas reizes ātrāk visā sadalījumā. Konkrēti, vidējā izveides aizkave kritās no 185 milisekundēm uz 60 milisekundēm (3,1x uzlabojums), un 90. procentiles aizkave kritās no 447 milisekundēm uz 89 milisekundēm (5,0x uzlabojums). Mēs novērojām līdzīgus lieluma kārtas uzlabojumus citos veiktspējas un resursu izmantošanas rādītājos.

Tiešā salīdzinājumā SPACE smilšu kastu izveides aizkave ir līdz pat 5 reizēm ātrāka nekā mūsu iepriekšējam smilšu kastes risinājumam.

Tas arī atvieglo nepārtrauktu diska momentuzņēmumu uzņemšanu, jo tie ir ātri, efektīvi telpas ziņā un neprasa smilšu kastes pauzēšanu. Un efektīva deltu krātuve samazina vietu, kas nepieciešama šo momentuzņēmumu glabāšanai.

Secinājums

Projektējot sarežģītas sistēmas, ir vilinoši izvēlēties vienu mērķi, ko optimizēt izolācijā. Bet robežas aģentu izstrādātāji pieprasa drošību, funkcionalitāti un efektivitāti vienādā mērā. Ar SPACE mēs esam apņēmušies panākt Pareto uzlabojumu visos trijos pīlāros.

Katrs atsevišķs dizaina lēmums var kalpot vairākiem mērķiem vienlaikus, padarot šo smalko līdzsvaru iespējamu. VM katrai smilšu kastei nodrošina katrai slodzei savu kodolu, stiprinot drošību, izmantojot stingru izolāciju, vienlaikus nodrošinot arī tīro kontrolpunkta robežu, uz kuru paļaujas momentuzņēmumi. Btrfs nodrošina efektīvu momentuzņēmumu veidošanas, sazarošanas un citu darbību ieviešanu, kas ir būtiskas aģentu izpildlaikiem. space dēmons saglabā visu viesa mijiedarbību kontrolētā resursdatora puses ceļā, noslēdzot viesa un resursdatora robežu, vienlaikus saglabājot aģentu manevrēšanas brīvību. Centrālā tīkla vārteja nodrošina izejošo datu plūsmu un akreditācijas datu ievadīšanu, nekad neatklājot noslēpumus viesim.

Šo un citu dizaina lēmumu rezultāts ir platforma, kas nodrošina reālo aģentu orķestrēšanu mērogā. SPACE nodrošina pamatu, uz kura ilgstoši darbojošies, stāvokli saturoši aģenti var droši risināt patvaļīga sarežģītības vai ilguma darbu, neupurējot ne veiktspēju, ne drošību.

Šodien SPACE jau darbina miljoniem Perplexity Computer sesiju. Mēs plānojam, ka SPACE kalpos kā vienots slānis smilšu kastu nodrošināšanai un kontrolei jebkurā vidē: no Linux mikrovirtuālajām mašīnām līdz Windows viesiem un lietotāja pašas vietējam datoram. Mēs smagi strādājam, lai ieviestu SPACE šajās jaunajās vidēs, lai izstrādātāji varētu piegādāt AI produktus, kas darbojas visur, kur strādā lietotāji.

Ja jums niez nagi veidot skaitļošanas slāni, kas darbina rītdienas robežas aģentus, aicinām pievienoties mūsu komandai.