Container sind zu langsam, um KI-generierten Code zu isolieren. Nicht ein bisschen langsam, sondern um Größenordnungen langsam. Sekunden bis zum Start, Hunderte Megabyte pro Instanz, und wenn Sie tausend gleichzeitige Sandboxes brauchen, haben Sie ein Infrastrukturprojekt vor sich, das ein ganzes Quartal frisst.
Das ist die Kurzfassung dessen, worum es in diesem Artikel geht, und wenn Sie bereits zum selben Schluss gekommen sind, können Sie direkt zum Abschnitt über Dynamic Workers weiter unten springen.
Das Container-Problem
Der Standardansatz für nicht vertrauenswürdigen Code ist ein Docker-Container mit isoliertem Dateisystem und Netzwerk. Das funktioniert. Für ein internes Tool, bei dem der Agent 50 Anfragen pro Tag verarbeitet, ist das in Ordnung. Für ein kundenseitiges Produkt mit Tausenden gleichzeitiger Sessions, die Code generieren und ausführen, bricht es schnell zusammen. Allein die Startzeit ruiniert das Nutzererlebnis, und Tausende Container über Kubernetes zu orchestrieren ist ein Projekt für sich.
Wir sind im ersten Quartal bei einem Kundenprojekt darauf gestoßen, als wir einen Agenten gebaut haben, der TypeScript aus natürlichsprachlicher Eingabe generiert und sofort ausführt. Das Modell war der einfache Teil. Wo läuft der generierte Code eigentlich? „Auf demselben Server wie alles andere" ist keine Antwort, sondern ein Sicherheitsvorfall, der nur auf einen Anlass wartet.
Was Cloudflare veröffentlicht hat
Am 24. März hat Cloudflare den Dynamic Worker Loader in der offenen Beta veröffentlicht. Ich halte das für den interessantesten Infrastruktur-Release dieses Quartals. Die Idee ist einfach. Statt Containern verwenden Sie V8-Isolate. V8 treibt Chrome und Node.js an. Ein Isolat ist ein separater Ausführungskontext innerhalb desselben Prozesses, mit eigenem Heap, eigenem Stack und null Zugriff auf den Host. Startet in Millisekunden.
Die Zahlen, die Cloudflare veröffentlicht hat: 100-mal schnellerer Start als Container, 10- bis 100-mal weniger Speicher, unbegrenzt viele gleichzeitige Sandboxes (sie sprechen von Millionen Anfragen pro Sekunde), null Latenz, weil das Isolat auf derselben Maschine läuft wie der übergeordnete Worker.
Ich nehme Cloudflares Benchmarks mit Vorsicht, denn Cloudflare verkauft Cloudflare. Aber selbst bei der Hälfte dieser Zahlen ist es ein gewaltiger Sprung gegenüber Containern.
So sieht der Ablauf aus. Ihr Haupt-Worker empfängt eine Anfrage, ein KI-Modell generiert eine TypeScript-Funktion, der Worker ruft den Dynamic Worker Loader auf, der ein V8-Isolat erzeugt, den Code lädt, ausführt und das Ergebnis zurückgibt. Nach der Antwort wird das Isolat verworfen. Kein Zustand, keine Rückstände, kein Zugriff auf den übergeordneten Prozess.
Code Mode
Es gibt ein Muster, das Cloudflare Code Mode nennt und das ich wirklich interessant finde. Statt des üblichen Tool-Calling-Protokolls (Modell generiert JSON, Runtime führt aus, Modell analysiert das Ergebnis, ruft das nächste Tool auf) schreibt der Agent eine einzige TypeScript-Funktion, die den gesamten Ablauf verkettet.
Nach Cloudflares Messung sinkt der Token-Verbrauch um 81 % im Vergleich zu Tool Calls. Ich habe das nicht selbst überprüft, aber der Tendenz nach ergibt es Sinn. Weniger Roundtrips, weniger Kontextfenster für Zwischenergebnisse.
Nehmen wir an, der Agent bekommt „Erstelle in Stripe eine Rechnung für Kunde X mit den Positionen Y." Statt vier einzelner Tool Calls schreibt er eine Funktion, die den gesamten Ablauf in einem Durchgang erledigt.
Die Einschränkungen
Nur V8. Also TypeScript und JavaScript, kein Python, kein Go, keine nativen Binaries. Für langlaufende Aufgaben ist es ebenfalls nicht gedacht. Ein Isolat verarbeitet eine Anfrage und wird dann verworfen. Der Preis liegt bei 0,002 $ pro eindeutigem Worker und Tag, plus den üblichen CPU- und Aufrufgebühren (während der Beta erlassen).
Meine Einschätzung
Wenn Sie Agenten bauen, die Code generieren und ausführen, ist Isolation nicht optional. Dynamic Workers sind eine gute Antwort. Schnell, günstig, und sie skalieren. Aber nicht die einzige. Manchmal brauchen Sie weiterhin einen Container. Manchmal reicht eine Einschränkung am API-Gateway. Es hängt davon ab, was der Agent tut und welche Daten er berührt.
Die schwierigere Frage, die Cloudflare nicht beantwortet (und auch nicht sollte), ist, wie Sie die Grenze zwischen vertrauenswürdigem und nicht vertrauenswürdigem Code in einem Agentensystem ziehen. Die Sandbox ist nur die Ausführungsschicht. Was hineinkommt, was sie aufrufen darf und wie Sie ihre Ausgabe validieren. Das ist das Architekturproblem. Wenn Sie sich damit auseinandersetzen, haben wir über die Entscheidung zwischen Agent und Automatisierung geschrieben und über Multi-Model-Strategien, die genau daran rühren.
Wenn Sie einen Agenten bauen, der von Nutzern generierten Code ausführt, und über die Architektur sprechen möchten, melden Sie sich.