Système de clarification multi-choix
Quand Vibe demande avant d’agir
Mistral Vibe n’est pas un outil qui exécute aveuglément vos instructions. Quand une demande est ambiguë ou que plusieurs approches sont possibles, Vibe active son système de clarification multi-choix — il vous présente des options avant de procéder.
Ce mécanisme repose sur l’outil intégré ask_user_question, qui permet à Vibe de poser des questions avec des choix multiples ou en saisie libre.
L’outil ask_user_question
Cet outil est disponible pour les agents (pas les subagents) et fonctionne de deux manières :
Choix multiples
Vibe présente une liste d’options numérotées :
Vibe : Quel framework de test utilisez-vous ?
1. Vitest
2. Jest
3. Mocha
4. Pytest
5. Autre (précisez)
Vous répondez en tapant le numéro ou le texte de votre choix. C’est rapide et sans ambiguïté.
Saisie libre
Pour les questions ouvertes, Vibe demande une réponse textuelle :
Vibe : Quel est le nom de la table de base de données à migrer ?
> users_profiles
Quand Vibe pose des questions
Le système de clarification s’active automatiquement dans plusieurs situations :
Ambiguïté dans la demande
Vous : Refactore le composant de login
Vibe : J'ai identifié deux composants liés au login :
1. src/components/LoginForm.tsx (formulaire)
2. src/components/LoginModal.tsx (modale)
Lequel souhaitez-vous refactorer ?
3. Les deux
Plusieurs approches possibles
Vous : Ajoute de la validation au formulaire
Vibe : Quelle approche de validation préférez-vous ?
1. Zod (validation de schéma, typage TypeScript)
2. Yup (validation déclarative, écosystème Formik)
3. Validation manuelle (sans librairie)
4. Valibot (léger, tree-shakable)
Décision à impact
Vous : Mets à jour les dépendances
Vibe : La mise à jour de React 18 → 19 est un changement majeur.
1. Mettre à jour uniquement les patchs (sûr)
2. Mettre à jour les mineurs (risque faible)
3. Tout mettre à jour, majeurs inclus (vérification requise)
Configurer le comportement de clarification
Dans un agent custom
Incluez ask_user_question dans les outils autorisés pour permettre les clarifications :
display_name = "Careful Developer"
safety = "neutral"
auto_approve = false
enabled_tools = [
"read_file",
"write_file",
"edit_file",
"grep",
"ask_user_question" # Active les clarifications
]
Désactiver les clarifications
Si vous voulez un agent qui ne pose jamais de questions (comportement déterministe), retirez ask_user_question de ses outils :
display_name = "Silent Worker"
safety = "neutral"
auto_approve = true
system_prompt = """
Ne posez jamais de questions. En cas d'ambiguïté :
- Choisissez l'option la plus conservatrice
- Documentez votre choix dans un commentaire
"""
enabled_tools = [
"read_file",
"write_file",
"edit_file",
"grep"
# Pas de ask_user_question
]
Guider les clarifications via le prompt
Vous pouvez influencer quand et comment l’agent pose des questions :
system_prompt = """
Règles de clarification :
- Posez une question UNIQUEMENT si le choix affecte l'architecture
- Pour les décisions cosmétiques, choisissez la convention du projet
- Proposez toujours 3 options maximum
- Incluez toujours une option "Les deux" ou "Tout" quand c'est pertinent
"""
Subagents et clarifications
Rappel important : les subagents ne peuvent pas poser de questions. C’est une contrainte de conception — un subagent doit être entièrement autonome. Si votre subagent rencontre une ambiguïté, il doit :
- Choisir l’option par défaut documentée dans son prompt
- Documenter son choix dans le résultat retourné
- Signaler l’ambiguïté à l’agent principal
# Subagent avec fallback clair
agent_type = "subagent"
system_prompt = """
En cas d'ambiguïté, appliquez ces règles par défaut :
- Framework de test : Vitest
- Style de code : conventions du projet (détectées via config)
- Format de sortie : Markdown
Documentez chaque choix par défaut dans votre rapport.
"""
Bonnes pratiques
- Utilisez les clarifications pour les décisions qui affectent l’architecture ou la sécurité
- Évitez-les pour les décisions mineures (formatage, nommage de variables temporaires)
- Limitez le nombre d’options à 3-5 pour ne pas surcharger l’utilisateur
- Proposez toujours un choix par défaut (le premier de la liste)
Points clés à retenir
- Vibe utilise
ask_user_questionpour demander des clarifications avec choix multiples ou saisie libre - Le système s’active quand la demande est ambiguë ou que plusieurs approches sont possibles
- Incluez
ask_user_questiondansenabled_toolspour activer les clarifications - Les subagents ne peuvent pas poser de questions — ils doivent être autonomes
- Guidez le comportement de clarification via le prompt système
- Moins de questions = plus de fluidité, mais plus de risque de mauvais choix