Obtenir AX Code · GratuitDocumentation

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

Routage automatique

Statut : actif Portée : état actuel Dernière revue : 2026-10-10 Responsable : runtime AX Code

Le routage automatique pilote deux comportements de routage indépendants dans AX Code :

  1. Routage par mots-clés — actif par défaut. Il bascule l’agent lorsqu’un message correspond aux mots-clés ou aux motifs d’un spécialiste. Il se déclenche en moins de 1 ms et n’exige aucun appel LLM. Il est ignoré lorsque le routage est explicitement désactivé, lorsque l’utilisateur nomme explicitement un agent, ou lorsque le message est une continuation synthétique qui conserve l’agent courant.

  2. Routage de complexité — facultatif, activé par la bascule de routage automatique. Un appel LLM léger classe chaque message en complexité low, medium ou high. Les messages de complexité low sont servis automatiquement par le small_model configuré explicitement, ce qui réduit la latence des questions simples.

Par défaut, le routage automatique est désactivé — le routage de complexité est coupé. Le routage par mots-clés est distinct de cette bascule et reste actif par défaut, sauf s’il est désactivé par la configuration ou contourné par un choix d’agent explicite.

Démarrage rapide

Basculez depuis le TUI :

  • Saisissez /smart-llm dans l’invite, ou
  • Appuyez sur Ctrl+P et cherchez « routage automatique », ou
  • Cliquez l’indicateur Routage automatique activé/désactivé dans la barre d’état

La barre d’état montre l’état courant :

  • Routage automatique activé (texte violet) — le routage de complexité est actif
  • Routage automatique désactivé (texte blanc) — routage de complexité coupé (défaut)

Le réglage persiste d’une session à l’autre dans ax-code.json.

Fonctionnement

Source de vérité

Cette page résume le comportement visible par l’utilisateur. Lorsque le comportement change, vérifiez la documentation contre :

  • packages/ax-code/src/agent/router.ts pour les règles de routage par mots-clés et classifyComplexity().
  • packages/ax-code/src/session/prompt.ts pour les cas où le routage par mots-clés est ignoré et où la classification de complexité s’exécute.
  • packages/ax-code/src/server/routes/smart-llm.ts pour le comportement par défaut, l’environnement, la configuration et la persistance.
  • packages/ax-code/src/config/schema.ts pour les champs de configuration du routage et les notes de dépréciation.
  • packages/ax-code/src/cli/tui/app.tsx pour les noms de commandes slash, les alias, les libellés et les actions de la barre d’état.
  • packages/ax-code/test/agent/router.test.ts et les tests de synchro du TUI pour le comportement d’activation attendu.

Évitez de décrire le routage par mots-clés et le routage de complexité vers un modèle rapide comme une seule fonction. Ils sont volontairement séparés.

Routage par mots-clés (actif par défaut, <1 ms)

Les messages de l’utilisateur sont comparés aux motifs de mots-clés et d’expressions régulières de chaque agent spécialiste (security, architect, debug, perf, devops, test). Si une correspondance atteint une confiance ≥ 0.4, l’agent peut basculer tout de suite — aucun appel LLM n’est fait. Ce chemin est indépendant de la bascule de routage automatique, mais il est ignoré lorsque le routage est désactivé, lorsque l’utilisateur nomme explicitement un agent, ou lorsque le tour courant conserve un agent existant pour une continuation synthétique.

Routage de complexité (routage automatique seulement, ~200-500 ms)

Lorsque le routage automatique est activé, chaque message est envoyé à un modèle rapide et peu coûteux via classifyComplexity(). Cet appel LLM renvoie une estimation de complexité (low / medium / high) :

  • les messages de complexité low utilisent automatiquement le small_model configuré explicitement
  • les messages medium et high utilisent le modèle par défaut, comme d’habitude
  • ignoré si small_model est absent ou indisponible
  • délai de 1.5 seconde — repli silencieux si le LLM est lent ou indisponible
  • toutes les erreurs sont capturées en silence — jamais de blocage pour l’utilisateur

