Router les skills avec un modèle de décision
Ce guide montre comment faire choisir par un modèle de décision, avant chaque tour, le skill qui s'applique à votre question, pour que le modèle de chat reçoive la même ligne [skill: …] que si vous aviez tapé $<skill>. Il suppose que vous avez un fichier d'agent décideur (voir Interroger un modèle de décision) et un agent avec des skills.
Étapes
-
Ajoutez un bloc
skillRoutingà l'agent qui vous répond :skillRouting: decider: agent.decider.yaml # relatif à ce fichier minConfidence: 0.6 timeout: 2sLe fichier du décideur doit seulement situer le modèle (
provider,model,baseUrl,fallback) ; ses questionsdecision:ne servent pas ici. -
Démarrez l'agent. La bannière se termine par la colonne du routage :
… | routing: llamacpp/LiquidAI/d1-3B-GGUF:Q4_K_M ≥ 0.60 -
Posez une question. Avant le tour, une notice
🧭dit ce que le décideur a choisi :> what time is it in Tokyo? 🧭 $what-time-is-it (0.97)> explain in one sentence what a goroutine is 🧭 no skill (none 0.96)Un skill sous
minConfidenceest affiché mais pas ajouté :🧭 no skill (lsp-navigation 0.42 < 0.60). Une question qui nomme déjà un$skilln'est pas routée.
Variantes
- Moins d'abstentions : baissez
minConfidence. Dans la mesure du 2026-10-22 (voir Les modèles de décision), aucun seuil n'a fait ajouter un mauvais skill ; un seuil plus haut l'a seulement fait s'abstenir plus souvent. - Un décideur lent à charger : le premier appel charge le modèle (~13 s) et dépasse
timeout: ce tour affiche🧭 skill routing skipped: … context deadline exceededet continue sans routage. Envoyez d'abord une question au décideur (mm -config agent.decider.yaml -p "hi"), ou augmenteztimeout. - Dans un éditeur : la notice va dans le journal de l'agent (
[acp] session <id>: 🧭 …), pas dans la conversation.
Le vérifier sur votre catalogue
Passez l'eval de routage par le décideur avant de vous y fier :
MM_EVAL=1 MM_DECIDER=demos/decision-skills/agent.decider.yaml go test ./internal/eval -run Decider -v
Voir Mesurer si le modèle choisit le bon skill.
Voir aussi
- Chaque clé de
skillRoutinget chaque notice : Référence de la configuration - Pourquoi la ligne est ajoutée au lieu de charger le skill : Les modèles de décision
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|