Dieser Leitfaden richtet sich an Ingenieure, die Gateways, Runner und Frameworks verdrahten. Ergänzend zu LangGraph-Checkpoints, Kontingenten und Timeouts und dem IDE-Bridge-Sandbox-Playbook mit Diff- und Health-Pfaden verbinden wir hier sandbox-exec-Denkweise mit messbarer Abnahme; für Retry-Semantik am Gateway siehe JSON-Schema-Tool-Retries und Timeout-Sicherungen. Kontext zur Plattform: Startseite, Preise und der Tech-Blog — ohne Login lesbar.
Inhalt: Entscheidungsmatrix · Bedrohungsmodell · Konfigurationsfragmente · CI-Gates · Abnahmeliste · Fehlmodus-FAQ · Richtlinien
Vergleichsmatrix: Cloud-Sandbox vs. lokaler Remote-Mac
| Dimension | E2B-ähnliche Cloud-Sandbox | Lokale bzw. Remote-Mac-Strategie |
|---|---|---|
| Isolation | Frische VM oder Mikro-VM pro Aufgabe; Kernel-Grenze; schnelles Vernichten. | Eigener macOS-Benutzer, dediziertes APFS-Dataset, keine gemeinsame Login-Sitzung mit Menschen. |
| Rechtefläche | IAM plus Hypervisor; kurzlebige Geheimnisse pro Job. | ACLs, SIP-sensible Pfade, TCC durch headless Dienstdesign vermeiden; Runner ohne Entwickler-Apple-ID. |
| Pfadstabilität | Ephemeres /workspace; reproduzierbare Image-Schichten. |
Explizites AGENT_ROOT, TMPDIR, Cache-Umleitung; keine stillen Schreibzugriffe unter ~/Library für Automation. |
| Timeout-Modell | VM-Wanduhr plus cgroup-ähnliche Limits wo verfügbar. | Asyncio- oder Subprozess-Deckel, ulimit -t falls sinnvoll, HTTP-Deadlines, Graph-Fuse. |
| Beobachtbarkeit | Serielle Konsole, Cloud-Agent, Snapshot vor Destroy. | Strukturierte JSON-Zeilen, git diff --stat-Spuren, gedrosselte launchd-Healthchecks zum Loopback-Gateway. |
| Standardwahl | Öffentlich nicht vertrauenswürdiger Codegen. | Apple-Frameworks, Metal, MLX, Xcode-Nahtstellen, On-Prem-Vorgaben. |
Bedrohungsmodell — Kurztabelle (Einzeiler je Zeile)
Jede Zeile soll mindestens einen automatisierten Test oder eine Alarmregel tragen.
| Akteur / Vektor | Asset | Fehlmodus | Primärkontrolle |
|---|---|---|---|
| Modell-vorgeschlagene Shell | Home, SSH-Schlüssel | Rekursives Löschen oder Archiv-Exfiltration | Allowlist für argv0, cwd-Sperre, Repo nur read-only |
| Unverdächtiges Tool, bösartige Eingabe | Nachbar-Projekte | Pfadtraversierung in Geschwister-Repos | Präfix-Zwang, realpath-Prüfungen |
| Install-Hooks von Abhängigkeiten | Netz-Egress | Supply-Chain-Telefonie nach außen | Egress-Proxy Deny-by-Default, Offline-Spiegel in CI |
| Hängender Subprozess | Worker-Pool | Queue-Stall, GPU-Sperre | SIGTERM-Frist dann SIGKILL, Lease-TTL auf Session-ID |
| Prompt-Injection über Tool-Output | Folge-LLM-Aufrufe | Rekursiver Tool-Fächer | Byte-Obergrenzen, Schema-Validierung, max Tool-Tiefe |
Lokale Sandbox: Konfigurationsfragmente
Apples historisches sandbox-exec- bzw. Seatbelt-Profil-Vokabular bleibt nützlich als Denkschablone für Verbotslisten. Auf aktuellen macOS-Versionen sollten Teams sandbox-exec als Dokumentation von Constraints behandeln, die der Runner neu implementiert: eigener Benutzer, festes Arbeitsverzeichnis, bereinigte Umgebung, explizite Dateideskriptoren — statt stillschweigend vorauszusetzen, dass jedes Flottenmitglied dieselbe CLI mitliefert.
# Sitzungsstart — semantik eines "Wegwerf-Roots" lokal nachbilden
export SESSION_ID="${SESSION_ID:-$(uuidgen | tr '[:upper:]' '[:lower:]')}"
export AGENT_ROOT="$HOME/llm-agent-sand/$SESSION_ID"
mkdir -p "$AGENT_ROOT"/{workspace,tmp,cache,logs}
chmod 700 "$AGENT_ROOT"
cd "$AGENT_ROOT/workspace" || exit 1
export TMPDIR="$AGENT_ROOT/tmp"
export XDG_CACHE_HOME="$AGENT_ROOT/cache"
ulimit -t 180 2>/dev/null || trueErgänzen Sie ein versioniertes Tool-Manifest: absolute Pfade zu Binärdateien, maximale Argumentlänge, verbotene Umgebungsvariablen und die Regel, dass $HOME des Agentenbenutzers nur den Sandbox-Präfix umfasst. Gateway-Pfade spiegeln die read-only-Repo- plus beschreibbare-Scratch-Trennung aus dem verlinkten IDE-Bridge-Artikel.
Anbindung an CI-Gates
Sandboxes scheitern, wenn nur Menschen sich an Knöpfe erinnern. Heben Sie dieselben Verträge in CI:
- Registry-Diff — Build bricht, wenn ein neuer Toolname ohne JSON Schema, Owner und Standard-Timeout erscheint.
- Dry-Run-Harness — jeder Toolpfad läuft gegen synthetischen Workspace auf einem Mac-Runner; Schreibpfade müssen unter
AGENT_ROOTbleiben. - Budgettabelle — exportierte Maximal-Wandzeiten pro Toolklasse; CI scheitert, wenn Summen die Nacht-SLA übersteigen.
- Secret-Scanner — Commits mit Loopback-Gateway-Token oder
.p12-Blobs in Agent-Templates blockieren.
Merge-Queues werden zur Mini-Cloud: jede Änderung belegt Pfad- und Timeout-Invarianten, bevor Templates die Flotte erreichen.
Timeout- und Pfad-Abnahmeliste (objektiv prüfbar)
Erst ausliefern, wenn jedes Kriterium wahr ist — in Tickets oder SOC-Reviews einfügen.
- SESSION_ID präfixiert jeden Schreibpfad; Löschen der Sitzung entfernt Workspace, tmp und cache.
- TMPDIR und XDG_CACHE_HOME liegen unter
AGENT_ROOT; kein Fallback auf gemeinsames/tmp. - Jedes Tool hat Wand-Timeout pro Aufruf plus Prozessgruppen-Kill bei Ablauf.
- Graph oder Workflow besitzt einen globalen Fuse unterhalb der Infrastruktur-Idle-Abschaltung.
- Quell-Repos read-only oder per ACL;
git pushnur nach zweitem menschlichem Schritt. - Egress standardmäßig verweigert; Host- und Port-Allowlist pro Toolprofil.
- Logs redigieren Token; Fehler liefern strukturiertes JSON ans Modell, keine Roh-
stderr-Wände. - Soak auf dediziertem Remote Mac: doppelte erwartete Parallelität eine Stunde ohne Zombie-PIDs.
Fehlmodus-FAQ
Warum lecken Allowlist-Tools dennoch Daten? Namenslisten ersetzen keine Pfad- und Umgebungsdisziplin. Kombinieren Sie argv-Prüfung, cwd-Sperren, bereinigtes TMPDIR und Ausgabe-Byte-Deckel.
Wann ist Cloud zwingend sicherer? Wenn Code vollständig fremd ist und keine Apple-APIs nötig sind — VM zerstören; Mac-Runner für signierte Pipelines reservieren.
Was bricht zuerst unter Last? Selten das Modell — verwaiste Shells, volle Scratch-Disks, Checkpoint-Verzeichnisse im Konflikt mit Tool-Caches. Inodes und Bytes gemeinsam überwachen.
Wie formulieren Sie Timeouts für das LLM? TOOL_TIMEOUT nur mit Retry-Hinweis bei Idempotenz; sonst terminalen Policy-Code liefern, damit der Agent nicht endlos schleift.
Ausführbare Richtlinien (ins README kopieren)
- Kein Tool läuft als interaktiver Entwicklerbenutzer; Automation nutzt dedizierten Account ohne Login-Objekte.
- Jeder Remote-Aufruf trägt
SESSION_ID,AGENT_ROOTund einen herunterzählenden maximalen Tool-Tiefenzähler. - Timeouts existieren in drei Schichten: HTTP-Client, Subprozess, Graph — dokumentiert in derselben Datei wie die Tool-Registry.
- CI muss Pfad-Einschluss und Timeout-Verhalten auf macOS belegen, bevor Agent-Templates in Produktionszweige wandern.
Weiterlesen: Tech-Blog-Übersicht · Kaufen / Mieten · Hilfezentrum