Code Mode dans OpenClaw
La surface à deux outils, le catalogue caché, la différence avec le Code Mode de Codex, et quand l’activer
Code Mode change ce qu’un modèle OpenClaw voit quand il travaille. Au lieu de chaque schéma d’outil activé, il voit deux outils de contrôle, exec et wait, plus les quelques outils directs dont les résultats ne peuvent pas franchir un pont limité au JSON, et il écrit un petit programme JavaScript ou TypeScript qui cherche, décrit et appelle le catalogue d’outils caché. C’est expérimental et désactivé par défaut. Voici ce que cela fait, pourquoi la documentation dit que cela aide, les garde-fous, l’interrupteur, et la précision par laquelle la documentation commence : ce n’est pas le Code Mode de Codex.
Ce qui change
- La liste d’outils visible par le modèle devient exec, wait, et les outils directs seulement, comme l’outil ordinateur ou le chargeur d’images à vision native, dont le résultat image ne peut pas survivre au pont invité.
- Chaque outil non MCP activé et éligible au catalogue, cœur, extension ou client, est caché comme outil autonome et exposé dans le programme invité comme fonction globale asynchrone ; les outils MCP restent sous un espace de noms MCP et se découvrent par tâche avec la recherche de catalogue.
- La description d’exec porte un index rapide borné des noms appelables avec des indications compactes d’entrée et de sortie, jamais les schémas complets ; une poignée expose des métadonnées bornées et un appel de description, mais jamais l’identifiant interne exact du catalogue, et les appels empruntent le même chemin d’exécution que les tours normaux, donc politique, approbations, hooks et télémétrie s’appliquent toujours.
- Wait reprend une exécution suspendue quand des appels d’outils imbriqués sont encore en attente, et seulement quand le résultat externe dit qu’il attend ; une opération shell d’arrière-plan renvoyée dans une cellule a son propre identifiant de session, qui n’est pas un identifiant d’exécution Code Mode.
Les deux sont des surfaces d’exécution JavaScript, pas des surfaces de commandes shell.
Pas le Code Mode de Codex
Les deux fonctions partagent un nom et les mêmes noms d’outils de contrôle, mais ce sont des implémentations distinctes. Le Code Mode de Codex tourne dans le harnais de codage Codex : son outil exec est un outil à grammaire libre où le modèle écrit du code JavaScript brut, éventuellement précédé d’une ligne pragma, exécuté dans l’environnement V8 en processus de Codex. Le Code Mode d’OpenClaw tourne dans l’environnement d’agent générique, s’active par des réglages globaux, par agent ou par modèle, et son exec prend une charge JSON de code et de langage, exécutée dans un worker QuickJS-WASI. Dans la version d’OpenClaw, command est un alias de code plutôt qu’une commande shell, les commandes shell reconnaissables sont rejetées avant exécution avec des indications exploitables, et le travail de shell ou de fichiers passe par les globales d’outils asynchrones depuis le code invité. La validation de la source, la compilation TypeScript et l’exécution tournent dans un pool borné de threads de travail chauds qui s’adapte aux cœurs de processeur, chaque cellule reçoit une VM isolée, les permissions d’outils, les approbations et la propriété de session restent à la passerelle, et l’annulation arrête un worker actif avant que l’appel ne se règle.
Pourquoi l’utiliser, et quand non
- Une surface de prompt plus petite : deux outils de contrôle, un index borné d’outils natifs et seulement les outils directs requis au lieu de dizaines ou centaines de schémas complets ; une meilleure orchestration, puisque boucles, jointures, transformations, logique conditionnelle et appels imbriqués parallèles tiennent dans une cellule ; moins d’allers-retours quand un contrat de sortie déclaré permet au modèle d’appeler et de transformer un résultat en un seul exec.
- Neutre vis-à-vis du fournisseur, puisque cela fonctionne pour les outils du cœur, des extensions, MCP et clients sans exécution de code native au fournisseur ; et l’échec est fermé : si Code Mode est activé mais que l’environnement QuickJS-WASI est indisponible, l’exécution échoue au lieu de retomber en silence sur une large exposition directe des outils.
- Le plus utile pour les agents avec un grand catalogue d’outils activés ou les flux qui cherchent, combinent et appellent plusieurs outils avant de répondre. Gardez l’exposition directe pour un petit catalogue ou un modèle qui n’écrit pas de courts programmes de façon fiable, et utilisez la recherche d’outils pour un catalogue compact avec des contrôles structurés de recherche, de description et d’appel au lieu de l’invité.
Swarm dans OpenClaw est la couche de déploiement construite au-dessus des scripts Code Mode, et OpenClaw et MCP explique les serveurs qui apparaissent sous l’espace de noms MCP.
L’activer
L’interrupteur Labs sous les réglages d’agents et d’outils écrit le palier auto, qui ne s’engage que pour les modèles marqués comme bons exécutants de Code Mode ; c’est la valeur globale par défaut, et les surcharges par agent et par modèle l’emportent. Code Mode ne change que la surface d’orchestration côté modèle : il ne remplace ni les outils, ni les outils d’extensions, ni les outils MCP, ni l’authentification, ni la politique d’approbation, ni le comportement des canaux, ni la sélection de modèle, et la documentation répartit le reste sur huit pages, démarrage rapide, configuration, surface d’outils, API invitée, sortie, internes, dépannage et notes de mainteneurs. Modèles et fournisseurs d’OpenClaw couvre le choix de modèle sur lequel repose le palier auto.
Sur Diali
Sur Diali, l’environnement est livré avec Code Mode à sa valeur amont par défaut, désactivé ; l’interrupteur Labs est là où un assistant y adhère, et tout ce que le programme invité appelle passe toujours par les mêmes approbations. OpenClaw hébergé sur Diali est l’assistant.
- Deux outils de contrôle au lieu de chaque schéma.
- Une surface JavaScript, jamais une surface shell.
- Échec fermé quand l’environnement manque.
Arrêtez de lire, construisez le vôtre
Configurez un agent, choisissez un canal, et faites-le travailler dans l’application que vous gardez déjà ouverte.
