9 points par GN⁺ 2026-03-25 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Un sandbox léger pour l’exécution de code par des agents IA, offrant un démarrage 100 fois plus rapide et une efficacité mémoire 10 à 100 fois supérieure à celle des conteneurs
  • Basé sur la technologie d’isolate du moteur JavaScript V8, il démarre en quelques millisecondes et n’utilise que quelques mégaoctets, ce qui permet de créer et détruire un nouveau sandbox à chaque requête
  • Avec une approche Code Mode où l’agent écrit et exécute directement du code TypeScript au lieu d’appeler des outils, la consommation de tokens peut être réduite jusqu’à 81 %
  • Fournit aussi des bibliothèques de sécurité et d’utilité comme le filtrage HTTP, l’injection d’identifiants, et un système de fichiers virtuel afin de bâtir un écosystème de développement d’agents
  • Un changement d’infrastructure qui dépasse les limites de coût, de latence et de scalabilité des sandboxes basés sur des conteneurs, et rend possibles des services d’agents à l’échelle grand public

Contexte : les problèmes de sécurité de l’exécution de code par des agents

  • Pour qu’un agent (ou un serveur MCP) puisse exécuter du code généré à la volée par une IA, ce code doit fonctionner dans un environnement sûr
  • L’exécuter directement dans l’application avec eval() permettrait à un utilisateur malveillant d’introduire des vulnérabilités via une prompt injection
  • Il faut donc un sandbox isolé de l’application et du monde extérieur, qui n’autorise que les fonctions précises auxquelles le code doit accéder

Les limites de l’approche traditionnelle par conteneurs

  • Aujourd’hui, la majeure partie du secteur utilise des conteneurs Linux comme sandbox
  • Un conteneur demande plusieurs centaines de millisecondes pour démarrer et consomme des centaines de mégaoctets de mémoire à l’exécution
  • Pour éviter la latence, il faut les maintenir à chaud, et réutiliser un conteneur existant pour plusieurs tâches dégrade la sécurité
  • À l’échelle grand public, où chaque utilisateur final peut avoir un agent et où chaque agent écrit du code, les conteneurs ne suffisent plus

Dynamic Worker Loader : un sandbox léger

  • Une API qui permet à un Cloudflare Worker de spécifier du code à l’exécution et de créer instantanément un nouveau Worker dans son propre sandbox
  • Présentée en septembre dernier comme fonctionnalité expérimentale dans un billet sur Code Mode, elle est désormais en bêta ouverte pour tous les utilisateurs payants de Workers
  • Lors de la création du Worker, le code est défini via compatibilityDate, mainModule et modules, des stubs RPC sont transmis avec env, et globalOutbound permet de bloquer ou d’intercepter l’accès à Internet

Une vitesse 100 fois supérieure

  • Dynamic Workers s’appuie sur les isolates V8, le même mécanisme de sandboxing que la plateforme Cloudflare Workers utilise depuis 8 ans
  • Un isolate est une instance du moteur d’exécution JavaScript V8 utilisé aussi par Google Chrome
  • Avec un démarrage en quelques millisecondes et une consommation mémoire de quelques mégaoctets, c’est environ 100 fois plus rapide et 10 à 100 fois plus économe en mémoire qu’un conteneur
  • Il devient ainsi possible de créer un nouvel isolate pour chaque requête utilisateur, d’exécuter un fragment de code, puis de le détruire

Une scalabilité sans limite

  • De nombreux fournisseurs de sandboxes basés sur des conteneurs imposent des limites sur le nombre global de sandboxes simultanés et sur la vitesse de création
  • Dynamic Worker Loader étant une API reposant sur la même technologie que celle qui fait tourner la plateforme, il n’a pas ces limitations
  • Il peut traiter un million de requêtes par seconde, avec un sandbox Dynamic Worker distinct chargé et exécuté en parallèle pour chaque requête

