Cette page est traduite de la documentation anglaise. Les commandes, identifiants et exemples sont inchangés. Runtime 7.24.4 · SDK 2.6.7. Source anglaise
Modes d'exécution (local, cloud, hybride, conseil, arène)
Statut : actif
Portée : état actuel
Dernière revue : 2026-09-12
Responsable : runtime AX Code
AX Code peut placer le travail sur l’inférence locale, chez des fournisseurs hébergés ou CLI, ou sur les deux (hybride), et peut répartir un travail à fort enjeu vers plusieurs fournisseurs connectés (revue en conseil et arène du meilleur parmi N). Cette page documente le comportement livré de ces modes.
Source de vérité
Lorsque le comportement change, vérifiez-le dans :
packages/ax-code/src/mode/— politique pure, hybride, agrégation du conseil, classement de l’arène, débat, budget, mémoire, politique des worktrees, score de l’arène d’implémentationpackages/ax-code/src/tool/council.ts— outil de conseil multi-fournisseurspackages/ax-code/src/tool/arena.tsetarena-implement.ts— arène de plan et d’implémentationpackages/ax-code/src/session/prompt/prompt-routing.ts— placement hybride lorsquemodes.defaultvauthybridpackages/ax-code/src/config/schema-impl.ts— schéma de configurationmodespackages/ax-code/src/command/template/{council,arena}.txt—/councilet/arenafigurent dans le menu slash par défaut
Sélecteur de mode de travail (Agent | Conseil | Arène)
Le TUI et Desktop exposent un contrôle de mode de travail pour le routage multi-modèles. La valeur par défaut est Agent.
| Sélection dans l’interface | L’envoi en texte libre devient |
|---|---|
| Agent (défaut) | Invite normale d’un seul agent |
| Conseil | Revue multi-fournisseurs /council {your message} |
| Arène | Meilleur parmi N multi-modèles /arena {your message} |
- Habillage par défaut du TUI : le pied de page n’affiche pas de pastille Agent. Le mode d’exécution et le bac à sable restent.
/work-mode(palette Choisir le mode de travail) ouvre un sélecteur explicite : Agent, Conseil et Arène, avec le coût et la sémantique sur chaque ligne. Les lignes d’ensemble indisponibles sont désactivées, avec la raison. - Habillage d’ensemble armé : après le choix de Conseil ou d’Arène, une pastille apparaît (
Council · 2, ouArena (off)en contour si le mode devient ensuite indisponible). Cliquez sur la pastille pour revenir à Agent. Les nouvelles conversations reviennent à Agent. - Disponibilité : un mode est disponible s’il est activé dans la configuration, si au moins deux fournisseurs connectés ont un modèle sélectionnable et si le plafond de membres configuré n’est pas 1. Les pastilles et les lignes du sélecteur se mettent à jour en direct lorsque les fournisseurs se connectent ou se déconnectent.
- Indication avant envoi (TUI) : une indication d’une ligne au-dessus de l’invite apparaît lorsque le conseil ou l’arène est bloqué ou encore en cours de vérification, et à la première utilisation d’un mode disponible (par exemple
Council mode · up to 2 reviewers · advisory · approval on first use). Après un envoi réussi dans ce mode, la pastille reste le statut et l’indication est masquée. Un envoi alors que le mode choisi est indisponible est bloqué, avec la raison : le brouillon est conservé et l’invite n’est jamais rétrogradée en silence vers une exécution à modèle unique. - Desktop : pastille de la barre du compositeur (à côté de Manuel/Autonome).
- Les commandes explicites
/councilet/arenane sont jamais réécrites et restent les points d’entrée ponctuels. - Les agents spécialistes (architecte, sécurité, …) restent dans le sélecteur d’agents distinct.
Modes de placement en un coup d'œil
| Mode | Rôle | Modifie l’espace de travail ? | Défaut |
|---|---|---|---|
| local | Préférer AX Engine (ou le fournisseur local configuré) | Oui (agent unique) | Quand vous épinglez le local / l’hybride place en local |
| cloud | Préférer les fournisseurs frontière hébergés ou CLI | Oui (agent unique) | Quand le local est indisponible |
| hybrid | La politique choisit local ou cloud selon disponibilité, complexité et confidentialité | Oui (chemin unique) | Définir modes.default: "hybrid" |
| council | Répartir une revue ou une conception structurée ; classer consensus / majorité / minorité / singleton | Non (consultatif) | Outil + /council ou mode de travail = Conseil |
| arena | Comparaison de plans multi-modèles ou implémentation en worktree du meilleur parmi N | Plan : non. Implémentation : seulement dans des worktrees | Activation explicite (modes.arena.enabled) + mode de travail = Arène |
Le routage par mots-clés vers les spécialistes et l’étagement de complexité (voir Routage automatique) sont orthogonaux au placement hybride et aux modes d’ensemble.
L’effort du modèle / le niveau de réflexion (Rapide, Équilibré, Profond, Max) est lui aussi orthogonal : c’est un budget de raisonnement par modèle, pas un mode de travail. Voir Effort du modèle.
Configuration
Dans ax-code.json :
{
"modes": {
"default": "hybrid",
"hybrid": {
"preferLocalWhenAvailable": true,
"escalateOnHighComplexity": true,
"localProviderID": "ax-engine"
},
"council": {
"enabled": true,
"maxMembers": 3,
"timeoutMs": 180000,
"debateRounds": 0
},
"arena": {
"enabled": true,
"maxContestants": 3,
"strategy": "verify_first"
},
"budget": {
"maxEstimatedUsd": 0.5,
"estimatedUsdPerMember": 0.05
}
}
}
| Champ | Signification |
|---|---|
modes.default |
local | cloud | hybrid | arena | council. Non défini : hybride lorsque le local correspond aux signaux de la politique, sinon cloud pour les défauts à chemin unique. |
modes.hybrid.* |
Préférence locale, escalade vers le cloud si la complexité est élevée, identifiant du fournisseur local |
modes.council.* |
Activation, plafond de membres, délai, échelle de délai des modèles de raisonnement, dérogations de délai par membre, tours de débat, président en option / répartition adaptative (les deux désactivés par défaut) |
modes.arena.enabled |
Doit valoir true pour l’outil arena (désactivé par défaut). Les modifications en cours de session sont prises en compte au prochain appel d’outil (Config.getFresh). Ou passez enableIfDisabled: true à l’outil arène. |
modes.arena.strategy |
verify_first (recommandé pour l’implémentation), diversity ou hybrid_score |
modes.arena.reasoningTimeoutScale |
Multiplicateur de délai pour les candidats dont le modèle déclare une capacité de raisonnement (repli sur modes.council.reasoningTimeoutScale, puis 3) |
modes.arena.memberTimeoutMs |
Dérogations de délai absolu par candidat, indexées par "providerID" ou "providerID/modelID" (repli sur modes.council.memberTimeoutMs) |
modes.arena.judge |
Juge à grille en aveugle pour le mode plan (défaut : true) |
modes.ensembleLedger |
Journal d’appels JSONL local pour les générations d’ensemble (défaut : true ; hachages SHA-256 des invites seulement, pas de corps, pas de sortie réseau) |
modes.budget.* |
Plafond en échec fermé sur l’USD estimé de la répartition d’ensemble |
Placement hybride
Lorsque modes.default vaut hybrid et que l’utilisateur ou l’agent n’a pas épinglé de modèle :
- Si le fournisseur local (défaut
ax-engine) a un modèle sélectionnable → préférer local pour une complexité faible ou moyenne. - Si la complexité est élevée et que
escalateOnHighComplexityest vrai → cloud. - Si la confidentialité exige le local et que le local est disponible → local.
- Si le local est indisponible → cloud.
La complexité utilise toujours le chemin de modèle petit et rapide existant pour les messages low lorsque le routage de complexité du routage automatique est activé (Routage automatique). L’hybride ne remplace pas le routage par mots-clés vers les spécialistes.
Modèles locaux et guide de mémoire : Sélection de modèles AX Engine. Liste des fournisseurs : Fournisseurs pris en charge.
Conseil (mode consensus)
Outil : council
Commande slash : /council <question>
- Sélectionne des fournisseurs connectés variés (diversité des familles — sous une passerelle multi-modèles non reconnue, la famille retombe sur l’identifiant du modèle ; biais souple issu de la mémoire des résultats).
- Répartit en parallèle une invite de revue ou de conception structurée.
- Agrège les problèmes en niveaux consensus (unanime parmi les membres réussis au quorum — au moins
max(2, ⌈2/3 × attempted⌉)succès), majorité stricte (plus de la moitié des membres tentés), minorité (au moins deux) et singleton. Les constats indiquent le soutien par rapport aux membres tentés (2/6), et les rapports à faible couverture précisent que les libellés de consensus exigent le quorum. - Tours de débat facultatifs : synthèse anonyme (Chatham House) partagée entre les tours ; aucune attribution de marque. Le débat est plafonné à trois tours et s’arrête plus tôt en cas de convergence.
- Renvoie un rapport Markdown consultatif. Ne modifie pas les fichiers.
Il faut au moins deux membres résolus pour s’exécuter : en deçà, un précontrôle « membres insuffisants » interrompt le flux avant toute invite d’approbation ou appel de modèle (les paires de modèles explicites sur la même passerelle comptent pour deux). Les niveaux de consensus significatifs exigent encore au moins deux membres réussis ; sinon le rapport est marqué incomplet.
Admission des preuves. Les membres ne reçoivent que la question et le contexte fournis. Ils n’héritent pas de la session appelante et ne lisent pas les fichiers aux chemins cités dans le dossier. Incluez les exigences, le diff pertinent, les extraits originaux requis et les preuves de vérification nécessaires au périmètre de revue annoncé.
Le context facultatif est accepté tel quel jusqu’à 24 000 unités de code UTF-16. Un contexte plus grand renvoie context_rejected avant l’inférence des membres ; AX Code ne le raccourcit jamais en silence. Découpez la revue en demandes explicitement délimitées, ou retirez le contexte facultatif tout en conservant les preuves requises.
Avant chaque tour, AX Code contrôle l’invite entière contre un plafond local de 128 000 octets et les limites d’entrée ou de contexte connues de chaque membre résolu, en réservant la sortie demandée, l’instruction de repli et 2 048 jetons pour le schéma et le cadrage. La taille d’entrée utilise une estimation volontairement prudente en octets UTF-8. Ce contrôle peut rejeter des invites qui tiendraient ; ce n’est ni un décompte exact de l’analyseur de jetons ni une garantie sur la sérialisation du fournisseur. Les limites de modèle inconnues sont signalées et restent soumises aux plafonds locaux. Si un tour de débat ne tient pas, le résultat est incomplet et conserve le rapport du dernier tour achevé.
contextAdmission enregistre la barrière locale de longueur de contexte, la taille fournie et un condensé du contenu ; promptBudget vérifie séparément la requête complète. Les deux doivent réussir avant l’inférence. Ces champs sont indépendants de successfulMembers et n’établissent ni la complétude sémantique, ni la fraîcheur des sources, ni une qualité de revue garantie.
Délais. Chaque membre s’exécute sous modes.council.timeoutMs (défaut 180000 ms) ; les modèles qui déclarent une capacité de raisonnement obtiennent modes.council.reasoningTimeoutScale fois ce budget (défaut 3, donc 540000 ms). Pour accorder plus de temps à un membre connu comme lent sans allonger l’attente de tous les autres, définissez une dérogation absolue modes.council.memberTimeoutMs indexée par "providerID" ou "providerID/modelID" — la clé de modèle exacte l’emporte sur la clé à l’échelle du fournisseur, et l’une ou l’autre l’emporte sur le calcul de base et d’échelle :
{
"modes": {
"council": {
"memberTimeoutMs": { "deepseek/deepseek-v4-pro": 900000 }
}
}
}
ax-code.json est un fichier de configuration protégé : les agents doivent demander à l’utilisateur de le modifier.
Voies facultatives (désactivées par défaut). modes.council.chairman: true ajoute, après l’agrégation (et les éventuels tours de débat), un appel de synthèse d’un président en aveugle : le président ne reçoit que des constats anonymisés (niveaux et comptes de soutien, jamais les identités des membres) et renvoie un verdict, des actions recommandées et des notes de dissidence. Le classement déterministe reste la sortie principale ; l’échec du président est signalé et n’est pas fatal. modes.council.adaptive: true démarre la répartition avec deux membres et en ajoute un à la fois jusqu’à maxMembers tant que la couverture du tour 1 est sous le quorum ou que la dissidence est importante ; les déclencheurs d’expansion sont des constantes réglables du harnais.
Quand l'utiliser
- Compromis d’architecture, de sécurité ou de conception
- Revue de code à fort enjeu, où l’accord multi-modèles renforce la confiance
- L’utilisateur demande une revue multi-modèles ou un « second avis »
Flux de l'agent (important)
Appelez council tôt, dès que les preuves pertinentes sont disponibles, avec un dossier context explicitement délimité.
Évitez les explorations larges sans lien avec cette revue ; rassemblez les preuves originales requises avant de demander aux membres des constats sur le code.
Si l’utilisateur a demandé le conseil ou l’arène, task_parallel est rejeté tant que l’outil d’ensemble n’est pas l’action principale prévue.
Quand ne pas l'utiliser
- Questions triviales (latence ou coût)
- Code sensible qui ne doit pas quitter l’inférence locale
- Un seul fournisseur connecté
Arène (meilleur parmi N)
Outil : arena
Commande slash : /arena <task>
Exige : modes.arena.enabled: true et au moins 2 modèles sélectionnables distincts chez des fournisseurs connectés (y compris une passerelle partagée)
Admission des preuves (partagée avec le conseil). Le context facultatif est accepté tel quel jusqu’à 24 000 unités de code UTF-16. Un contexte plus grand renvoie context_rejected avant toute invite d’approbation, création de worktree ou appel de modèle : AX Code ne le raccourcit jamais en silence. Découpez la tâche en demandes explicitement délimitées, ou réduisez le contexte facultatif tout en conservant les preuves requises. L’invite d’approbation ne se déclenche qu’après la réussite de chaque précontrôle sans effet (désactivé, admission du contexte, précontrôle git d’implémentation, budget, résolution des membres).
mode: "plan" (par défaut)
- Chaque candidat propose une approche, des étapes, des risques et un score de risque auto-évalué et calibré (aucune écriture dans l’espace de travail).
- Avec au moins 2 propositions réussies, un appel de juge à grille en aveugle (le premier membre résolu ; identités retirées, ordre aléatoire) note chaque proposition sur la couverture des exigences, la faisabilité, le plan de vérification et les preuves de risque (0–10 chacun, égalités permises). Le total de la grille (0–40) est le signal de classement principal ; le risque auto-évalué reste seulement affiché. L’échec du juge ou
modes.arena.judge: falserevient au score auto-évalué, avec une note de divulgation. - Classement d’abord par niveau de vérification, puis par score du juge ou du risque, puis par diversité d’empreinte de correctif (jamais la seule popularité). Les classements de plan sont consultatifs et ne constituent pas une vérification d’exécution.
- Consultatif seulement.
mode: "implement"
- Exige un worktree git principal avec au moins un commit et aucun changement non validé, enregistre son commit de base exact et crée un worktree git par candidat à partir de ce commit.
- Exécute un agent d’implémentation dans chaque worktree.
- Fige les changements suivis et non suivis de chaque candidat dans un commit de branche durable, y compris les commits créés par l’agent lui-même.
- Exécute les commandes de vérification de projet détectées (vérification de types, tests, lint) seulement après la capture d’un correctif non vide.
- Classe en vérification d’abord par défaut : seuls les correctifs terminés, non vides et validés par la vérification peuvent gagner ; parmi ceux qui passent, préférer un risque plus faible et des correctifs divers.
- Ne fusionne pas automatiquement. Le rapport indique les chemins de worktree, les branches et les plages de commits, pour inspection, fusion ou cherry-pick.
L’arène d’implémentation exige un projet git.
Règle de classement (alignée sur la recherche)
Pour les candidats de code : la vérification d’abord, la diversité ensuite, la popularité jamais seule.
Un vote majoritaire naïf sur des correctifs semblables et faux est un anti-patron (piège de la popularité).
Commandes slash
| Commande | Rôle |
|---|---|
/council … |
Piloter une revue consultative multi-fournisseurs |
/arena … |
Piloter le meilleur parmi N en plan ou en implémentation |
Sûreté et coût
- Le bac à sable / autonome s’applique encore au travail d’un seul agent (Bac à sable, Autonome).
- Le conseil et l’arène de plan n’écrivent pas de fichiers.
- Les rédacteurs de l’arène d’implémentation sont isolés dans des worktrees ; un worktree principal sale est rejeté, afin qu’une entrée non validée ne puisse pas être omise en silence.
- La répartition d’ensemble multiplie la sortie réseau et le coût des fournisseurs ; utilisez
modes.budgetet gardezmaxMembers/maxContestantspetits. Les estimations de budget tarifient le pire cas : conseil,2 × (debateRounds + 1)appels par membre (repli de schéma + nouvel essai) ; arène de plan, 2 par candidat plus un appel de juge forfaitaire ; arène d’implémentation, une estimation documentée de 12 appels par trajectoire. - Un journal local des appels d’ensemble (
ensemble-calls.jsonldans le répertoire d’état global, plafond de 2 MB) enregistre les résultats par génération avec des hachages SHA-256 des invites — jamais les corps d’invite, jamais les identifiants, aucune sortie réseau. Désactivez-le avecmodes.ensembleLedger: false. - L’accord multi-modèles est un indice, pas une preuve : exécutez les tests avant de livrer.
Voir aussi
- Routage automatique — mots-clés de spécialistes et niveau de complexité
- Fournisseurs pris en charge — cloud, CLI, AX Engine
- Sélection de modèles AX Engine — choix du modèle local