Prompts efficaces pour la réflexion approfondie
Gardez vos prompts simples, évitez les instructions étape par étape et faites confiance au modèle pour raisonner.
Prompts efficaces pour la réflexion approfondie est une leçon AI Prompt Engineering gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Prompt Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Prompt Engineering comprend 4 leçons au total.
La rédaction d'instructions pour les modèles de raisonnement est différente
Les réflexes de rédaction d'instructions que vous avez acquis pour les modèles standard — chaîne de raisonnement, instructions étape par étape, exemples de démonstration — jouent souvent contre vous avec les modèles de raisonnement.
Les modèles de raisonnement effectuent déjà un raisonnement interne sophistiqué. Leur dire exactement comment réfléchir peut perturber ce processus. Les meilleures instructions pour les modèles de raisonnement sont plus simples et plus directes que celles destinées aux modèles standard.
Ne donnez pas d'instructions étape par étape
Avec les modèles standard, vous écrivez : « Réfléchissez étape par étape. Commencez par examiner X, puis examinez Y et concluez enfin Z. » Ce guidage est utile, car les modèles standard ne le font pas automatiquement.
Avec les modèles de raisonnement, ce guidage peut contraindre le raisonnement interne du modèle à suivre une voie sous-optimale. Énoncez plutôt clairement le problème et laissez le modèle déterminer lui-même comment le traiter.
# Standard model: needs scaffolding
STANDARD_PROMPT = (
'Let us think step by step.\n'
'First, identify the variables.\n'
'Then, set up the equation.\n'
'Then, solve for x.\n'
'Finally, verify your answer.\n\n'
'Problem: If 3x + 7 = 22, what is x?'
)
# Reasoning model: just state the problem clearly
REASONING_PROMPT = (
'Solve: If 3x + 7 = 22, what is x?'
# The model handles the step-by-step internally
)
# Both produce correct answers; the reasoning model prompt is simpler
print('Reasoning model prefers the cleaner prompt')Énoncez le problème clairement et complètement
Si vous devez simplifier la manière dont vous donnez vos instructions au modèle de raisonnement, vous devez être exhaustif quant à ce que vous lui demandez. Fournissez dès le départ tout le contexte, les contraintes et les exigences — le modèle les utilisera pendant son raisonnement interne.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
# Poor: vague problem statement
BAD_PROMPT = 'Write me a good sorting algorithm.'
# Good: clear, complete problem specification
GOOD_PROMPT = (
'Write a Python sorting algorithm with these requirements:\n'
'- Must sort a list of integers in ascending order\n'
'- Must work correctly on empty lists, single-element lists, and lists with duplicates\n'
'- Target time complexity: O(n log n) average case\n'
'- Must not use Python built-in sort() or sorted()\n'
'- Include a brief docstring and 3 test cases\n\n'
'Return only the code, no explanation.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=8000,
thinking={'type': 'enabled', 'budget_tokens': 5000},
messages=[{'role': 'user', 'content': GOOD_PROMPT}]
)
print(next(b.text for b in response.content if b.type == 'text')[:300])Définir correctement budget_tokens
budget_tokens contrôle le nombre maximal de jetons de réflexion. Le définir correctement est le principal réglage des modèles de raisonnement :
- 1 000 à 2 000 : problèmes simples, calculs rapides
- 5 000 à 10 000 : programmation et analyse de complexité moyenne
- 16 000 et plus : mathématiques les plus difficiles, conception de systèmes complexes, problèmes de niveau recherche
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def reasoning_call(prompt, budget_tokens=5000):
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=budget_tokens + 2048, # max_tokens must exceed budget_tokens
thinking={
'type': 'enabled',
'budget_tokens': budget_tokens
},
messages=[{'role': 'user', 'content': prompt}]
)
answer = next((b.text for b in response.content if b.type == 'text'), '')
thinking_blocks = [b for b in response.content if b.type == 'thinking']
print(f'Thinking blocks: {len(thinking_blocks)}')
return answer
# Simple problem: small budget
reasoning_call('What is 17 * 23?', budget_tokens=1000)
# Complex problem: larger budget
reasoning_call(
'Design a distributed rate limiter that handles 100k requests/second.',
budget_tokens=10000
)Instructions système minimales
Pour les modèles de raisonnement, réduisez les instructions système au minimum. Le raisonnement interne du modèle est sa principale capacité : ne le contraignez pas excessivement avec de longues instructions comportementales.
Pour les modèles de raisonnement, de bonnes instructions système consistent à définir le rôle, le format de sortie et les contraintes. C'est tout.
# Over-engineered system prompt (hurts reasoning models)
BAD_SYSTEM = (
'You are an expert Python developer. '
'Always think step by step. '
'First understand the problem. '
'Then plan your approach. '
'Then implement step by step. '
'Check each step before proceeding. '
'Finally review your solution. '
'Format all code with comments. '
'Add error handling to every function. '
'...'
)
# Minimal system prompt (helps reasoning models)
GOOD_SYSTEM = (
'You are an expert Python developer. '
'Return only code unless explanation is explicitly requested. '
'Use type hints and docstrings.'
)
# The model's internal reasoning handles the restLes instructions concernant le format de sortie restent importantes
Vous ne devez pas expliquer comment raisonner, mais vous devez préciser clairement le format de sortie souhaité. Il s'agit d'une notion différente des instructions de raisonnement : cela indique au modèle ce qu'il doit renvoyer, et non la manière dont il doit réfléchir.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
# Clear output format instructions are still important
prompt = (
'Analyze the time and space complexity of this Python function:\n\n'
'def bubble_sort(arr):\n'
' n = len(arr)\n'
' for i in range(n):\n'
' for j in range(0, n-i-1):\n'
' if arr[j] > arr[j+1]:\n'
' arr[j], arr[j+1] = arr[j+1], arr[j]\n\n'
'Return your answer as JSON with keys: '
'time_complexity, space_complexity, explanation (2 sentences max).'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=5000,
thinking={'type': 'enabled', 'budget_tokens': 3000},
messages=[{'role': 'user', 'content': prompt}]
)
print(next(b.text for b in response.content if b.type == 'text'))Moins d'exemples de démonstration
Les modèles standard tirent grandement profit de 3 à 5 exemples de démonstration. Les modèles de raisonnement en tirent moins profit, et un trop grand nombre d'exemples peut même nuire aux résultats en remplissant la fenêtre de contexte avec du contenu qui perturbe le raisonnement interne.
Pour les modèles de raisonnement, 0 ou 1 exemple est souvent optimal. N'utilisez des exemples que lorsque le format de sortie est inhabituel ou ambigu.
# Standard model: 3 few-shot examples improve performance significantly
STANDARD_FEW_SHOT = (
'Q: 2 + 2 = ?\nA: 4\n\n'
'Q: 5 * 6 = ?\nA: 30\n\n'
'Q: 100 / 4 = ?\nA: 25\n\n'
'Q: 17 + 38 = ?\nA:'
)
# Reasoning model: 0 examples is fine; 1 is enough if format is unclear
REASONING_DIRECT = 'What is 17 + 38?'
# The reasoning model already knows math — examples are overhead, not signal
# Only use 1 example when the output format needs clarification:
REASONING_FORMAT_EXAMPLE = (
'Answer math questions returning only the number.\n'
'Example: Q: 2 + 2 A: 4\n\n'
'Q: 17 + 38'
)Gérer l'incertitude dans les sorties des modèles de raisonnement
Les modèles de raisonnement sont plus susceptibles d'exprimer une incertitude réelle que les modèles standard, puisqu'ils ont effectivement réfléchi à la question. Concevez vos applications pour gérer avec souplesse les réponses prudentes.
import anthropic
import re
client = anthropic.Anthropic(api_key='sk-ant-...')
def reasoning_with_confidence(question):
prompt = (
f'{question}\n\n'
f'At the end of your answer, include a confidence statement: '
f'Confidence: [HIGH/MEDIUM/LOW] — [one sentence why]'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=8000,
thinking={'type': 'enabled', 'budget_tokens': 5000},
messages=[{'role': 'user', 'content': prompt}]
)
text = next(b.text for b in response.content if b.type == 'text')
# Parse confidence
match = re.search(r'Confidence: (HIGH|MEDIUM|LOW)', text)
confidence = match.group(1) if match else 'UNKNOWN'
print(f'Confidence: {confidence}')
return text, confidence
answer, conf = reasoning_with_confidence(
'What will AI capabilities look like in 2030?'
)Mise en cache des sorties des modèles de raisonnement
Les appels aux modèles de raisonnement sont coûteux et lents. Mettez en cache les résultats des requêtes répétées ou prévisibles. Comme les jetons de réflexion peuvent être très nombreux, la mise en cache évite de supporter à nouveau la latence et le coût lors des appels suivants.
import hashlib
import json
import os
cache_dir = '/tmp/reasoning_cache'
os.makedirs(cache_dir, exist_ok=True)
def cached_reasoning_call(prompt, budget_tokens=5000):
# Create cache key from prompt
key = hashlib.sha256(f'{prompt}:{budget_tokens}'.encode()).hexdigest()
cache_file = os.path.join(cache_dir, f'{key}.json')
if os.path.exists(cache_file):
with open(cache_file) as f:
cached = json.load(f)
print('Cache hit!')
return cached['answer']
# Cache miss: call the model
answer = reasoning_call(prompt, budget_tokens)
with open(cache_file, 'w') as f:
json.dump({'prompt': prompt, 'answer': answer}, f)
return answerVérifier les sorties des modèles de raisonnement
Les modèles de raisonnement commettent moins d'erreurs, mais ils sont loin d'être infaillibles, notamment pour les faits propres à un domaine ou les sujets de pointe. Vérifiez toujours les sorties qui serviront de base à des actions dans des contextes à forts enjeux.
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-...')
def reasoning_with_verification(question):
# Step 1: Get reasoning model answer
r1 = client.messages.create(
model='claude-opus-4-5',
max_tokens=10000,
thinking={'type': 'enabled', 'budget_tokens': 8000},
messages=[{'role': 'user', 'content': question}]
)
answer = next(b.text for b in r1.content if b.type == 'text')
# Step 2: Independent verification call
verify_prompt = (
f'Question: {question}\n\n'
f'Proposed answer: {answer}\n\n'
f'Is this answer correct? Respond with CORRECT, INCORRECT, or UNCERTAIN, '
f'followed by a brief explanation.'
)
r2 = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
messages=[{'role': 'user', 'content': verify_prompt}]
)
verification = r2.content[0].text
print(f'Verification: {verification[:100]}')
return answer, verificationListe de vérification pratique pour les instructions destinées aux modèles de raisonnement
Lorsque vous rédigez des instructions pour les modèles de raisonnement, suivez cette liste de vérification :
- Énoncez le problème clairement et complètement
- N'incluez pas d'instructions de raisonnement étape par étape (NOT)
- Gardez l'instruction système courte (rôle + format + contraintes uniquement)
- Utilisez au maximum 0 ou 1 exemple de démonstration
- Précisez explicitement le format de sortie
- Définissez
budget_tokensen fonction de la complexité du problème - Prévoyez une latence de réponse de 10 à 60 secondes
Vérification des connaissances : instructions destinées aux modèles de raisonnement
Pourquoi est-il recommandé d'utiliser des instructions plus simples avec les modèles de raisonnement qu'avec les modèles standard ?
Récapitulatif : des instructions efficaces pour le raisonnement étendu
Les modèles de raisonnement ont besoin d'instructions plus simples et plus directes que les modèles standard. N'expliquez pas comment raisonner : énoncez clairement et complètement le problème, puis laissez la délibération interne du modèle gérer la stratégie. Réduisez les instructions système au minimum : rôle, format de sortie et contraintes uniquement. Utilisez 0 ou 1 exemple de démonstration. Définissez budget_tokens en fonction de la complexité du problème (1 000 pour un problème simple, 10 000 ou plus pour un problème difficile). Prévoyez une latence importante et mettez les résultats en cache lorsque c'est possible. Précisez explicitement le format de sortie : c'est le seul domaine où des instructions détaillées restent utiles.
Questions Fréquemment Posées
La leçon « Prompts efficaces pour la réflexion approfondie » est-elle gratuite ?
Oui — le texte complet de « Prompts efficaces pour la réflexion approfondie » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Prompt Engineering, passe à CoddyKit PRO. Le cours AI Prompt Engineering comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Prompts efficaces pour la réflexion approfondie » ?
Gardez vos prompts simples, évitez les instructions étape par étape et faites confiance au modèle pour raisonner. Tu pratiques AI Prompt Engineering avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer AI Prompt Engineering ?
Aucune expérience préalable n'est requise. AI Prompt Engineering sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Prompts efficaces pour la réflexion approfondie » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon AI Prompt Engineering ?
Oui. Chaque leçon AI Prompt Engineering inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Différences entre les modèles de raisonnement
- Prompts efficaces pour la réflexion approfondie
- Quand utiliser des modèles de raisonnement ou standard
- Compromis entre coût et latence