Zéro latence

  • Les Dynamic Workers éphémères s’exécutent généralement sur la même machine et dans le même thread que le Worker qui les a créés
  • Il n’est pas nécessaire de communiquer à l’échelle mondiale pour trouver un sandbox déjà chaud : l’exécution se fait immédiatement là où la requête arrive
  • La fonctionnalité est prise en charge dans les centaines de localisations mondiales de Cloudflare

Un environnement d’exécution réservé à JavaScript

  • Par rapport aux conteneurs, la seule vraie contrainte est que l’agent doit écrire du JavaScript
  • Workers prend techniquement aussi en charge Python et WebAssembly, mais pour de petits fragments de code générés à la volée par un agent, JavaScript se charge et s’exécute bien plus vite
  • Les LLM maîtrisent tous les grands langages, et les données d’entraînement sur JavaScript sont massives
  • Par nature, JavaScript est aussi un langage conçu pour le sandboxing

Une API d’outils définie en TypeScript

  • MCP ne définit qu’un schéma plat d’appels d’outils, et OpenAPI décrit des API REST, mais dans les deux cas le schéma lui-même et le code d’appel sont verbeux
  • Pour une API exposée à JavaScript, TypeScript est présenté comme la meilleure solution unique
  • Les interfaces TypeScript permettent de décrire une API avec précision en beaucoup moins de tokens qu’une spécification OpenAPI équivalente
  • Le runtime Workers met automatiquement en place un pont Cap'n Web RPC entre le sandbox et le code hôte, ce qui permet à l’agent d’appeler l’API comme une bibliothèque locale

Filtrage HTTP et injection d’identifiants

  • L’option globalOutbound permet d’enregistrer un callback sur toutes les requêtes HTTP afin d’inspecter, réécrire, injecter des clés d’authentification ou bloquer les requêtes
  • L’injection d’identifiants (token injection) permet d’ajouter des identifiants aux requêtes sortantes lorsqu’un agent accède à un service nécessitant une authentification, sans que l’agent lui-même connaisse les secrets
  • C’est utile lorsque des API bien connues figurent déjà dans les données d’entraînement de l’agent, ou lorsqu’on exécute dans le sandbox une bibliothèque fondée sur une API REST
  • Cela dit, lorsqu’aucune exigence de compatibilité ne l’impose, une interface RPC TypeScript est supérieure au HTTP : moins de tokens consommés, un code d’appel plus concis et une réduction plus précise de la surface d’API

Une architecture de sécurité éprouvée

  • Les sandboxes basés sur des isolates ont une surface d’attaque plus complexe que les machines virtuelles matérielles, et les bugs de sécurité de V8 sont plus fréquents que ceux des hyperviseurs classiques
  • Cloudflare met en avant près de 10 ans d’expérience dans la sécurisation d’une plateforme fondée sur des isolates
  • Les correctifs de sécurité V8 sont déployés en production en quelques heures, plus vite que Chrome
  • Une deuxième couche de sandboxing maison et un cloisonnement dynamique des tenants fondé sur l’évaluation des risques sont appliqués
  • La société étend aussi le sandbox V8 à l’aide de fonctions matérielles comme MPK
  • En collaboration avec la TU Graz, elle développe de nouveaux mécanismes de défense comme des protections contre Spectre
  • Elle exploite également des systèmes automatiques de détection des schémas malveillants, avec blocage ou sandboxing supplémentaire

Bibliothèques utilitaires

Code Mode (@cloudflare/codemode)

  • Une bibliothèque qui simplifie l’exécution sur Dynamic Workers de code généré par un modèle à destination d’outils IA
  • Son cœur est DynamicWorkerExecutor(), qui corrige les erreurs de formatage courantes via la normalisation du code et peut accéder directement au fetcher globalOutbound
  • codeMcpServer({ server, executor }) encapsule un serveur MCP existant et remplace sa surface d’outils par un unique outil code()
  • openApiMcpServer({ spec, executor, request }) prend une spécification OpenAPI et un exécuteur pour construire automatiquement un serveur MCP complet doté des outils search() et execute()

