- „Bash for Agents“ von Vercel
- Eine TypeScript-basierte virtuelle Bash-Umgebung, entwickelt für KI-Agenten, die eine sichere, sandboxed Bash-Umgebung benötigen
- Läuft auf einem virtuellen In-Memory-Dateisystem (InMemoryFs) und bietet eine Sandbox-Ausführungsumgebung, in der kein Zugriff auf die echte Festplatte möglich ist
- Netzwerkzugriff ist standardmäßig blockiert; bei Bedarf werden sichere Netzwerkanfragen auf Basis erlaubter URLs über
curl unterstützt
- Es ist nur Zugriff auf das bereitgestellte Dateisystem möglich; außerdem sind Funktionen zur Verhinderung von Endlosschleifen und rekursiver Ausführung enthalten
- Die Ausführung von Binärdateien oder WASM wird nicht unterstützt
- Bei der API-Nutzung erfolgt die Isolation auf
exec()-Ebene, sodass Umgebungsvariablen, Funktionen und Arbeitsverzeichnis zwischen Aufrufen nicht erhalten bleiben (nur der Zustand des Dateisystems bleibt bestehen)
- Über Konstruktorparameter sind detaillierte Einstellungen wie initiale Dateien, Umgebungsvariablen, Arbeitsverzeichnis und Ausführungsgrenzen möglich
- Unterstützt Lazy File Loading, sodass Dateiinhalte bei Bedarf erst zum benötigten Zeitpunkt synchron oder asynchron per Funktion erzeugt werden können
- Mit benutzerdefinierten Befehlen (
defineCommand) lassen sich TypeScript-basierte Custom Commands hinzufügen
- Über
CommandContext wird Zugriff auf fs, cwd, env, stdin und exec unterstützt
- Vier Implementierungen des Dateisystems werden bereitgestellt
- InMemoryFs: rein speicherbasiert
- OverlayFs: Lesen von der Festplatte, Schreiben in den Speicher
- ReadWriteFs: Lesen und Schreiben auf die echte Festplatte möglich
- MountableFs: mehrere Dateisysteme werden pro Pfad gemountet und zu einem gemeinsamen Namespace zusammengeführt
- Unterstützung für
bash-tool als AI SDK-Integrationswerkzeug
- In Kombination mit
generateText() dafür ausgelegt, dass KI-Modelle Bash-Befehle sicher ausführen können
- Bietet eine Vercel Sandbox-kompatible API
- Über die Klasse
Sandbox mit derselben Schnittstelle wie @vercel/sandbox nutzbar
- Bei Bedarf ist ein Wechsel zu einer echten VM-basierten Sandbox einfach möglich
- Stellt das CLI-Kommando
just-bash bereit
- Läuft auf Basis von OverlayFS; alle Schreibvorgänge werden nach der Ausführung im Speicher verworfen
- Mit der Option
--json wird die programmgesteuerte Ausgabe von Ergebnissen unterstützt
- Bietet einen interaktiven Shell-Modus (
pnpm shell)
- Standardmäßig ist Internetzugang erlaubt; mit
--no-network kann er blockiert werden
- Unterstützte Befehle
- Enthält die meisten Standard-Bash-Befehle für Dateimanipulation, Textverarbeitung, Datenverarbeitung, Kompression, Netzwerk usw.
- Datenverarbeitungsbefehle wie
jq, sqlite3, python3 (auf Basis von Pyodide) werden optional ebenfalls unterstützt
- Als Shell-Funktionen werden die meisten Bash-Sprachmerkmale umgesetzt, darunter Pipes, Umleitungen, Bedingungen, Schleifen, Funktionen, Variablen und Glob-Muster
- Die Standard-Verzeichnisstruktur bietet mit
/home/user, /bin, /usr/bin, /tmp usw. eine Unix-ähnliche Umgebung
- Netzwerkzugriffskontrolle erfolgt per Whitelist auf Basis von URL und HTTP-Methode
- Mit der Option
dangerouslyAllowFullInternetAccess kann voller Zugriff erlaubt werden
- Unterstützung für Python und SQLite ist optional aktivierbar
- Python auf Basis von Pyodide und SQLite auf Basis von WASM (sql.js) gewährleisten eine vollständig sandboxed Ausführung
- Ausführungsschutzfunktionen erlauben die Konfiguration von Grenzen wie Funktionstiefe, Anzahl von Befehlen und Schleifeniterationen
- Apache-2.0-Lizenz
Noch keine Kommentare.