Prompts systeme
Le prompt systeme est l’un des outils les plus puissants pour cadrer le comportement de Claude. Il definit le contexte, le role et les contraintes avant meme que l’utilisateur ne parle.
Qu’est-ce qu’un prompt systeme ?
C’est une instruction speciale, distincte des messages de la conversation, qui indique a Claude comment se comporter. Pensez-y comme un briefing donne a un employe avant qu’il ne rencontre un client.
Exemple concret : un tuteur en maths
Sans prompt systeme :
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{"role": "user", "content": "Combien font 15% de 80 ?"}
]
)
print(message.content[0].text)
# → "15% de 80 = 12"
Avec un prompt systeme de tuteur :
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
system="Tu es un tuteur en mathematiques patient et pedagogique. Au lieu de donner directement la reponse, guide l'eleve etape par etape pour qu'il trouve la solution lui-meme. Pose des questions pour verifier sa comprehension.",
messages=[
{"role": "user", "content": "Combien font 15% de 80 ?"}
]
)
print(message.content[0].text)
# → Claude guidera l'eleve au lieu de donner "12"
La difference est majeure. Meme question, comportement completement different.
Le parametre system
Le prompt systeme se passe via le parametre system de messages.create() :
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
system="Ton prompt systeme ici",
messages=[...]
)
Il est separe de la liste messages. Ce n’est pas un message avec role: "system" — c’est un parametre a part.
Integrer le prompt systeme dans la fonction chat
Reprenons notre fonction utilitaire pour accepter un prompt systeme optionnel :
def chat(conversation, user_message, system_prompt=None, model="claude-sonnet-4-20250514", max_tokens=1024):
"""Envoie un message avec un prompt systeme 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 systeme |
|---|---|
| Assistant specialise | ”Tu es un expert en droit du travail francais…” |
| Controle du format | ”Reponds toujours en JSON avec les champs: titre, resume, score” |
| Controle du ton | ”Tu es un assistant professionnel et concis. Pas de familiarite.” |
| Restriction du perimetre | ”Tu ne reponds qu’aux questions sur la cuisine. Pour tout autre sujet, decline poliment.” |
| Persona | ”Tu es un coach sportif motivant qui encourage ses clients.” |
Bonnes pratiques
- Soyez precis : “Reponds en 3 phrases maximum” est mieux que “Sois concis”
- Definissez le role : “Tu es un…” aide Claude a calibrer ses reponses
- 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 iterez : un bon prompt systeme se peaufine
Points a retenir
- Le prompt systeme cadre le comportement de Claude avant la conversation
- Il se passe via le parametre
system, pas dansmessages - Il change radicalement le comportement de Claude pour la meme question
- Combinez role, ton, format et contraintes pour des resultats precis
Dans la prochaine lecon, vous mettrez cela en pratique avec un exercice.