Diese Seite ist eine Übersetzung der englischen Dokumentation. Befehle, Bezeichner und Beispiele bleiben unverändert. Runtime 7.24.4 · SDK 2.6.7. Englische Fassung
Sandbox-Modus
Status: Aktiv Geltungsbereich: aktueller Stand Zuletzt geprüft: 2026-08-23 Verantwortlich: ax-code runtime
AX Code enthält eine eingebaute Ausführungssandbox, die einschränken kann, was der KI-Agent auf Ihrem System tut. Standardmäßig startet AX Code mit vollem Zugriff und ausgeschalteter Sandbox, sodass Schreibzugriffe auf das Dateisystem und der Netzwerkzugriff unbeschränkt sind. Aktivieren Sie workspace-write oder read-only, bevor Sie mit nicht vertrauenswürdigen Repositories arbeiten oder unbeaufsichtigte Aufgaben ausführen.
Sicherheitswarnung:
full-accessist keine Sicherheitsgrenze. Der Agent kann Dateien außerhalb des Arbeitsbereichs ändern,.git/und.ax-code/schreiben, uneingeschränkte Shell-Befehle ausführen und auf das Netzwerk zugreifen.
Schnellstart
Schalten Sie die Sandbox in der TUI um:
- Geben Sie
/sandboxin die Eingabe ein, oder - Drücken Sie
Ctrl+Pund suchen Sie nach „Sandbox“
Die Statusleiste zeigt den aktuellen Zustand:
- Sandbox an (grün) — der Agent bleibt auf den Arbeitsbereich beschränkt
- Sandbox aus (rot) — keine Einschränkungen
Die Einstellung bleibt über Sitzungen hinweg in ax-code.json erhalten.
Was sich ändert
| Fähigkeit | Sandbox aus | Sandbox an |
|---|---|---|
| Schreibzugriffe innerhalb des Arbeitsbereichs | Erlaubt | Erlaubt |
| Schreibzugriffe außerhalb des Arbeitsbereichs | Erlaubt | Blockiert |
Schreibzugriffe auf .git/ |
Erlaubt | Blockiert |
Schreibzugriffe auf .ax-code/ |
Erlaubt | Blockiert |
| Bash-Befehle | Unbeschränkt | Nur Arbeitsbereich |
Bash mit Ziel .git/, .ax-code/ |
Erlaubt | Blockiert |
| Bash mit Ziel außerhalb des Arbeitsbereichs | Erlaubt | Blockiert |
| Netzwerkzugriff (webfetch, websearch) | Erlaubt | Blockiert |
| Bash-Netzwerkclients (curl, wget, …) | Erlaubt | Blockiert |
| Lesevorgänge (read, glob, grep) | Unbeschränkt | Unbeschränkt |
Konfiguration
Maßgebliche Quelle
Diese Seite fasst das Verhalten für Benutzer zusammen. Wenn sich das Verhalten ändert, prüfen Sie die Dokumentation anhand dieser Stellen:
packages/ax-code/src/isolation/index.tsfür die Auflösung des Modus, geschützte Pfade, Netzprüfungen, Schreibprüfungen, Bash-Prüfungen undIsolationDeniedError.packages/ax-code/src/config/schema.tsfür die Form der Konfiguration, Voreinstellungen und Beschreibungen.packages/ax-code/src/server/routes/isolation.tsfür das Umschaltverhalten zur Laufzeit und das Speichern.packages/ax-code/test/isolation/isolation.test.tsundpackages/ax-code/test/tool/bash.test.tsfür das erwartete Durchsetzungsverhalten.
Halten Sie doppelte Aussagen in der README im Wurzelverzeichnis kurz und verlinken Sie für Einzelheiten hierher.
Umschalten in der TUI
Verwenden Sie /sandbox oder die Befehlspalette (Ctrl+P → „Sandbox ein- oder ausschalten“). Die Änderung wirkt sofort und wird in ax-code.json Ihres Projekts gespeichert.
CLI-Option
ax-code --sandbox workspace-write # sandbox on
ax-code --sandbox full-access # sandbox off
ax-code --sandbox read-only # strictest: blocks all mutations
Umgebungsvariable
AX_CODE_ISOLATION_MODE=workspace-write ax-code
Konfigurationsdatei
In ax-code.json:
{
"isolation": {
"mode": "workspace-write",
"network": false
}
}
Vorrang
CLI-Option > Umgebungsvariable > Konfigurationsdatei > Voreinstellung (full-access)
Wenn eine Überschreibung per CLI oder Umgebung aktiv ist, zeigt die TUI diesen wirksamen Modus. Ein Umschalten mit /sandbox kann die Projektvoreinstellung speichern. Die Überschreibung mit höherem Vorrang bleibt aktiv, bis sie entfernt wird, normalerweise beim Neustart.
Isolationsmodi
| Modus | Beschreibung |
|---|---|
workspace-write |
Schreibzugriffe bleiben auf den Arbeitsbereich beschränkt. Das Netzwerk ist deaktiviert. Geschützte Pfade werden durchgesetzt. Angezeigt als „Sandbox an“. |
full-access |
Keine Einschränkungen. Angezeigt als „Sandbox aus“. |
read-only |
Alle Änderungen sind blockiert. Kein Bash. Keine Schreibzugriffe. Kein Netzwerk. |
Geschützte Pfade
Im Modus workspace-write sind diese Pfade immer schreibgeschützt:
.git/— verhindert eine versehentliche Beschädigung des Git-Zustands.ax-code/— verhindert die Manipulation von Konfiguration oder Plugin
Ergänzen Sie eigene geschützte Pfade in der Konfiguration:
{
"isolation": {
"mode": "workspace-write",
"protected": ["secrets", "credentials"]
}
}
Netzwerkzugriff
Das Netzwerk ist in den Modi workspace-write und read-only standardmäßig deaktiviert. Betroffene Werkzeuge:
webfetch— blockiertwebsearch— blockiertcodesearch— blockiertbash— Clients nur für das Netzwerk (curl,wget,nc/ncat/netcat,telnet,ftp,tftp,scp,sftp,dig,nslookup,host) sind blockiert
Einschränkung: Die Netzwerksperre in
bashliegt auf der Anwendungsschicht und erfasst die oben genannten Clients, die nur das Netzwerk ansprechen. Sie fängt Werkzeuge mit doppeltem Zweck, die auch offline arbeiten (git,npm/pnpm/yarn,pip,go, Sprachinterpreter wiepython/node), nicht ab, weil sich ihre Offline-Aufrufe statisch nicht unterscheiden lassen und eine Sperre übliche Arbeitsabläufe unterbrechen würde. Eine echte, vollständige Netzwerkisolation verlangt Steuerungen auf Betriebssystemebene. Diese Sandbox stellt sie nicht bereit. Trifft der Agent auf einen abgelehnten Client, fordert er eine einmalige Eskalation an.
So erlauben Sie das Netzwerk und behalten die Schreibbeschränkungen:
{
"isolation": {
"mode": "workspace-write",
"network": true
}
}
Isolations-Backend (Anwendung gegenüber Betriebssystem)
| Backend | Konfiguration / Umgebung | Verhalten |
|---|---|---|
app |
"backend": "app" |
Nur portable Prüfungen auf der Werkzeugschicht |
os |
"backend": "os" / AX_CODE_ISOLATION_BACKEND=os |
Prüfungen der Anwendung plus Kernel-Sandbox für Bash; Fehler, wenn Werkzeuge des Betriebssystems fehlen |
auto (Voreinstellung) |
"backend": "auto", nicht gesetzt, oder AX_CODE_ISOLATION_BACKEND=auto |
Bevorzugt die Betriebssystemhülle für Bash; Rückfall nur auf die Anwendung |
macOS: Seatbelt-Profile über sandbox-exec (Schreiben beschränkt auf Arbeitsbereich und Worktree, Netzwerk verweigert bei network: false).
Linux: bubblewrap (bwrap), sofern installiert (--unshare-net bei deaktiviertem Netzwerk, Arbeitsbereich per Bind-Mount lesend und schreibend).
Windows: heute nur die Anwendungsschicht.
{
"isolation": {
"mode": "workspace-write",
"network": false,
"backend": "auto"
}
}
Siehe SECURITY.md zum Bedrohungsmodell.
Durch das Repository gesteuerte Berechtigungen und Hooks
Projektdateien gelten standardmäßig als nicht vertrauenswürdig. Berechtigungsregeln in ax-code.json, .ax-code/policy.json sowie Definitionen von Projektagent oder Modus dürfen den Zugriff mit deny enger fassen, doch vom Repository gesteuerte Freigaben allow/ask werden ignoriert. Projektbefehle können die Shell-Expansion nicht aktivieren. .ax-code/hooks.json, .ax-code/plugin/ und vom Projekt konfigurierte Plugins werden nicht ausgeführt.
Nicht vertrauenswürdige Projektkonfiguration kann außerdem keine eigene Shell, kein ausführbares LSP und keinen Formatierer, kein Anbieterpaket und keinen API-Endpunkt, keine Umgebungsvariablen für Anbieterzugangsdaten, keine externe Skill-Quelle und keinen Anweisungspfad außerhalb des Worktrees wählen. Sichere relative Anweisungspfade und nicht ausführbare eingebaute Überschreibungen bleiben verfügbar. MCP-Server nutzen einen getrennten Genehmigungsablauf mit Fingerabdruck, beschrieben in MCP-Integrationen.
Nach der Prüfung der vom Repository gesteuerten Konfiguration können Sie außerhalb des Repositories für den aktuellen Prozess zustimmen:
AX_CODE_TRUST_PROJECT_CONFIG=1 ax-code
Der Schalter nur über die Umgebung verhindert, dass ein Checkout sich selbst als vertrauenswürdig erklärt.
So funktioniert die Durchsetzung
Die Durchsetzung der Sandbox liegt immer auf der Anwendungsschicht und wird bei jedem Werkzeugaufruf geprüft. Wenn backend os oder auto ist und die Plattform das unterstützt, wird Bash zusätzlich in eine Kernel-Sandbox gehüllt.
| Werkzeug | Prüfung |
|---|---|
bash |
Arbeitsverzeichnis und alle aufgelösten Pfade müssen im Arbeitsbereich liegen; Clients nur für das Netzwerk werden blockiert, wenn das Netzwerk deaktiviert ist; optionale Hülle des Betriebssystems |
edit |
Die Zieldatei muss im Arbeitsbereich liegen und darf nicht geschützt sein |
write |
Die Zieldatei muss im Arbeitsbereich liegen und darf nicht geschützt sein |
apply_patch |
Alle Zieldateien müssen im Arbeitsbereich liegen und dürfen nicht geschützt sein |
webfetch |
Der Netzwerkzugriff muss aktiviert sein |
websearch |
Der Netzwerkzugriff muss aktiviert sein |
codesearch |
Der Netzwerkzugriff muss aktiviert sein |
Verletzt ein Werkzeug die Isolation, löst es ein IsolationDeniedError mit einer klaren Meldung aus, die erklärt, was blockiert wurde und warum.