Nicht vertrauenswürdigen Code sicher ausführen: ein KI-Agent in einer Wegwerf-Sandbox
Der Agent schreibt und führt ein Skript aus, versucht das Internet zu erreichen und meldet, dass der Aufruf in einer microVM fehlschlägt, die danach verschwindet.
- Shell
- Budgetlimit
Eine echte Ausführung ansehen
Eine echte Ausführung vom 7. Okt. 2026, erneut abgespielt. Modell: openai/gpt-6-luna.
- In WarteschlangeBudget $0.04 reserviert
- MicroVMmicroVM ready
- MicroVMworker started · shell on · web off
- Shell
$ pwd; whoami - Shell
$ command -v curl && curl -sS -m 8 https://example.com - Shell
$ printf '%s\n' '#!/usr/bin/env python3' 'primes = []' 'n = 2' 'while len(primes) < 15:' ' if all(… - Shell
$ printf 'sandbox proof\n' > /tmp/proof.txt && ls -l /tmp/proof.txt - MicroVMmicroVM destroyed
- Erfolgreich3 Modellaufrufe, 5,214 TokensAufgezeichnete Ausgabe (Englisch)
- Prime script output:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 whoami:worker;pwd:/tmp/ephemeral-run-s2TPIy/scratch- curl error:
curl: (6) Could not resolve host: example.com /tmp/proof.txtcreated;ls -l:-rw-r--r-- 1 worker worker 14 Oct 7 15:02 /tmp/proof.txt
The network call did not succeed.
- Prime script output:
- Worker zerstört$0.00353 berechnet, $0.03647 freigegeben
Selbst ausführen
Öffnen Sie das Beispiel im Playground, mit der vollständig ausgefüllten Anfrage. Es läuft in Ihrem eigenen Konto, innerhalb des angezeigten Budgets, gegen dieselben schreibgeschützten Beispielsysteme.
Budget für dieses Beispiel: $0.04
So funktioniert es
Der Webzugriff ist aus und die Shell ist an, sodass der Agent Code ausführen, aber nichts nach außen senden kann. Der Prompt bittet ihn, einen Netzwerkaufruf zu versuchen und den genauen Fehler zu melden, was die Isolation im Zeitverlauf sichtbar macht. Nichts, was er schreibt, überlebt die Ausführung.
Was der Agent tun kann und was nicht
Die Berechtigungen sind Teil der Anfrage. Alles, was hier nicht aufgeführt ist, steht der Ausführung nicht zur Verfügung.
| Einstellung | Erlaubt |
|---|---|
| Verbindungen | Keine |
| Web | Aus |
| Shell | An, innerhalb der abgeschotteten Maschine |
| Dateien | Keine |
| Null-Datenspeicherung | Aus: Das Protokoll wird 30 Tage lang gespeichert |
| Budget | $0.04, ein festes Limit |
| Timeout | 120 Sekunden |
Zugangsdaten gelangen nie in die Maschine: Ein Broker ergänzt sie bei jedem Aufruf und erzwingt die oben genannten Methoden.
Der Code
Das ist die genaue Anfrage, die das Beispiel sendet. Setzen Sie EPHEMERAL_API_KEY auf einen Mitgliedsschlüssel Ihrer Organisation.
curl -X POST $EPHEMERAL_URL/v1/runs \
-H "Authorization: Bearer $EPHEMERAL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @request.jsonVollständiger Anfragetext request.json
Derselbe Text, mit den Dateien inline.
{
"prompt": "This is a sandbox test. Do these steps with the shell and report the real output, never what you expect. 1) Write a small script that prints the first 15 prime numbers, run it and show the output. 2) Run `whoami` and `pwd`. 3) Try to reach the internet with `curl -sS -m 8 https://example.com` (and, if curl is missing, python3 with urllib) and report the exact error. 4) Write a file named /tmp/proof.txt and list it. Reply in Markdown, at most 120 words: one line per step with the result, then one sentence saying whether the network call succeeded.",
"web": false,
"shell": true,
"timeout_seconds": 120,
"max_cost_micros": 40000
}