Le routage de complexité est indépendant du routage d’agent. Il ne classe pas quel agent spécialiste utiliser — cela relève entièrement du routage par mots-clés.

À quoi sert le routage automatique

Scénario Sans routage automatique Avec routage automatique
« que fait cette variable ? » Modèle complet utilisé complexité low → modèle rapide
« liste toutes les exportations de ce fichier » Modèle complet utilisé complexité low → modèle rapide
« cherche des vulnérabilités » Le routage par mots-clés envoie vers security Identique — le routage par mots-clés se déclenche toujours
« refactorise le module d’auth sur 8 fichiers » Modèle par défaut complexité high → modèle par défaut
« cette fonction est lente » Aucune correspondance de mot-clé, aucun routage low/medium → palier de modèle correct

Le routage par mots-clés choisit l’agent spécialiste pour les mots-clés techniques. Le routage de complexité choisit le palier de modèle adapté selon le raisonnement que la réponse exige.

Limites et points d'attention

Latence

Le routage de complexité ajoute 200-500 ms aux messages qui déclenchent l’appel de classification. Le routage par mots-clés (toujours actif) n’est pas touché — il répond en <1 ms dans tous les cas.

Exige un petit modèle

Le routage de complexité exige une configuration explicite de small_model. AX Code ne déduit pas un modèle d’appoint à partir des noms de modèles et ne déplace pas une épingle indisponible vers un autre fournisseur. Sans un appoint utilisable, la classification est ignorée et le modèle principal choisi est conservé. Voir Sélection et reprise de modèle.

Usage de jetons

Chaque appel de classification consomme environ 100-200 jetons d’entrée et 10-20 jetons de sortie — négligeable face à l’appel LLM principal qui suit.

Ne remplace pas un choix explicite

Le routage automatique améliore le choix automatique du palier de modèle, mais il ne peut pas envoyer vers des agents spécialistes d’après le langage naturel seul. Pour les tâches critiques où le bon spécialiste compte, choisir l’agent explicitement via le sélecteur d’agents ou la mention @agent est plus fiable.

Configuration

Basculer depuis le TUI

Utilisez /smart-llm ou la palette de commandes (Ctrl+P → « Activer ou désactiver le routage automatique »). Le changement prend effet tout de suite et est enregistré dans le ax-code.json de votre projet.

Fichier de configuration

{
  "routing": {
    "llm": true
  }
}

Variable d'environnement

AX_CODE_SMART_LLM=true ax-code

La variable d’environnement l’emporte sur le réglage du fichier de configuration.

Routage automatique et autres réglages

Réglage Interaction
Mode autonome Le routage automatique fonctionne de façon indépendante. Le routage d’agent et la classification de complexité ont lieu avant les contrôles de permission.
Mode bac à sable Aucune interaction. Le routage automatique ne change que l’agent et le palier de modèle choisis, pas ce que l’agent peut faire.
Sélection de modèle Les messages de complexité low utilisent le small_model configuré explicitement lorsque le routage automatique est activé et qu’aucun modèle n’est épinglé explicitement.
Modes d’exécution Le placement hybride (modes.default: "hybrid") est distinct : il choisit local ou cloud. Voir Modes d’exécution.

Quand activer le routage automatique

Activez si :

  • vous voulez que les questions simples partent automatiquement vers un modèle moins cher et plus rapide
  • vous voulez réduire le coût en jetons des échanges de faible complexité
  • vous travaillez avec un fournisseur qui a un petit modèle, ou un modèle flash, fiable

Laissez désactivé si :

  • vous préférez zéro latence ajoutée sur chaque message
  • vous travaillez hors ligne ou avec un réseau peu fiable
  • vous voulez réduire au minimum l’usage de jetons
  • vous épinglez toujours un modèle explicitement