Bundling (@cloudflare/worker-bundler)

  • Génère les modules prébundlés attendus par Dynamic Workers
  • En fournissant les fichiers source et un package.json, l’outil résout les dépendances npm, effectue le bundling avec esbuild, puis renvoie la carte des modules attendue par Worker Loader
  • Via createApp, il prend en charge des applications full stack en regroupant un Worker serveur, du JavaScript client et des assets statiques
  • Il inclut un service intégré pour les assets gérant le type de contenu, les ETag et le routage SPA

Manipulation de fichiers (@cloudflare/shell)

  • Fournit à l’agent un système de fichiers virtuel à l’intérieur du Dynamic Worker
  • Des méthodes typées de l’objet state permettent de lire, écrire, rechercher, remplacer, différencier, faire du glob, interroger ou mettre à jour du JSON, ainsi que d’archiver
  • Le stockage est sauvegardé dans un Workspace persistant (SQLite + R2), ce qui conserve les fichiers entre deux exécutions
  • Des opérations à grande échelle comme searchFiles, replaceInFiles et planEdits réduisent les allers-retours RPC au minimum — un seul appel au lieu de boucler fichier par fichier
  • Les écritures par lot sont transactionnelles par défaut : si une seule échoue, les écritures précédentes sont automatiquement annulées
  • Des déclarations de types TypeScript précompilées et des modèles de system prompt sont également fournis

Cas d’usage

Utiliser Code Mode

  • Au lieu d’enchaîner des appels d’outils séquentiels, l’agent écrit une seule fonction TypeScript qui enchaîne plusieurs appels d’API, l’exécute dans un Dynamic Worker, puis ne renvoie que le résultat final
  • Comme seule la sortie finale, et non les étapes intermédiaires, entre dans la fenêtre de contexte, la latence et la consommation de tokens diminuent toutes deux
  • Le serveur MCP de Cloudflare est construit de cette manière : il expose l’ensemble de l’API Cloudflare avec seulement 2 outils (search, execute) et moins de 1 000 tokens

Construire des automatisations sur mesure

  • Zite développe une plateforme d’applications avec laquelle les utilisateurs interagissent via une interface de chat
  • En arrière-plan, le LLM écrit du TypeScript pour créer des applications CRUD, connecter Stripe, Airtable et Google Calendar, et exécuter la logique métier
  • Chaque automatisation s’exécute dans son propre Dynamic Worker, avec accès uniquement aux services et bibliothèques spécifiques requis par l’endpoint concerné
  • Selon Antony Toron, CTO de Zite, il s’agit d’une « couche d’exécution immédiate, isolée et sûre » qui offre, parmi toutes les plateformes benchmarkées, les meilleures performances en vitesse et en prise en charge des bibliothèques ; la plateforme traite actuellement plusieurs millions de requêtes d’exécution par jour

Exécuter des applications générées par IA

  • La technologie peut aussi servir à bâtir des plateformes qui génèrent des applications complètes avec l’IA
  • Chaque application est créée à la demande, puis conservée en cold storage jusqu’à ce qu’elle soit à nouveau appelée
  • Le temps de démarrage très court facilite la prévisualisation des changements pendant le développement actif
  • Il est possible de bloquer ou d’intercepter les requêtes réseau du code généré afin de garantir une exécution sûre des applications générées par IA

Tarification

  • Les Workers chargés dynamiquement sont facturés 0,002 $ par chargement de Worker unique et par jour (auxquels s’ajoutent les frais classiques de temps CPU et d’invocation des Workers)
  • Dans les cas d’usage « Code Mode » générés par IA, tous les Workers sont éphémères, donc le coût est de 0,002 $ par chargement, généralement négligeable face au coût d’inférence nécessaire pour générer le code
  • Les frais de 0,002 $ sont supprimés pendant la bêta

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.