Deutsch

Sandbox

So funktioniert Sandboxing in ChatGPT- und Codex-Clients

Die Sandbox ist die Begrenzung, innerhalb derer der Agent autonom handeln kann, ohne uneingeschränkten Zugriff auf Ihren Computer zu erhalten. Wenn ein lokaler Chat Befehle in der ChatGPT desktop app, Codex CLI oder IDE extension ausführt, werden diese Befehle standardmäßig in einer eingeschränkten Umgebung statt mit vollständigem Zugriff ausgeführt.

Diese Umgebung legt fest, was der Agent selbstständig tun kann, beispielsweise welche Dateien er ändern darf und ob Befehle auf das Netzwerk zugreifen können. Solange eine Aufgabe innerhalb dieser Grenzen bleibt, kann der Agent ohne Unterbrechung und ohne Bestätigung weiterarbeiten. Muss er diese Grenzen überschreiten, übernimmt der Genehmigungsprozess.

Funktionsweise der Sandbox

Die Sandbox gilt für gestartete Befehle, nicht nur für integrierte Dateioperationen. Wenn der Agent Tools wie git, Paketmanager oder Test-Runner ausführt, übernehmen diese Befehle dieselben Sandbox-Grenzen.

Codex verwendet auf jedem Betriebssystem plattformeigene Schutzmechanismen. Die Implementierung unterscheidet sich zwischen macOS, Linux, WSL2 und nativem Windows, das Prinzip ist jedoch auf allen Oberflächen gleich: Der Agent erhält einen abgegrenzten Arbeitsbereich, damit Routineaufgaben innerhalb klarer Grenzen autonom ausgeführt werden können.

Warum das wichtig ist

Die Sandbox reduziert den Aufwand für Genehmigungen. Statt Sie um die Bestätigung jedes risikoarmen Befehls zu bitten, kann der Agent innerhalb der bereits von Ihnen genehmigten Grenze Dateien lesen, Änderungen vornehmen und routinemäßige Projektbefehle ausführen.

Außerdem erhalten Sie ein klareres Vertrauensmodell für agentenbasierte Arbeit. Sie vertrauen nicht nur den Absichten des Agenten, sondern auch darauf, dass er innerhalb durchgesetzter Grenzen arbeitet. So können Sie den Agenten leichter selbstständig arbeiten lassen und wissen dennoch, wann er anhält und um Hilfe bittet.

Erste Schritte

Im standardmäßigen Berechtigungsmodus wird Sandboxing automatisch angewendet.

Voraussetzungen

Unter macOS funktioniert Sandboxing ohne zusätzliche Konfiguration über das integrierte Seatbelt- Framework.

Unter Windows verwendet Codex die native Windows- Sandbox, wenn Sie PowerShell nutzen, und die Linux-Sandbox-Implementierung, wenn Sie WSL2 nutzen.

Installieren Sie unter Linux und WSL2 zunächst bubblewrap mit Ihrem Paketmanager:

Ubuntu/Debian

sudo apt install bubblewrap

Fedora

sudo dnf install bubblewrap

Codex verwendet die erste gefundene ausführbare bwrap-Datei in PATH. Ist keine ausführbare bwrap- Datei verfügbar, greift Codex auf ein mitgeliefertes Hilfsprogramm zurück. Dieses Hilfsprogramm setzt jedoch die Unterstützung für das Erstellen nicht privilegierter Benutzer-Namespaces voraus. Durch die Installation des Distributionspakets, das bwrap bereitstellt, bleibt diese Einrichtung zuverlässig.

Codex zeigt beim Start eine Warnung an, wenn bwrap fehlt oder das Hilfsprogramm den benötigten Benutzer-Namespace nicht erstellen kann. Bei Distributionen, die diese AppArmor-Einstellung einschränken, sollten Sie das AppArmor-Profil bwrap laden, damit bwrap weiterhin funktioniert, ohne die Einschränkung systemweit zu deaktivieren.

Funktionsweise von Berechtigungen

Verwenden Sie die Berechtigungssteuerung Ihrer Oberfläche, um festzulegen, wie Codex mit lokalen Aktionen umgeht.

Genehmigungen bestimmen, wann Codex vor einer Aktion pausiert, während die Sandbox festlegt, auf welche Dateien und Netzwerkressourcen Befehle zugreifen können. Wenn eine Genehmigung verschiedene Geltungsbereiche anbietet, etwa eine einmalige Genehmigung oder eine Genehmigung für die Sitzung, wählen Sie den engsten Geltungsbereich, mit dem die Aufgabe fortgesetzt werden kann. Behalten Sie die Projektgrenze als Standard bei; verwenden Sie separate Projekte oder Worktrees, statt den Zugriff auf nicht zusammenhängende Repositorys auszuweiten.

Verwenden Sie in der ChatGPT desktop app die Berechtigungssteuerung unterhalb des Eingabefelds. Abhängig von Ihrer Konfiguration kann das Menü Ask for approval, Approve for me für geeignete Genehmigungsanfragen, Full access sowie benannte oder benutzerdefinierte Berechtigungsprofile enthalten.

