- Ein leichtgewichtiger, Rust-basierter Python-Interpreter, der für die sichere Ausführung von AI-generiertem Code entwickelt wurde und die Komplexität sowie Latenz von Container-Sandboxes beseitigt
- Dateisystem-, Umgebungsvariablen- und Netzwerkzugriffe werden vollständig blockiert; aufrufbar sind nur externe Funktionen, die Entwickler explizit freigeben
- Bietet eine Startzeit von unter 1 Mikrosekunde und eine Ausführungsleistung ähnlich zu CPython; aufrufbar aus Rust, Python und JavaScript
- Der Ausführungszustand kann bytegenau als Snapshot gespeichert und wiederhergestellt werden, sodass Unterbrechung und Fortsetzung prozessübergreifend möglich sind
- Soll die Funktion Code Mode von Pydantic AI antreiben und als zentrale Komponente für die sichere Ausführung von von LLMs geschriebenem Python-Code dienen
Überblick über Monty
- Monty ist ein in Rust geschriebener experimenteller Python-Interpreter als Werkzeug zur sicheren Ausführung von AI-generiertem Code
- Vermeidet Kosten, Latenz und Komplexität containerbasierter Sandboxes und kann von LLMs geschriebenen Python-Code direkt ausführen
- Die Startzeit liegt im Bereich von wenigen Mikrosekunden und ist damit deutlich schneller als die typischen mehreren hundert Millisekunden bei Containern
- Mögliche Funktionen
- Unterstützt die Ausführung von Teilen der Python-Syntax, einschließlich statischer Typprüfung auf Basis von Type Hints
- Host-Zugriff vollständig blockiert; externe Funktionen können nur aufgerufen werden, wenn sie vom Entwickler ausdrücklich erlaubt wurden
- Aufrufbar aus Rust, Python und JavaScript; mit integrierter Verfolgung und Begrenzung des Ressourcenverbrauchs
- Unterstützt Erfassung von stdout/stderr, Ausführung asynchronen Codes sowie Speichern und Wiederherstellen von Snapshots
- Einschränkungen
- In der Standardbibliothek sind nur
sys, typing, asyncio, dataclasses(geplant) und json(geplant) verfügbar
- Klassendefinitionen und
match-Anweisungen werden derzeit noch nicht unterstützt
- Third-Party-Bibliotheken werden nicht unterstützt
- Das Design verfolgt nur ein Ziel: von Agenten geschriebenen Code sicher auszuführen
Integration mit Pydantic AI
- Monty treibt den Code Mode von Pydantic AI an
- Das LLM schreibt Python-Code statt Tool-Aufrufen, und Monty führt ihn sicher aus
- Im Beispiel werden funktionale Tools wie
get_weather und get_population definiert, und das LLM schreibt Code, der diese aufruft
Vergleich mit Alternativen
- Monty ist bei der Vollständigkeit der Sprache eingeschränkt, überzeugt aber bei Sicherheit, Geschwindigkeit und Einfachheit
- Startlatenz 0,06 ms, kostenlos, einfache Installation, unterstützt Snapshots
- Kurzvergleich mit anderen Technologien:
- Docker: vollständige CPython-Umgebung, gute Sicherheit, aber Startlatenz von 195 ms
- Pyodide: WASM-basiert, schwächere Sicherheit und Startlatenz von 2800 ms
- starlark-rust: sehr eingeschränkte Sprache, schnell, aber nicht Python
- Sandboxing-Services: starke Sicherheit, aber Kosten, Latenz und komplexe Einrichtung
- YOLO Python(exec/subprocess): schnell, aber ohne jegliche Sicherheit
- Mit Dateizugriffskontrolle, Ressourcenlimits und snapshotbasierter Unterbrechung/Fortsetzung bietet Monty eine
sichere Python-Umgebung für die Ausführung von AI-Code
Noch keine Kommentare.