Aller au contenu principal
Leçon 20 sur 67 · Claude sur Amazon Bedrock

Structurer avec des balises XML

Leçon 20 sur 67 Mis à jour le 5 novembre 2026 Développeur
Sur cette page
  1. Pourquoi la structure compte
  2. Des noms libres et parlants
  3. Un exemple concret
  4. Sur le plan de repas
  5. Les longs documents
  6. Quand baliser
  7. À vous de jouer
  8. Points clés à retenir

Troisième technique : la structure. Quand un prompt contient beaucoup de contenu, Claude peut avoir du mal à savoir quelles parties vont ensemble et ce que chacune représente. Où finissent les consignes, où commencent les données ? Les balises XML ajoutent de la structure et de la clarté, surtout quand vous insérez de grandes quantités de texte dans un prompt.

Pourquoi la structure compte

Imaginez un prompt qui demande d’analyser vingt pages de relevés de ventes. Sans frontières nettes, Claude risque de confondre vos consignes avec les données : lire une ligne du rapport comme une instruction, ou manquer une consigne noyée dans les chiffres. L’erreur ne se voit pas : la réponse paraît plausible, elle repose simplement sur une lecture faussée du prompt. En encadrant les relevés avec des balises, vous séparez nettement les parties :

<releves_ventes>
{sales_records}
</releves_ventes>

Des noms libres et parlants

Les noms de balises ne suivent aucune spécification XML officielle : vous les inventez. Préférez des noms descriptifs, <releves_ventes> plutôt que <data>. La documentation d’Anthropic ajoute deux conseils : gardez les mêmes noms d’un prompt à l’autre, et imbriquez les balises quand le contenu a une hiérarchie naturelle, par exemple des documents dans <documents>, chacun dans un <document>.

Un exemple concret

Pour faire corriger du code, il faut distinguer le code fautif de la documentation qui doit guider la correction. Sans balises, les deux se ressemblent : du Python sur du Python. Avec balises :

<mon_code>
from datavortex import Pipeline, DataSource

def process_data(input_file, output_file):
    pipeline = Pipeline()
    source = DataSource.from_csv(input_file)
</mon_code>

<documentation>
# Créer une source de données avec Data Vortex
csv_source = DataSource.from_csv("data.csv")
</documentation>

Claude distingue immédiatement ce qu’il doit corriger de ce qui doit le guider. Sans les balises, rien ne l’empêchait de « corriger » la documentation, ou de citer votre code fautif comme référence.

L'ordre d'un long prompt Quatre étapes : les documents en tête, chacun dans sa balise avec ses métadonnées, puis les consignes, puis les exemples balisés, et la question à la fin. BALISES XML L'ordre d'un long prompt 1 Documents en tête, chacun dans sa balise 2 Consignes ce qu'il faut faire 3 Exemples balisés eux aussi 4 Question à la fin du prompt Selon Anthropic, une question placée à la fin améliore les réponses jusqu'à 30 % sur de longs documents.
D'après la documentation Claude (Prompting best practices) et la leçon « Structure with XML tags » (Claude Academy, Claude with Amazon Bedrock).

Sur le plan de repas

Même avec peu de contenu, les balises clarifient le prompt de la leçon 19 :

def run_prompt(prompt_inputs):
    prompt = f"""
Génère le plan de repas d'une journée pour un athlète, en respectant ses restrictions alimentaires.

<informations_athlete>
- Taille : {prompt_inputs["height"]}
- Poids : {prompt_inputs["weight"]}
- Objectif : {prompt_inputs["goal"]}
- Restrictions alimentaires : {prompt_inputs["restrictions"]}
</informations_athlete>

Consignes :
1. Donne le total calorique exact de la journée.
2. Indique les quantités de protéines, de lipides et de glucides.
3. Précise l'heure de chaque repas.
4. N'utilise que des aliments compatibles avec les restrictions.
5. Donne toutes les portions en grammes.
6. Reste économique si c'est demandé.
"""
    messages = []
    add_user_message(messages, prompt)
    return chat(messages)

Claude sait que ce bloc contient des informations externes sur l’athlète, qui orientent le plan sans se confondre avec les consignes. C’est d’autant plus utile que ces valeurs viennent de l’utilisateur final. Les balises réduisent les confusions, mais elles ne protègent pas contre l’injection de prompt : un texte malveillant peut contenir lui-même des balises. Gardez vos contrôles applicatifs.

Les longs documents

Pour les prompts qui contiennent de longs documents, au-delà d’environ 20 000 tokens, la documentation d’Anthropic donne deux règles. Placez les documents en haut du prompt, avant la question, les consignes et les exemples : dans ses tests, une question placée à la fin améliore la qualité des réponses jusqu’à 30 %, surtout avec plusieurs documents complexes. Et décrivez chaque document par des balises, avec son contenu et ses métadonnées :

<documents>
  <document index="1">
    <source>rapport_annuel_2025.pdf</source>
    <document_content>
      {RAPPORT_ANNUEL}
    </document_content>
  </document>
</documents>

Quand baliser

  • Vous insérez beaucoup de contexte ou de données.
  • Le prompt mêle plusieurs types de contenu distincts.
  • Vous voulez des frontières évidentes entre les sections.
  • Le contenu inséré pourrait être confondu avec vos consignes.

Soyons honnêtes sur la portée : sur un prompt court, le gain est modeste, et une question d’une ligne n’a pas besoin de conteneurs. Le bénéfice grandit avec la taille du prompt. Et un prompt balisé se relit et se maintient bien plus facilement qu’un mur de texte.

À vous de jouer

Baliser un vrai prompt. Prenez un de vos prompts qui insère des données, un document, un courriel ou une saisie utilisateur. Encadrez chaque type de contenu par une balise parlante, placez les données longues en tête et la demande à la fin, puis évaluez les deux versions.

Sources officielles : Structure with XML tags (Claude Academy) · Prompting best practices (documentation Claude)

Points clés à retenir

  • Sans délimiteurs, Claude peut confondre consignes et données, et l’erreur ne se voit pas.
  • Des noms de balises libres, parlants et constants ; imbriquez-les quand le contenu a une hiérarchie.
  • Balisez en priorité le contenu inséré : documents, saisies, données.
  • Longs documents en tête, question à la fin, chaque document dans sa balise avec ses métadonnées.
  • Les balises clarifient le prompt ; elles ne remplacent pas vos contrôles contre l’injection.