Standardeinstellungen konfigurieren

Um jedes Mal mit demselben Verhalten zu beginnen, legen Sie die Standardeinstellungen in config.toml fest. Grundlagen der Konfiguration erläutert die Funktionsweise, und die Konfigurationsreferenz dokumentiert die genauen Schlüssel für sandbox_mode, approval_policy, approvals_reviewer und sandbox_workspace_write.writable_roots. Mit diesen Einstellungen legen Sie fest, wie viel Autonomie der Agent standardmäßig erhält, in welche Verzeichnisse er schreiben darf, wann er für eine Genehmigung pausieren soll und wer geeignete Genehmigungsanfragen prüft.

Auf hoher Ebene sind folgende Sandbox-Modi üblich:

  • read-only: Der Agent kann Dateien untersuchen, aber ohne Genehmigung weder Dateien bearbeiten noch Befehle ausführen.
  • workspace-write: Der Agent kann Dateien lesen, innerhalb des Arbeitsbereichs Änderungen vornehmen und routinemäßige lokale Befehle innerhalb dieser Grenze ausführen. Dies ist der standardmäßige, reibungsarme Modus für lokale Arbeit.
  • danger-full-access: Der Agent wird ohne Sandbox-Einschränkungen ausgeführt. Dadurch entfallen die Dateisystem- und Netzwerkgrenzen. Verwenden Sie diesen Modus nur, wenn der Agent mit vollständigem Zugriff handeln soll.

Folgende Genehmigungsrichtlinien sind üblich:

  • untrusted: Der Agent fragt nach, bevor er Befehle ausführt, die nicht zu seinen vertrauenswürdigen Befehlen gehören.
  • on-request: Der Agent arbeitet standardmäßig innerhalb der Sandbox und fragt nach, wenn er diese Grenze überschreiten muss.
  • never: Der Agent hält nicht für Genehmigungsaufforderungen an.

Wenn Genehmigungen interaktiv erfolgen, können Sie mit approvals_reviewer außerdem festlegen, wer sie prüft:

  • user: Genehmigungsaufforderungen werden dem Benutzer angezeigt. Dies ist die Standardeinstellung.
  • auto_review: Geeignete Genehmigungsaufforderungen werden an einen Prüfagenten gesendet (siehe automatische Prüfung).

Vollständiger Zugriff bedeutet, sandbox_mode = "danger-full-access" zusammen mit approval_policy = "never" zu verwenden. Die risikoärmere Voreinstellung für lokale Automatisierung besteht dagegen aus sandbox_mode = "workspace-write" zusammen mit approval_policy = "on-request" oder den entsprechenden CLI-Flags --sandbox workspace-write --ask-for-approval on-request. Anschließend können Sie approvals_reviewer = "user" für manuelle Genehmigungen beibehalten oder approvals_reviewer = "auto_review" für die automatische Genehmigungsprüfung festlegen.

Wenn der Agent in mehreren Verzeichnissen arbeiten soll, können Sie mit beschreibbaren Stammverzeichnissen die Orte erweitern, die er ändern darf, ohne die Sandbox vollständig zu entfernen. Wenn Sie eine weiter oder enger gefasste Vertrauensgrenze benötigen, passen Sie den standardmäßigen Sandbox-Modus und die Genehmigungsrichtlinie an, statt sich auf einmalige Ausnahmen zu verlassen.

Wenn ein Workflow eine bestimmte Ausnahme erfordert, verwenden Sie Regeln. Mit Regeln können Sie Befehlspräfixe außerhalb der Sandbox zulassen, zur Bestätigung vorlegen oder verbieten. Dies ist häufig besser geeignet, als den Zugriff pauschal auszuweiten. Informationen zu IDE-spezifischen Einstellungs- Einstiegspunkten finden Sie unter Einstellungen der Codex IDE extension.

Die automatische Prüfung ändert, sofern verfügbar, nicht die Sandbox-Grenze. Sie ist eine mögliche approvals_reviewer für Genehmigungsanfragen an dieser Grenze, beispielsweise Sandbox-Eskalationen, blockierter Netzwerkzugriff oder Tool-Aufrufe mit Nebeneffekten, die weiterhin genehmigt werden müssen. Aktionen, die innerhalb der Sandbox bereits zulässig sind, werden ohne zusätzliche Prüfung ausgeführt. Informationen zum Lebenszyklus des Prüfagenten, zu Auslösertypen, zur Semantik von Ablehnungen und zu Konfigurationsdetails finden Sie unter automatische Prüfung.

Plattformspezifische Details finden Sie in der Dokumentation der jeweiligen Plattform. Informationen zur Einrichtung, zum Verhalten und zur Fehlerbehebung unter nativem Windows finden Sie unter Windows. Informationen zu administrativen Anforderungen und organisationsweiten Einschränkungen für Sandboxing und Genehmigungen finden Sie unter Agentengenehmigungen und Sicherheit.