# Faut-il écrire ses prompts en JSON ? Ce que disent vraiment la recherche et les éditeurs

> Le « JSON prompting » promet des réponses plus précises. Les études montrent qu'aucun format de consigne ne gagne partout, qu'imposer une sortie JSON peut dégrader le raisonnement, et que le JSON valide s'obtient autrement.

- Source : KLYNLABS (https://klynlabs.eu)
- URL : https://klynlabs.eu/articles/prompts-json-efficaces-ce-que-dit-la-recherche
- Auteur : Kelvyn
- Publié le : 13 septembre 2026 (2026-09-13T11:06:01.601Z)
- Rubrique : IA
- Sujets : Anthropic, OpenAI, IA générative, Prompt engineering, JSON, Sorties structurées
- Langue : français

Écrire ses consignes sous forme d'objet JSON n'améliore pas, en règle générale, les réponses d'un modèle de langage : les principales études sur le sujet, publiées en 2023 et 2024, montrent que le meilleur format de prompt change d'un modèle à l'autre, et ni Anthropic, ni OpenAI, ni Google ne recommandent le JSON pour rédiger une consigne. La technique, très partagée sur les réseaux sociaux, mélange pourtant deux questions qu'il faut séparer : le format de la consigne, et le format de la réponse.

## Qu'appelle-t-on « JSON prompting » ?

Le principe : au lieu d'une phrase, on remplit un gabarit où chaque paramètre occupe une clé, un peu comme un formulaire. La méthode est surtout populaire pour la génération d'images, où l'on détaille sujet, style, éclairage et cadrage, mais elle s'est étendue aux demandes de texte.

```json
{
  "role": "rédacteur technique",
  "tache": "résumer le rapport ci-joint",
  "public": "direction générale",
  "longueur": "150 mots",
  "ton": "factuel"
}
```

La même demande, en langage courant :

```text
Résume le rapport ci-dessous en 150 mots pour la direction générale,
qui n'a pas le temps de le lire. Ton factuel. Commence par la décision
à prendre, puis les deux chiffres qui la justifient.
```

Le gabarit a une vertu réelle : il oblige à se poser toutes les questions (public, longueur, ton). Mais c'est le fait d'avoir répondu à ces questions qui améliore la réponse, pas les accolades. La version rédigée en dit d'ailleurs davantage : pourquoi ce résumé existe, et par quoi il doit commencer.

## Le format de la consigne compte-t-il ?

Oui, et c'est justement le problème : il compte de façon imprévisible. En 2023, Melanie Sclar et ses coauteurs ont montré, dans un article présenté à la conférence ICLR 2024, que des [changements de mise en forme sans effet sur le sens](https://arxiv.org/abs/2310.11324) (séparateurs, espaces, majuscules) pouvaient faire varier l'exactitude de LLaMA-2-13B jusqu'à 76 points, et que le format le plus efficace pour un modèle ne l'était pas forcément pour un autre.

En novembre 2024, une équipe menée par Jia He a comparé [texte brut, Markdown, JSON et YAML](https://arxiv.org/abs/2411.10541) sur plusieurs modèles GPT d'OpenAI : selon le gabarit, les performances de GPT-3.5-turbo ont varié jusqu'à 40 % sur une tâche de traduction de code, tandis que GPT-4 se montrait plus stable. Les auteurs appellent à reconsidérer l'usage de gabarits figés, puisque le format peut peser nettement sur les résultats.

Aucune de ces études ne désigne le JSON comme un format supérieur. Elles disent l'inverse d'une recette universelle : le bon format dépend du modèle, et il se mesure.

## Que recommandent Anthropic, OpenAI et Google ?

- **Anthropic** conseille des [balises XML](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices) pour séparer instructions, contexte, exemples et données.
- **OpenAI** recommande dans son [guide de GPT-4.1](https://developers.openai.com/cookbook/examples/gpt4-1_prompting_guide) de commencer par le Markdown, note que le XML fonctionne bien, et décrit le JSON comme très bien compris, surtout pour du code, mais verbeux et alourdi par les caractères d'échappement. Lors de ses tests avec de nombreux documents dans un long contexte, le JSON s'est même montré particulièrement mauvais.
- **Google** préconise pour Gemini des [balises de style XML ou des titres Markdown](https://ai.google.dev/gemini-api/docs/prompting-strategies), avec un seul format par prompt. Pour une réponse en JSON au schéma complexe, il oriente vers sa fonction de sortie structurée plutôt que vers le prompt.

Anthropic ajoute, dans un [article sur l'ingénierie du contexte](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents) publié le 29 septembre 2025, que la mise en forme exacte des prompts devient probablement moins importante à mesure que les modèles progressent.

## Imposer une réponse en JSON peut-il nuire ?

C'est la question la plus importante, et la réponse est oui dans certains cas. En août 2024, l'étude « [Let Me Speak Freely?](https://arxiv.org/abs/2408.02442) » de Zhi Rui Tam et ses coauteurs a observé un net recul des capacités de raisonnement des modèles quand on leur impose un format de sortie structuré, et un recul d'autant plus marqué que la contrainte est stricte.

Le détail de l'étude livre une explication concrète : sur l'une des tâches, 100 % des réponses de GPT-3.5 Turbo en mode JSON plaçaient la clé « answer » avant la clé « reason ». Le modèle répondait donc avant d'avoir raisonné. Les auteurs soulignent l'importance de l'ordre des clés, et la parade est simple : mettre le raisonnement en premier, d'autant que les sorties structurées d'OpenAI [respectent l'ordre des clés du schéma](https://developers.openai.com/api/docs/guides/structured-outputs) :

```json
{
  "type": "object",
  "properties": {
    "raisonnement": { "type": "string" },
    "reponse": { "type": "string" }
  },
  "required": ["raisonnement", "reponse"],
  "additionalProperties": false
}
```

Avec un modèle de raisonnement, qui réfléchit en interne avant d'écrire, ce champ est souvent superflu. Pour les tâches qui demandent une vraie réflexion avec un modèle classique, une autre option consiste à séparer les étapes : laisser le modèle raisonner librement, puis lui faire convertir sa conclusion en JSON dans un second appel.

## Comment obtenir un JSON valide à coup sûr ?

Pas en le demandant poliment dans le prompt, mais avec les sorties structurées que proposent les API. Le modèle y est contraint, au moment de générer chaque jeton, de respecter un schéma fourni par le développeur. OpenAI a lancé la fonction le 6 août 2024 et indiquait alors, sur [ses propres évaluations](https://openai.com/index/introducing-structured-outputs-in-the-api/), un respect du schéma de 100 % pour gpt-4o-2024-08-06, contre moins de 40 % pour gpt-4-0613 guidé par le seul prompt. Sa documentation distingue bien le simple « mode JSON », qui garantit un JSON valide, des sorties structurées, qui garantissent aussi le respect du schéma.

Anthropic propose l'équivalent : ses [sorties structurées](https://platform.claude.com/docs/en/build-with-claude/structured-outputs), lancées en bêta le 14 novembre 2025 et disponibles hors bêta sur l'API Claude depuis le 29 janvier 2026, reposent aussi sur un décodage contraint. L'ancienne astuce qui consistait à pré-remplir la réponse avec une accolade ouvrante n'est plus acceptée par les modèles Claude depuis la version 4.6.

## Et contre l'injection de prompt ?

Envelopper un texte suspect dans du JSON ou des délimiteurs ne suffit pas à neutraliser les instructions qu'il contient : Simon Willison l'expliquait dès [mai 2023](https://simonwillison.net/2023/May/11/delimiters-wont-save-you/), et l'[OWASP](https://genai.owasp.org/llmrisk/llm01-prompt-injection/) juge incertaine l'existence d'une protection infaillible. Nuance utile : Anthropic [recommande bien d'encoder en JSON](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/mitigate-jailbreaks) les contenus externes, car l'échappement empêche un attaquant de fermer une balise ou des guillemets pour sortir de son bloc. Mais l'éditeur présente cette mesure comme une couche parmi d'autres, aux côtés du moindre privilège et du filtrage des contenus.

## Alors, JSON ou pas ?

- **Oui pour la sortie**, quand un programme doit la lire, à condition de passer par les sorties structurées de l'API et de placer le raisonnement avant la réponse.
- **Oui pour transmettre des données** déjà structurées (une fiche produit, un enregistrement) ou des contenus externes à isoler.
- **Oui, éventuellement, pour les gabarits paramétrables**, comme en génération d'images, si l'outil les exploite bien. Testez.
- **Non pour rédiger la consigne elle-même** : du texte clair, découpé en balises XML ou en titres Markdown, fait au moins aussi bien, selon les trois éditeurs.
- **Non pour empiler de longs documents** : OpenAI a obtenu de nettement meilleurs résultats avec des balises XML qu'avec du JSON.

Pour les autres techniques qui ont fait leurs preuves, et celles qui sont devenues inutiles, voir notre [guide complet du prompt engineering en 2026](https://klynlabs.eu/articles/guide-prompt-engineering-2026-techniques-qui-marchent-encore).

## À retenir

- Les études de référence sur le format des prompts, publiées en 2023 et 2024, ne désignent pas le JSON comme un format supérieur au texte, au Markdown ou au XML : le meilleur format varie selon le modèle.
- Une étude de 2024 a mesuré jusqu'à 40 % d'écart de performance pour GPT-3.5-turbo selon que la consigne était en texte brut, Markdown, JSON ou YAML, et le meilleur format varie selon le modèle.
- Anthropic recommande les balises XML, OpenAI le Markdown et le XML, Google les balises de style XML ou le Markdown ; aucun des trois ne préconise le JSON pour écrire une consigne.
- L'étude « Let Me Speak Freely? » (2024) a observé que forcer un format de sortie structuré dégrade le raisonnement des modèles, surtout quand la réponse précède le raisonnement dans le schéma.
- Pour obtenir un JSON conforme à un schéma, les sorties structurées d'OpenAI et d'Anthropic, fondées sur le décodage contraint, sont plus fiables qu'une consigne dans le prompt.

## Sources

- Sclar et al., [« Quantifying Language Models' Sensitivity to Spurious Features in Prompt Design »](https://arxiv.org/abs/2310.11324), 2023.
- He et al., [« Does Prompt Formatting Have Any Impact on LLM Performance? »](https://arxiv.org/abs/2411.10541), novembre 2024.
- Tam et al., [« Let Me Speak Freely? »](https://arxiv.org/abs/2408.02442), août 2024.
- Anthropic, [Prompting best practices](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices), [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs), [mitigate jailbreaks and prompt injections](https://platform.claude.com/docs/en/test-and-evaluate/strengthen-guardrails/mitigate-jailbreaks), [« Effective context engineering for AI agents »](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents).
- OpenAI, [guide de GPT-4.1](https://developers.openai.com/cookbook/examples/gpt4-1_prompting_guide), [documentation des sorties structurées](https://developers.openai.com/api/docs/guides/structured-outputs), [annonce des sorties structurées](https://openai.com/index/introducing-structured-outputs-in-the-api/) (6 août 2024).
- Google, [stratégies de conception des prompts pour Gemini](https://ai.google.dev/gemini-api/docs/prompting-strategies).
- OWASP, [LLM01:2025 Prompt Injection](https://genai.owasp.org/llmrisk/llm01-prompt-injection/) ; Simon Willison, [« Delimiters won't save you from prompt injection »](https://simonwillison.net/2023/May/11/delimiters-wont-save-you/), 11 mai 2023.

---

Article publié par KLYNLABS, signé Kelvyn. À citer avec son lien : https://klynlabs.eu/articles/prompts-json-efficaces-ce-que-dit-la-recherche