Structurer avec des balises XML
Mis à jour le 30 juillet 2026
Pourquoi structurer ?
Imaginez que vous envoyez à Claude un prompt contenant 20 pages de données commerciales, suivies d’instructions, puis du code à analyser, puis des questions. Sans structure, Claude doit deviner ou finissent les données et ou commencent les instructions. C’est une recette pour des erreurs.
Le problème que les balises résolvent est un problème de frontières. Dans un prompt long, rien ne distingue matériellement les données à traiter des instructions qui disent quoi en faire : tout est du texte à la suite. Une consigne contenue dans un document que vous fournissez peut alors être lue comme une consigne qui vous vient de vous — c’est d’ailleurs le mécanisme de l’injection de prompt.
Les balises XML créent ces frontières explicitement, et Claude est spécifiquement entraîné pour bien les interpréter.
Syntaxe de base
<nom_de_la_balise>
Contenu ici
</nom_de_la_balise>
Il ne s’agit pas de XML au sens strict, et c’est une bonne nouvelle : pas de schéma à déclarer, pas de DTD, pas de validation. Seule compte la paire ouvrante/fermante, qui délimite une zone. Contrairement au XML standard, vous n’avez donc pas besoin de déclarer un schéma ni de respecter une DTD. Utilisez simplement des noms descriptifs en minuscules avec des underscores.
Exemples de balises courantes
| Balise | Usage |
|---|---|
<instructions> | Les consignes principales du prompt |
<donnees> ou <data> | Les données à traiter |
<contexte> | Le contexte ou les informations de fond |
<format_sortie> | Le format attendu pour la réponse |
<exemples> | Des exemples de sorties attendues |
<contraintes> | Les règles à respecter |
Exemple pratique : plan alimentaire
Sans balises XML :
Cree un plan alimentaire pour cet athlete. Il s'appelle Thomas, il fait
du cyclisme, son objectif est de faire le Mont Ventoux en moins de 2h,
il est vegetarien. Le plan doit inclure 5 repas avec calories et macros.
Donne les quantites en grammes.
Tout est mélangé : les données de l’athlète, les instructions et les consignes de format sont dans un seul bloc. Ça fonctionne pour un prompt court, mais ça devient ingérable quand le prompt grossit.
Avec balises XML :
<instructions>
Cree un plan alimentaire quotidien adapte au profil de l'athlete ci-dessous.
</instructions>
<athlete>
Nom : Thomas Renard
Sport : Cyclisme sur route
Objectif : Mont Ventoux en moins de 2h
Restrictions alimentaires : Vegetarien (oeufs et produits laitiers OK)
Poids : 72 kg
Taille : 178 cm
Entrainement : 5 seances/semaine, 15-20h/semaine
</athlete>
<consignes_format>
- 5 repas : petit-dejeuner, collation matin, dejeuner, collation apres-midi, diner
- Chaque repas : nom, ingredients avec quantites en grammes, calories, macros (P/G/L)
- Timing par rapport a l'entrainement
- Total calorique journalier en fin de plan
</consignes_format>
Noms descriptifs et personnalisés
Les noms de balises doivent décrire le contenu. Utilisez des noms spécifiques à votre cas d’usage plutôt que des noms génériques.
Générique (moins bon) :
<data>
Ventes Q1 2025...
</data>
Descriptif (meilleur) :
<ventes_trimestrielles>
Ventes Q1 2025...
</ventes_trimestrielles>
Autres exemples de noms descriptifs :
<historique_commandes>plutôt que<data><code_source>plutôt que<input><documentation_api>plutôt que<text><profil_utilisateur>plutôt que<info>
Quand utiliser des balises XML
Les balises XML sont particulièrement utiles dans ces situations :
1. Contexte volumineux
Quand le prompt contient beaucoup de données (logs, documents, base de connaissances), les balises permettent de séparer clairement les données des instructions.
<instructions>
Analyse ces logs serveur et identifie les erreurs critiques.
</instructions>
<logs_serveur>
[2025-03-15 14:23:01] ERROR: Connection timeout to database
[2025-03-15 14:23:02] INFO: Retrying connection...
[2025-03-15 14:23:05] ERROR: Max retries exceeded
...
</logs_serveur>
2. Types de contenu mixtes
Quand le prompt mélange du texte, du code, des données structurées et des instructions :
<instructions>
Corrige les bugs dans le code ci-dessous en respectant la documentation.
</instructions>
<code_source>
def calculate_price(quantity, unit_price):
return quantity * unit_price # TODO: ajouter la TVA
</code_source>
<documentation>
La TVA applicable est de 20% pour tous les produits.
Les prix doivent etre arrondis a 2 decimales.
</documentation>
3. Prompts avec plusieurs variables
Quand votre prompt template contient plusieurs variables dynamiques, les balises clarifient ce qui est une variable et ce qui est une instruction.
prompt = """<instructions>
Redige une fiche produit pour le catalogue.
</instructions>
<produit>
Nom : {nom_produit}
Categorie : {categorie}
Prix : {prix} EUR
</produit>
<specifications>
{specs_techniques}
</specifications>
<ton_editorial>
{ton}
</ton_editorial>"""
Balises imbriquées
Vous pouvez imbriquer des balises pour créer une hiérarchie :
<equipe>
<athlete>
<nom>Thomas Renard</nom>
<sport>Cyclisme</sport>
</athlete>
<athlete>
<nom>Sarah Cohen</nom>
<sport>Natation</sport>
</athlete>
</equipe>
L’imbrication utile s’arrête vite. Deux niveaux suffisent à exprimer « voici un ensemble, voici ses éléments » ; au-delà, la structure occupe des tokens et complique la lecture sans rien clarifier pour le modèle. Rappelez-vous l’objectif : séparer des zones, pas décrire un modèle de données. N’abusez donc pas de l’imbrication. Si votre structure XML ressemble à un fichier de configuration Spring, c’est probablement trop complexe. Gardez une profondeur de 1-2 niveaux maximum.
Points clés
- Les balises XML créent des frontières claires entre les parties d’un prompt
- Utilisez des noms descriptifs (
<ventes_q1>plutôt que<data>) - Cas d’usage principaux : contexte volumineux, contenu mixte, multiples variables
- Gardez la structure simple — 1-2 niveaux d’imbrication maximum
- Claude est spécifiquement entraîné pour bien interpréter les balises XML
- Combinez avec les techniques précédentes (clarté, spécificité) pour un impact maximal