Structurer les prompts avec des balises XML
- Pourquoi les balises de style XML donnent à Claude des frontières nettes entre les parties d'un prompt
- Comment envelopper instructions, documents, exemples et règles de format dans des balises nommées
- Comment demander à Claude une sortie balisée que vous pouvez parser de façon fiable
- Quand baliser — et quand ne pas sur-baliser
Quand un prompt mélange instructions, un document, des exemples et une question, le modèle peut les confondre. Les balises de style XML sont un moyen propre d'étiqueter chaque partie — et Claude y répond particulièrement bien.
L'idée
Enveloppez chaque section dans une balise nommée pour qu'il soit sans ambiguïté de savoir ce qui est quoi :
Structure de prompt balisée
<instructions>
Summarize the document for a busy executive. Use only the document; if a fact
isn't there, say so.
</instructions>
<document>
{paste the long document here}
</document>
<format>
3 bullet points, then a one-line "decision needed".
</format>Les balises ne sont que du texte que vous inventez — <document>, <example>, <context>, <rules> — mais elles donnent au modèle des frontières nettes.
Pourquoi cela aide
- Sépare les données des instructions — le modèle est moins susceptible d'obéir à du texte parasite à l'intérieur d'un document collé (une défense légère contre l'injection de prompt — voir /docs/security/prompt-injection).
- Réduit le « il a ignoré une partie de mon prompt ». Chaque partie est clairement délimitée.
- Rend les sorties plus faciles à parser — vous pouvez demander à Claude de mettre sa réponse dans des balises <answer> et l'extraire de façon fiable.
- Se combine avec le few-shot (/docs/prompting/few-shot) — enveloppez chaque exemple dans <example>.
Les quatre bénéfices en détail :
- Sépare les données des instructions — le modèle est moins susceptible d'obéir à du texte parasite à l'intérieur d'un document collé (une défense légère contre l'injection de prompt).
- Réduit le « il a ignoré une partie de mon prompt ». Chaque partie est clairement délimitée.
- Rend les sorties plus faciles à parser — vous pouvez demander à Claude de mettre sa réponse dans des balises
<answer>et l'extraire de façon fiable. - Se combine avec le few-shot — enveloppez chaque exemple dans
<example>.
Demander une sortie balisée
Guided walkthrough1 of 3
- Dites au modèle exactement quelles balises utiliser pour le raisonnement vs. la réponse finale.
- Votre code peut ne récupérer que le contenu de <answer>, en ignorant le raisonnement.
- Se marie bien avec la sortie structurée (/docs/api/structured-output) quand vous avez besoin de résultats lisibles par machine.
Demander une sortie balisée
Put your reasoning in <thinking> tags and your final answer in <answer> tags.
Votre code peut alors récupérer juste le contenu de <answer>. Se marie bien avec la sortie structurée quand vous avez besoin de résultats lisibles par machine.
Astuces
- Soyez cohérent — ouvrez et fermez chaque balise ; réutilisez les mêmes noms.
- Nommez les balises de façon significative (<contract>, pas <x>).
- Ne sur-balisez pas les prompts triviaux — utilisez ceci quand il y a vraiment plusieurs parties distinctes.
- Soyez cohérent — ouvrez et fermez chaque balise ; réutilisez les mêmes noms.
- Nommez les balises de façon significative (
<contract>, pas<x>). - Ne sur-balisez pas les prompts triviaux — utilisez ceci quand il y a vraiment plusieurs parties distinctes.