Hopp til hovedinnhold

Mandag 12. oktober

 Tilbake Selvhostet 2 min 04.07

Plimsoll kjører agentskrevet kode i sandkasse og sier fra hvor sterk veggen var

mandag 12. oktober · KI-generert · Kilde: GitHub

Innholdet er KI-generert og kan inneholde feil. Sjekk originalkilden.

Sett et minstekrav til isolasjon på kode agenten din skriver: Plimsoll, en selvhostet Go-daemon, nekter å kjøre koden hvis sandkassen er svakere enn kravet.

Plimsoll-linjen er lastemerket som males på utsiden av et skipsskrog, der hvem som helst kan sjekke det. Det nye open-source-prosjektet Plimsoll bruker samme idé på sandkasser: hvert resultat oppgir hvilket av fire nivåer kjøringen faktisk fikk, fra svakest til sterkest process, container, kernel og vm. Ifølge README-en på GitHub kan hver forespørsel sette et gulv. Klarer ikke daemonen å møte det, får du feilen ErrInsufficientIsolation, og da har ingenting kjørt.

Nivået følger av hvilken provider daemonen kjører. Wasm-provideren kjører JavaScript i QuickJS på wazero og gir bare process-nivå. Docker med standard runc gir container, Docker med gVisor (runsc) gir kernel, mens E2B og Docker Cloud Sandboxes gir vm via microVM-er. NVIDIAs OpenShell støttes også. Klientkoden er den samme overalt, så du kan teste med wasm på laptopen og bytte til gVisor i produksjon. Uten SANDBOX_PROVIDER satt kjører ingenting.

«E2B og Docker Cloud fakturerer per sekund, og agenter blir aldri lei, så hver kaller kan få en daglig kvote med microVM-sekunder» — cagster, utvikler av Plimsoll, på Hacker News

Den mest nyttige delen for deg som lar agenter kalle egne API-er er brokeren. En grant gir én kjøring lov til å kalle bestemte ruter, og brokeren utenfor sandkassen legger på legitimasjonen selv. Nøkkelen hentes per kjøring og kommer aldri inn i sandkassen. Hver kjøring gir også SHA-256-hasher av forespørsel og resultat, og det separate verktøyet plimsoll-attest signerer dem. Ferdige integrasjoner finnes for Vercel AI SDK, Google ADK, Agno, CrewAI, Trigger.dev og Mastra.

Forbeholdene står i README-en selv: prosjektet er før 1.0, har én utvikler og ingen eksterne brukere ennå, og ingen tredjepart har revidert sikkerheten. Isolasjonsnivået er dessuten daemonens egen vurdering, ikke kryptografisk attestering fra maskinvaren.

Hva bør du gjøre?

  1. Klon repoet og kjør go run ./examples/minimal for å se isolasjonsnivået i resultatet uten Docker, nøkler eller nettverk.
  2. Installer gVisor med sudo ./docker/install-gvisor.sh og kjør med SANDBOX_DOCKER_RUNTIME=runsc før du slipper fiendtlig kode til.
  3. Behandle prosjektet som et eksperiment inntil det har fått en ekstern sikkerhetsrevisjon.

Pulsen · norske KI-nyheter for deg som bygger. Sakene er KI-generert fra originalkilden, som alltid lenkes.