Prompts système
Mis à jour le 30 juillet 2026
Le prompt système est l’un des outils les plus puissants pour cadrer le comportement de Claude. Il définit le contexte, le rôle et les contraintes avant même que l’utilisateur ne parle.
Qu’est-ce qu’un prompt système ?
C’est une instruction spéciale, distincte des messages de la conversation, qui indique à Claude comment se comporter. La distinction n’est pas cosmétique : le prompt système n’entre pas dans le fil de la discussion, il le surplombe. Il reste actif à chaque tour, y compris au vingtième message, là où une consigne glissée dans un message utilisateur perd de son poids à mesure que la conversation s’allonge. Pensez-y comme un briefing donné à un employé avant qu’il ne rencontre un client.
Exemple concret : un tuteur en maths
Sans prompt système :
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[
{"role": "user", "content": "Combien font 15% de 80 ?"}
]
)
print(message.content[0].text)
# → "15% de 80 = 12"
Avec un prompt système de tuteur :
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system="Tu es un tuteur en mathématiques patient et pédagogique. Au lieu de donner directement la réponse, guide l'élève étape par étape pour qu'il trouve la solution lui-même. Pose des questions pour verifier sa compréhension.",
messages=[
{"role": "user", "content": "Combien font 15% de 80 ?"}
]
)
print(message.content[0].text)
# → Claude guidera l'élève au lieu de donner "12"
La différence est majeure. Même question, comportement complètement différent.
Le paramètre system
Le prompt système se passe via le paramètre system de messages.create() :
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system="Ton prompt système ici",
messages=[...]
)
Il est séparé de la liste messages. Ce n’est pas un message avec role: "system" — c’est un paramètre à part. Ce détail piège quiconque arrive depuis l’API OpenAI, où le prompt système est bel et bien un message de la liste. Ici, le passer dans messages ne produit pas d’erreur : il est simplement traité comme un message ordinaire, et vous cherchez longtemps pourquoi votre cadrage ne tient pas.
Intégrer le prompt système dans la fonction chat
Reprenons notre fonction utilitaire pour accepter un prompt système optionnel :
def chat(conversation, user_message, system_prompt=None, model="claude-sonnet-5", max_tokens=1024):
"""Envoie un message avec un prompt système optionnel."""
conversation.append({"role": "user", "content": user_message})
kwargs = {
"model": model,
"max_tokens": max_tokens,
"messages": conversation
}
if system_prompt:
kwargs["system"] = system_prompt
response = client.messages.create(**kwargs)
assistant_text = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_text})
return assistant_text
Cas d’usage courants
| Cas d’usage | Exemple de prompt système |
|---|---|
| Assistant spécialisé | ”Tu es un expert en droit du travail français…” |
| Contrôle du format | ”Réponds toujours en JSON avec les champs: titre, résumé, score” |
| Contrôle du ton | ”Tu es un assistant professionnel et concis. Pas de familiarité.” |
| Restriction du périmètre | ”Tu ne réponds qu’aux questions sur la cuisine. Pour tout autre sujet, décline poliment.” |
| Persona | ”Tu es un coach sportif motivant qui encourage ses clients.” |
Bonnes pratiques
Un principe résume les cinq points qui suivent : le prompt système décrit un comportement durable, pas une tâche. « Tu es un assistant juridique qui cite toujours ses sources » a sa place ici ; « résume ce contrat » a sa place dans le message utilisateur. Confondre les deux donne un assistant qui applique une consigne ponctuelle à toute la conversation.
- Soyez précis : “Réponds en 3 phrases maximum” est mieux que “Sois concis”
- Définissez le rôle : “Tu es un…” aide Claude à calibrer ses réponses
- Indiquez les contraintes : ce que Claude doit et ne doit pas faire
- Donnez le format attendu : si vous voulez du JSON, du Markdown, des listes…
- Testez et itérez : un bon prompt système se peaufine
Points à retenir
- Le prompt système cadre le comportement de Claude avant la conversation
- Il se passe via le paramètre
system, pas dansmessages - Il change radicalement le comportement de Claude pour la même question
- Combinez rôle, ton, format et contraintes pour des résultats précis
Dans la prochaine leçon, vous mettrez cela en pratique avec un exercice.