Le System Prompt Optimal pour Magistral
Mis à jour le 29 juillet 2026
⚠️ Modèle déprécié (mise à jour du 28 juillet 2026) : les modèles Magistral sont dépréciés par Mistral, avec des retraits échelonnés jusqu’à mi-2026. Le raisonnement est désormais intégré aux modèles généralistes (Mistral Small 4, Medium 3.5). Les concepts de ce cours restent instructifs, mais ne construisez plus de nouveau projet sur Magistral — consultez le cours « Mistral en 2026 » pour la migration.
L’importance du system prompt pour les modèles raisonneurs
Avec les modèles Magistral, le system prompt joue un rôle encore plus crucial que d’habitude. Il ne se contente pas de définir le ton ou le rôle du modèle : il structure le processus de raisonnement lui-même. Puisque le modèle va de toute façon réfléchir, autant décider dans quelle direction. Un system prompt bien conçu guide cette réflexion et améliore significativement la qualité des réponses.
La structure recommandée en 3 parties
Mistral AI recommande de structurer le system prompt pour Magistral en trois blocs distincts, correspondant aux trois moments du travail du modèle.
Le premier bloc définit comment le modèle doit penser et comment il doit répondre. Vous y précisez la méthodologie de raisonnement attendue, celle qu’un expert du domaine appliquerait naturellement.
system_prompt_part1 = """Vous êtes un expert en analyse de données.
Quand vous recevez un problème :
- Identifiez d'abord les variables clés et leurs relations
- Formulez des hypothèses explicites avant de les tester
- Considérez les cas limites et les exceptions
- Validez chaque étape de votre raisonnement avant de passer à la suivante
"""
Le deuxième bloc indique au modèle qu’il dispose d’un espace de brouillon. Il l’autorise explicitement à explorer, tester et réviser ses idées — une permission qui compte, car sans elle le modèle a tendance à traiter ses traces comme une réponse et à s’y montrer prématurément affirmatif.
system_prompt_part2 = """Utilisez votre espace de réflexion pour :
- Explorer différentes approches au problème
- Vérifier vos calculs intermédiaires
- Identifier les erreurs potentielles dans votre raisonnement
- Comparer les solutions candidates avant de choisir la meilleure
"""
Le troisième bloc traite de la sortie visible. Il exige que la réponse finale soit auto-contenue : lisible et compréhensible indépendamment des traces de réflexion, puisque l’utilisateur ne les verra le plus souvent pas.
system_prompt_part3 = """Votre réponse finale doit :
- Être complète et auto-contenue (compréhensible sans lire le raisonnement)
- Présenter les résultats de manière structurée
- Inclure les étapes clés de la démonstration si pertinent
- Mentionner les limites ou hypothèses de votre analyse
"""
Exemple complet
Assemblés, ces trois blocs donnent un prompt d’agent de debugging qui ne laisse rien au hasard : la méthode impose deux hypothèses minimum avant conclusion, l’espace de réflexion sert à tracer l’exécution, et la réponse suit un plan fixe en quatre points.
from mistralai import Mistral
client = Mistral(api_key="VOTRE_CLE_API")
system_prompt = """Vous êtes un expert senior en debugging Python avec 15 ans d'expérience.
MÉTHODE DE RÉFLEXION :
- Lisez d'abord le code entièrement avant de formuler un diagnostic
- Identifiez le flux d'exécution et les points de défaillance potentiels
- Formulez au moins 2 hypothèses pour chaque bug avant de conclure
- Vérifiez que votre solution ne crée pas de nouveaux problèmes
ESPACE DE RÉFLEXION :
Utilisez votre réflexion interne pour tracer l'exécution du code mentalement, identifier les états variables à chaque étape, et tester vos hypothèses systématiquement.
RÉPONSE FINALE :
Fournissez une réponse structurée avec :
1. Le diagnostic précis du bug
2. L'explication de la cause racine
3. Le code corrigé
4. Un test pour vérifier la correction"""
response = client.chat.complete(
model="magistral-medium-latest",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Mon code plante avec RecursionError. Voici la fonction : def fibonacci(n): return fibonacci(n-1) + fibonacci(n-2)"}
]
)
Sur cette fonction fibonacci sans cas de base, la contrainte des deux hypothèses évite le diagnostic réflexe « augmentez la limite de récursion » et pousse le modèle jusqu’à la cause réelle.
System prompts par domaine
Le même squelette se décline. Pour les mathématiques, la méthode porte sur la rigueur des hypothèses et le choix du type de démonstration :
math_prompt = """Vous êtes un mathématicien rigoureux.
RAISONNEMENT :
- Définissez clairement les hypothèses avant chaque démonstration
- Procédez par étapes logiques, chacune justifiée
- Identifiez quand un raisonnement par l'absurde ou par récurrence est plus adapté
RÉFLEXION :
Explorez différentes approches de démonstration. Vérifiez chaque étape. Identifiez les cas particuliers.
RÉPONSE :
Présentez la démonstration de manière formelle avec les hypothèses, les étapes et la conclusion clairement séparées."""
Pour l’analyse stratégique, elle porte sur les parties prenantes et la quantification, et la réponse attendue devient une recommandation assortie d’un plan d’action :
strategy_prompt = """Vous êtes un consultant en stratégie.
RAISONNEMENT :
- Analysez les forces, faiblesses, opportunités et menaces
- Quantifiez quand possible (estimations, ordres de grandeur)
- Considérez les perspectives de chaque partie prenante
- Identifiez les risques et les plans de mitigation
RÉFLEXION :
Évaluez chaque option selon les critères de faisabilité, impact et risque. Comparez systématiquement.
RÉPONSE :
Présentez une recommandation claire avec les pour et contre de chaque option, et un plan d'action concret."""
Erreurs fréquentes à éviter
Deux défauts reviennent constamment. Le premier est le prompt trop vague : « Vous êtes un assistant utile » ne dit rien de la méthode, et le modèle raisonne alors selon ses habitudes plutôt que selon les vôtres.
# MAUVAIS — trop générique, ne guide pas la réflexion
bad_prompt = "Vous êtes un assistant utile."
# BON — guide spécifiquement le processus de raisonnement
good_prompt = """Vous êtes un assistant spécialisé en logique.
Décomposez chaque problème en prémisses et conclusions.
Vérifiez la validité de chaque inférence.
Signalez les sophismes ou erreurs logiques."""
Le second est le prompt contradictoire, et il naît presque toujours d’une confusion entre les deux espaces. Demander à la fois concision et détail exhaustif place le modèle devant une injonction impossible ; la sortie est correcte dès lors qu’on assigne le détail à la réflexion et la concision à la réponse.
# MAUVAIS — demande d'être concis ET détaillé
bad_prompt = "Soyez très concis. Détaillez chaque étape en profondeur."
# BON — cohérent et clair
good_prompt = """Soyez concis dans votre réponse finale.
Utilisez votre réflexion pour explorer les détails.
La réponse ne doit contenir que les conclusions essentielles."""
Points clés à retenir
- Le system prompt Magistral se structure en 3 parties : instructions de réflexion, bloc thinking, réponse finale
- La partie réflexion guide le processus de raisonnement du modèle
- La réponse finale doit être auto-contenue (lisible sans le raisonnement)
- Adaptez le system prompt à votre domaine (maths, code, stratégie)
- Évitez les prompts trop vagues ou contradictoires
- Un bon system prompt améliore nettement la qualité des réponses de Magistral