bots-garden/mini-mepublic Fork
⑂ v1.0.0
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. 5266466 · on v1.0.0 · k33g · 19h ago
route-skills-with-a-decision-model.md · 57 lines · 2.7 KBmarkdown
Blame HistoryOpen raw

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

  1. Ajoutez un bloc skillRouting à l'agent qui vous répond :

    skillRouting:
      decider: agent.decider.yaml   # relatif à ce fichier
      minConfidence: 0.6
      timeout: 2s
    

    Le fichier du décideur doit seulement situer le modèle (provider, model, baseUrl, fallback) ; ses questions decision: ne servent pas ici.

  2. 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
    
  3. 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 minConfidence est affiché mais pas ajouté : 🧭 no skill (lsp-navigation 0.42 < 0.60). Une question qui nomme déjà un $skill n'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 exceeded et continue sans routage. Envoyez d'abord une question au décideur (mm -config agent.decider.yaml -p "hi"), ou augmentez timeout.
  • 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

 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
# 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](ask-a-decision-model.md)) et un agent avec des skills.

## Étapes

1. Ajoutez un bloc `skillRouting` à l'agent qui vous répond :

   ```yaml
   skillRouting:
     decider: agent.decider.yaml   # relatif à ce fichier
     minConfidence: 0.6
     timeout: 2s
   ```

   Le fichier du décideur doit seulement situer le modèle (`provider`, `model`, `baseUrl`, `fallback`) ; ses questions `decision:` ne servent pas ici.

2. 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
   ```

3. 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 `minConfidence` est affiché mais pas ajouté : `🧭 no skill (lsp-navigation 0.42 < 0.60)`. Une question qui nomme déjà un `$skill` n'est pas routée.

## Variantes

- **Moins d'abstentions** : baissez `minConfidence`. Dans la mesure du 2026-10-22 (voir [Les modèles de décision](../explanation/decision-models.md#ce-qui-a-été-mesuré)), 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 exceeded` et continue sans routage. Envoyez d'abord une question au décideur (`mm -config agent.decider.yaml -p "hi"`), ou augmentez `timeout`.
- **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 :

```bash
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](measure-skill-routing.md#mesurer-un-décideur).

## Voir aussi

- Chaque clé de `skillRouting` et chaque notice : [Référence de la configuration](../reference/configuration.md#skillrouting)
- Pourquoi la ligne est ajoutée au lieu de charger le skill : [Les modèles de décision](../explanation/decision-models.md)