Aller au contenu principal

Les rôles : system, developer, user et assistant

Mis à jour le 30 juillet 2026

Les quatre rôles des messages

Chaque message envoyé à l’endpoint Chat Completions possède un champ role qui détermine comment le modèle Grok l’interprète. Comprendre ces rôles est essentiel pour structurer vos conversations et obtenir des réponses de qualité.

L’API xAI reconnaît quatre rôles : system, developer, user et assistant. Chacun a une position et un usage spécifiques dans le tableau de messages.

Le rôle system (ou developer)

Le message system est placé en premier dans le tableau de messages. Il définit le comportement global du modèle pour toute la conversation : ton, format de réponse, limites, personnalité, langue, etc.

{
  "role": "system",
  "content": "Tu es un expert en cybersécurité. Réponds toujours en français, de manière concise et technique. Si tu ne connais pas la réponse, dis-le clairement."
}

Le rôle developer est un alias de system. Les deux sont interchangeables dans l’API xAI. OpenAI a introduit developer pour mieux refléter l’intention : ce sont les instructions du développeur, pas du “système”.

Bonnes pratiques pour le message system

  • Soyez spécifique : “Réponds en 3 phrases maximum” est plus efficace que “Sois concis”
  • Définissez le format : précisez si vous attendez du JSON, du Markdown, des listes à puces
  • Établissez les limites : indiquez ce que le modèle ne doit pas faire
  • Contextualisez : donnez le contexte métier (“Tu es un assistant pour une clinique veterinaire”)

Le rôle user

Les messages user représentent les interventions de l’utilisateur final. Ce sont les questions, les demandes, les instructions envoyées par la personne qui interagit avec votre application.

{
  "role": "user",
  "content": "Quelles sont les 3 vulnérabilités web les plus courantes ?"
}

Un message user peut apparaître n’importe où dans la conversation après le message system. Dans une conversation multi-tour, vous alternez généralement entre les messages user et assistant.

Le rôle assistant

Les messages assistant représentent les réponses précédentes du modèle. Quand vous renvoyez l’historique d’une conversation, chaque réponse de Grok est taguee avec ce rôle.

{
  "role": "assistant",
  "content": "Les trois vulnerabilites web les plus courantes sont :\n1. Injection SQL\n2. Cross-Site Scripting (XSS)\n3. Broken Authentication"
}

Vous pouvez aussi utiliser le rôle assistant pour du few-shot prompting : injecter des exemples de réponses souhaitées avant le vrai message utilisateur.

{
  "messages": [
    {"role": "system", "content": "Classifie le sentiment : positif, négatif ou neutre."},
    {"role": "user", "content": "J'adore ce produit !"},
    {"role": "assistant", "content": "positif"},
    {"role": "user", "content": "Le service client est deplorable."},
    {"role": "assistant", "content": "negatif"},
    {"role": "user", "content": "La livraison est arrivée hier."}
  ]
}

Dans cet exemple, les deux premiers échanges user/assistant servent de démonstration. Le modèle comprend le format attendu et appliquera la même logique au troisième message.

Structure complète d’une requête

Voici une requête type combinant les trois rôles dans une conversation multi-tour :

{
  "model": "grok-4.20-0309-reasoning",
  "messages": [
    {
      "role": "system",
      "content": "Tu es un assistant pédagogique spécialisé en mathématiques. Explique les concepts étape par étape."
    },
    {
      "role": "user",
      "content": "Qu'est-ce qu'une derivee ?"
    },
    {
      "role": "assistant",
      "content": "Une derivee mesure le taux de variation instantané d'une fonction..."
    },
    {
      "role": "user",
      "content": "Donne-moi un exemple concret."
    }
  ]
}

L’ordre est toujours le même : system en premier, puis alternance user/assistant, avec le dernier message obligatoirement user (c’est la question à laquelle le modèle doit répondre).

Points clés à retenir

  • system/developer : instructions du développeur, toujours en premier, définit le comportement global
  • user : messages de l’utilisateur final, déclenchent la génération de réponse
  • assistant : réponses précédentes du modèle, utiles pour l’historique et le few-shot prompting
  • Les rôles system et developer sont interchangeables dans l’API xAI
  • Le dernier message du tableau doit être un message user