Un prompt système est un ensemble d'instructions qu'un modèle d'IA reçoit avant le début de la conversation, et il s'applique à tous les messages qui suivent. Il fixe le rôle du modèle, son public, ses règles et son format de réponse par défaut, pour que vous n'ayez pas à les répéter dans chaque message. L'utilisateur écrit les prompts ; le prompt système façonne la manière dont le modèle répond à tous.
Toutes les applications de chat en utilisent déjà un. Quand vous ouvrez ChatGPT, Claude ou Gemini, le modèle a déjà reçu des instructions de l'entreprise qui le propose, et la fenêtre de chat ne vous les montre pas. Quand des développeurs construisent une application sur un modèle, c'est dans le prompt système qu'ils transforment un modèle généraliste en tuteur de programmation, en assistant support ou en rédacteur de messages de commit.
Ce que fait un prompt système
Dans un chat, l'entrée d'un modèle a une structure : d'abord le prompt système, puis la conversation sous forme de messages alternés entre l'utilisateur et l'assistant. Le prompt système se place au-dessus de tout l'échange, il est donc sous les yeux du modèle à chaque réponse, quelle que soit la longueur de la conversation.
Cette position en fait l'endroit idéal pour tout ce qui doit toujours s'appliquer : à qui le modèle s'adresse, ce qu'il peut faire ou non, à quoi doit ressembler une réponse par défaut. Les modèles sont aussi entraînés à lui donner plus de poids qu'un message utilisateur en cas de conflit. C'est une tendance, pas un verrou. Un utilisateur obstiné peut parfois convaincre un modèle d'ignorer son prompt système, et c'est pourquoi il ne doit jamais être votre seule protection.
Prompt système et message utilisateur
| Prompt système | Message utilisateur | |
|---|---|---|
| Qui l'écrit | Le développeur, ou vous dans les réglages de l'application | Vous, dans la zone de saisie |
| Portée | Toute la conversation | Une seule demande |
| Contenu typique | Rôle, public, règles, faits, format par défaut | La tâche et le contenu à traiter |
| Quand il change | Rarement | À chaque tour |
| Poids en cas de conflit | En général plus élevé | En général plus faible |
Un test utile : si une phrase serait vraie pour tous les messages de la conversation, elle a sa place dans le prompt système. Si elle concerne cette demande précise, elle va dans le message utilisateur. "Réponds en moins de 100 mots" peut aller dans l'un ou l'autre ; "résume l'e-mail ci-dessous" est toujours un message utilisateur.
Où définir un prompt système
Dans l'API, le prompt système est une entrée distincte. Avec la bibliothèque Python d'OpenAI, c'est le premier message de la liste, avec le rôle system. La documentation d'OpenAI emploie aussi le nom developer message pour ce même type d'instruction sur les modèles récents.
from openai import OpenAI
client = OpenAI()
MODEL = "your-model-id" # e.g. from your provider's model list
response = client.chat.completions.create(
model=MODEL,
messages=[
{"role": "system", "content": "You are a patient Python tutor. Give hints, not full solutions."},
{"role": "user", "content": "Why does my loop stop at 9?"},
],
)
print(response.choices[0].message.content)
Avec la bibliothèque Python d'Anthropic, c'est un paramètre system de premier niveau, et la liste messages ne contient que la conversation :
import anthropic
client = anthropic.Anthropic()
MODEL = "your-model-id" # e.g. from your provider's model list
message = client.messages.create(
model=MODEL,
max_tokens=500,
system="You are a patient Python tutor. Give hints, not full solutions.",
messages=[{"role": "user", "content": "Why does my loop stop at 9?"}],
)
print(message.content[0].text)
L'API Gemini de Google l'appelle system instruction. Le nom change, l'idée reste la même.
Dans les applications de chat, vous n'avez pas accès au champ système brut, puisque l'application a déjà le sien. Vous disposez d'un endroit où ajouter des consignes permanentes que l'application inclut pour vous. Dans ChatGPT, ce sont les instructions personnalisées, les instructions de projet et les instructions d'un GPT personnalisé. Dans Claude, les instructions de projet et les préférences de votre profil. Dans Gemini, les instructions d'un Gem. La façon exacte dont chaque application fusionne votre texte avec ses propres instructions n'est pas entièrement documentée, mais en pratique elles se comportent comme un prompt système partagé avec l'application.
Quoi mettre dans un prompt système
- Le rôle et le public. "Tu es tuteur pour des élèves qui programment depuis un mois" fixe le vocabulaire et le niveau de chaque réponse. Prompting par rôle explique ce qu'un rôle change et ce qu'il ne change pas.
- Les règles valables à chaque tour. Ce que le modèle doit toujours ou ne jamais faire : donner des indices plutôt que des solutions complètes, ne répondre qu'aux questions sur le produit, répondre dans la langue de l'utilisateur.
- Quoi faire en cas de doute. "Si la réponse ne figure pas dans les faits ci-dessous, dis que tu ne sais pas" protège mieux contre les réponses inventées qu'un vague "sois précis".
- Les faits dont le modèle a besoin. Détails du produit, politiques, date du jour, formule de l'utilisateur. Un modèle ne peut pas répondre aux questions sur votre application à partir de ses données d'entraînement.
- Le format par défaut. Longueur, structure, usage ou non de blocs de code. Si un programme lit la sortie, donnez la forme exacte ; voir sortie structurée.
Ce qu'il faut laisser de côté
Les secrets. Un prompt système n'est pas privé. Les utilisateurs peuvent demander à un modèle de répéter ses instructions ou l'y amener par la ruse, et les modèles ne refusent pas de façon fiable. Les clés d'API, les mots de passe et tout ce que vous ne voudriez pas voir publié n'ont rien à y faire. Considérez le prompt système comme un texte que l'utilisateur lira peut-être un jour, et voyez injection de prompt pour comprendre comment des instructions se font contourner.
La tâche d'un seul message. Si le prompt système dit "résume cet article", le deuxième message de la conversation n'a plus de place.
Les empilements de règles qui se recoupent. Vingt règles écrites à des moments différents finissent par se contredire, et le modèle doit deviner laquelle l'emporte. Regroupez les règles, supprimez les doublons et indiquez les priorités quand deux règles peuvent entrer en conflit.
Le remplissage. Le prompt système est renvoyé avec chaque requête et compte dans la fenêtre de contexte du modèle : chaque paragraphe inutile se paie à chaque tour.
Exemples de prompts système
Le premier exemple est un assistant intégré à un produit. Le prompt système fixe un périmètre, une longueur et une règle pour les questions auxquelles il ne peut pas répondre, et il fournit les faits dont le modèle a besoin. Passez d'un onglet à l'autre pour lui envoyer différents messages : le même prompt système façonne les trois réponses.
Ouvre l'achat dans tes transactions et touche Répartir. Choisis ensuite les deux catégories, Courses et Maison, et saisis le montant qui revient à chacune.
Le second exemple est le genre de texte que vous pourriez mettre dans les instructions personnalisées ou les instructions de projet d'une application de chat. Il vous décrit et dit comment vous voulez les réponses, pour que chaque conversation parte de là.
import { readFile } from "node:fs/promises";
const config = JSON.parse(await readFile("config.json", "utf8"));
Passer un encodage fait renvoyer une chaîne à readFile, que JSON.parse transforme en objet. Le await de premier niveau ne fonctionne que dans un module ES ("type": "module" dans package.json ou un fichier .mts) ; sinon, place l'appel dans une fonction async. Ajoute un try/catch si le fichier peut manquer ou être mal formé.
Sans le prompt système, une question aussi courte que "comment lire un fichier JSON ?" oblige le modèle à deviner le langage, et la réponse arrive souvent en Python ou en JavaScript classique, avec un paragraphe sur ce qu'est le JSON. Avec lui, la réponse choisit le bon langage et le bon environnement, saute les bases et respecte la forme demandée.
La même structure marche pour tout assistant que vous configurez : qui il sert, les règles, quoi faire en cas de doute, les faits dont il a besoin et le format de réponse. Écrivez-le une fois, testez-le avec une question normale, une hors sujet et une qui tente de contourner une règle, puis ajustez jusqu'à ce que les trois réponses vous conviennent.
Questions fréquentes
Qu'est-ce qu'un prompt système ?
Un prompt système est un ensemble d'instructions donné à un modèle d'IA avant le début de la conversation, et il s'applique à tous les messages qui suivent. Il fixe en général le rôle, le public, les règles et le format de réponse par défaut. Dans l'API, c'est un champ ou un message système distinct ; dans les applications de chat, les instructions personnalisées et les instructions de projet jouent le même rôle.
Quelle est la différence entre un prompt système et un prompt utilisateur ?
Le prompt système contient des instructions permanentes pour toute la conversation, écrites en général par le développeur ou définies une fois dans les réglages. Le prompt utilisateur est un message unique qui demande une chose. Quand les deux se contredisent, les modèles sont entraînés à donner plus de poids au prompt système, mais c'est une tendance et non une garantie.
Peut-on définir un prompt système dans ChatGPT, Claude ou Gemini ?
Pas le champ système brut, mais quelque chose d'approchant. ChatGPT propose les instructions personnalisées, les instructions de projet et les instructions des GPT personnalisés. Claude a les instructions de projet et les préférences du profil. Gemini a les instructions des Gems. L'application combine ce que vous y écrivez avec ses propres instructions système et l'applique à vos conversations.
Les utilisateurs peuvent-ils voir ou extraire un prompt système ?
Souvent, oui. Un utilisateur peut demander au modèle de répéter ses instructions ou l'amener à le faire par la ruse, et les modèles ne les gardent pas secrètes de façon fiable. Ne mettez jamais de mots de passe, de clés d'API ou d'informations confidentielles dans un prompt système, et n'en faites pas une barrière de sécurité.
Quelle longueur doit faire un prompt système ?
Assez pour couvrir ce qui s'applique à chaque message, pas plus. Un prompt système personnel peut tenir en trois ou quatre phrases. Celui d'un produit fait souvent une page, avec le rôle, les règles, les faits et le format de sortie. Chaque mot est envoyé avec chaque requête, il coûte donc aussi des tokens à chaque fois.