Les Rôles : System, User, Assistant
Le système de rôles dans Grok
Les conversations avec Grok s’organisent autour de trois rôles distincts qui structurent les échanges. Chaque message envoyé au modèle porte un rôle qui indique sa fonction dans la conversation. Comprendre ces rôles est essentiel pour formuler des prompts efficaces et obtenir des réponses cohérentes.
L’API de Grok utilise un format de messages où chaque entrée est un objet contenant un champ role et un champ content. Cette architecture vous permet de contrôler finement le comportement du modèle.
Le rôle system (ou developer)
Le message système est le premier message de la conversation. Il définit le comportement global du modèle : sa personnalité, ses contraintes, son domaine d’expertise, et les règles qu’il doit suivre tout au long de l’échange.
{
"role": "system",
"content": "Tu es un expert en cybersécurité. Tu réponds toujours en français, de manière concise. Tu cites tes sources quand c'est pertinent. Tu refuses de donner des instructions pour réaliser des attaques."
}
Grok accepte aussi le rôle developer comme alias de system. Les deux sont interchangeables et produisent le même effet.
Ce qu’il faut inclure dans le message système
- L’identité : qui est le modèle dans cette conversation (expert, assistant, traducteur…)
- Les contraintes : langue, format de réponse, longueur, ton
- Les interdictions : ce que le modèle ne doit pas faire
- Le contexte métier : le domaine, les termes techniques à utiliser
Bonnes pratiques
- Placez toujours le message système en premier
- Soyez exhaustif dès le départ : il est plus efficace de tout préciser dans le system qu’en cours de conversation
- Utilisez des sections claires (avec des tirets ou des titres) pour organiser vos instructions
Le rôle user
Les messages user représentent les interventions de l’utilisateur humain. C’est le rôle le plus intuitif : il contient vos questions, vos demandes, et vos données d’entrée.
{
"role": "user",
"content": "Analyse cette architecture réseau et identifie les trois vulnérabilités les plus critiques."
}
Le contenu d’un message user peut être une simple chaîne de texte ou un tableau d’objets pour combiner texte et images (nous verrons cela dans la leçon 4).
Astuces pour les messages user
- Formulez une demande par message quand c’est possible
- Si vous avez plusieurs demandes liées, numérotez-les
- Fournissez les données nécessaires directement dans le message
Le rôle assistant
Les messages assistant contiennent les réponses du modèle. Vous ne les écrivez pas vous-même en temps normal : c’est Grok qui les génère. Cependant, vous pouvez les inclure dans votre historique de conversation pour guider le modèle.
{
"role": "assistant",
"content": "Voici les trois vulnérabilités identifiées : ..."
}
Pourquoi pré-remplir des messages assistant ?
Inclure de faux messages assistant dans votre historique est une technique puissante :
- Guider le style : montrer au modèle le format de réponse attendu
- Maintenir la cohérence : simuler une conversation passée pour que le modèle continue dans le même ton
- Few-shot in context : créer des paires question/réponse comme exemples
L’impact de la structure des rôles
L’ordre et l’organisation des messages influencent directement la qualité de la réponse. Voici la structure recommandée :
[
{"role": "system", "content": "Instructions globales..."},
{"role": "user", "content": "Premier message utilisateur..."},
{"role": "assistant", "content": "Réponse du modèle..."},
{"role": "user", "content": "Message suivant..."}
]
L’endpoint Chat Completions de Grok est stateless : il ne conserve aucun historique entre les requêtes. Vous devez inclure tout le contexte conversationnel à chaque appel. Cela signifie que si vous voulez une conversation de 5 échanges, votre 5e requête doit contenir les 4 échanges précédents.
Mise en pratique
Testez l’impact du message système en envoyant la même question avec deux configurations différentes :
Configuration A :
[
{"role": "system", "content": "Tu es un professeur de mathématiques pour des élèves de terminale."},
{"role": "user", "content": "Explique les limites."}
]
Configuration B :
[
{"role": "system", "content": "Tu es un ingénieur logiciel senior spécialisé en systèmes distribués."},
{"role": "user", "content": "Explique les limites."}
]
La même question produit deux réponses radicalement différentes selon le rôle système défini. Le professeur parlera de limites mathématiques, l’ingénieur de rate limiting et de quotas.
Points clés à retenir
- Trois rôles structurent les conversations :
system(oudeveloper),user, etassistant - Le message système définit le comportement global et doit être placé en premier
- L’API est stateless : incluez tout l’historique à chaque requête
- Pré-remplir des messages assistant permet de guider le style et le format de réponse
- Un message système bien rédigé est souvent plus efficace que de multiples corrections en cours de conversation