Aller au contenu principal

Prompts système

Mis à jour le 30 juillet 2026

Quand vous construisez un chatbot IA pour un cas d’usage spécifique, vous avez besoin d’un moyen de contrôler le comportement de l’assistant — pas question qu’un support AWS recommande la concurrence ou disserte sur des recettes de cuisine. Les prompts système sont la clé pour transformer une IA généraliste en un assistant spécialisé qui respecte des consignes précises, conversation après conversation.

Le problème des instructions dans le message utilisateur

L’approche naïve consisterait à inclure toutes vos exigences directement dans le message utilisateur : « mentionne les services AWS », « ne cite pas de concurrents »… Cette approche a des limites sérieuses : il faudrait anticiper chaque question et cas de figure possible ; la liste d’instructions devient vite ingérable et répétitive ; l’utilisateur voit toutes les instructions internes — ce qui est au mieux inélégant, au pire une fuite de votre logique métier ; et les exigences changent selon la question posée. Les consignes de l’application n’ont tout simplement rien à faire dans le canal de l’utilisateur.

Le prompt système : une meilleure approche

Le prompt système résout ce problème en attribuant un rôle à Claude. Au lieu d’énumérer des règles spécifiques, vous lui dites d’agir comme un certain type de professionnel — et l’IA répond alors naturellement comme cette personne le ferait. La force du procédé : un rôle contient implicitement des centaines de règles. « Spécialiste du support AWS » implique de parler d’AWS, de ne pas vanter la concurrence, de rester professionnel, de décliner le hors-sujet — sans qu’aucune de ces règles n’ait été écrite.

Les bénéfices s’enchaînent : Claude reçoit des consignes cohérentes sur comment répondre, il adopte l’état d’esprit et les contraintes du rôle spécifié, les réponses restent centrées et professionnelles automatiquement, et vous n’avez pas besoin d’anticiper chaque scénario possible — le rôle généralise là où les règles énumérées ne couvraient que le prévu.

Implémentation

Le prompt système se passe en paramètre system de la fonction converse — une voie séparée des messages :

system_prompt = """
Vous etes un specialiste du support cloud AWS. Votre role est de repondre
aux questions des utilisateurs concernant les services d'hebergement cloud sur AWS.
"""

response = client.converse(
    modelId=model_id,
    messages=messages,
    system=[{"text": system_prompt}]
)

Le paramètre system attend une liste contenant un dictionnaire avec une clé "text" — le format de blocs habituel de l’API Converse. Cette séparation d’avec les messages est significative : le prompt système n’appartient pas à la conversation, l’utilisateur ne le voit jamais, et il s’applique à tous les tours.

Fonction chat flexible

Intégrons-le à notre fonction réutilisable, avec une construction conditionnelle :

def chat(messages, system=None):
    params = {"modelId": model_id, "messages": messages}

    if system:
        params["system"] = [{"text": system}]

    response = client.converse(**params)

    return response["output"]["message"]["content"][0]["text"]

L’appelant passe une simple chaîne, la fonction l’emballe au bon format — et sans prompt système, le paramètre est simplement absent de la requête. Ce pattern de dictionnaire de paramètres construit par étapes nous resservira pour chaque option de l’API : température, outils, séquences d’arrêt.

En pratique

La différence est flagrante sur trois questions types. Demandez « Comment héberger une base Postgres ? » sans prompt système : vous obtenez une réponse équilibrée couvrant plusieurs fournisseurs cloud et l’auto-hébergement — l’assistant généraliste fait son travail. Avec le prompt système du spécialiste AWS, la réponse se concentre exclusivement sur les solutions AWS (RDS, Aurora, EC2) : aucun concurrent mentionné. Encore plus révélateur : posez une question hors sujet, comme une recette de pain — Claude décline poliment tout en restant dans son rôle. Personne ne lui a interdit les recettes ; le rôle l’implique.

Détails techniques importants

Quatre points à connaître pour éviter les surprises :

  • Les prompts système ne peuvent pas être des chaînes vides (au moins un caractère)
  • Le paramètre system attend une liste de dictionnaires avec des clés "text"
  • Les prompts système sont traités avant tout message utilisateur
  • Vous pouvez modifier le prompt système entre les conversations, mais pas en cours de conversation

Points clés à retenir

  • Les consignes de l’application vont dans le prompt système, jamais dans les messages utilisateur
  • Un rôle bien choisi implique des centaines de règles sans les énumérer — et généralise aux cas imprévus
  • Format Bedrock : system=[{"text": ...}], construit conditionnellement dans la fonction chat
  • Effet mesurable : réponses centrées sur le domaine, hors-sujet décliné avec élégance
  • Le prompt système se fixe par conversation — invisible pour l’utilisateur, actif à chaque tour