TOON est un encodage compact et sans perte du modèle de données JSON conçu pour les prompts LLM. Il utilise une indentation de style YAML pour les objets imbriqués et une disposition tabulaire de style CSV pour les tableaux uniformes — jusqu'à 60 % de tokens en moins que JSON.
Le plus grand atout de TOON : les tableaux d'objets uniformes se condensent en une ligne d'en-tête [N,]{fields}: suivie de lignes de données séparées par des virgules — tout comme CSV mais avec une structure explicite.
Les chaînes ne sont mises entre guillemets que lorsque c'est nécessaire — lorsqu'elles ressemblent à un nombre, un booléen, un null, contiennent le délimiteur, ont des espaces en début/fin, ou sont vides. Tout le reste est écrit sans guillemets.
TOON atteint 76 % de précision LLM contre 75 % pour JSON sur les benchmarks de récupération de données, tout en utilisant ~40 % de tokens en moins. À utiliser de préférence comme couche de traduction : gardez JSON pour les API, envoyez TOON aux LLMs.
Les objets imbriqués utilisent l'indentation au lieu des accolades. Chaque paire clé-valeur est écrite sous la forme key: value, et les objets imbriqués ajoutent un niveau d'indentation (2 espaces par défaut).
Lorsque tous les objets d'un tableau partagent les mêmes champs à valeurs primitives, TOON écrit un en-tête [N,]{f1,f2,f3}: suivi d'une ligne séparée par des virgules par objet. C'est la plus grande source d'économies de tokens.
Oui. TOON encode les mêmes objets, tableaux et primitives que JSON. Vous pouvez faire un aller-retour JSON → TOON → JSON sans aucune perte de données. Les types sont préservés grâce aux règles de guillemets de TOON.
Utilisez TOON pour envoyer des données structurées à un LLM comme contexte ou entrée. Les économies de tokens réduisent directement le coût de l'API et permettent de faire tenir plus de données dans la fenêtre de contexte. Gardez JSON pour les API programmatiques, les bases de données et partout où une interopérabilité stricte est requise.