TOON — это компактное кодирование модели данных JSON без потерь, созданное для промптов LLM. Оно использует отступы в стиле YAML для вложенных объектов и табличную раскладку в стиле CSV для однородных массивов — до 60% меньше токенов, чем в JSON.
Главное преимущество TOON: массивы однородных объектов сворачиваются в строку заголовка [N,]{fields}:, за которой следуют строки данных, разделённые запятыми — прямо как CSV, но с явной структурой.
Строки заключаются в кавычки только при необходимости — когда они похожи на число, логическое значение, null, содержат разделитель, имеют пробелы в начале/конце или пусты. Всё остальное записывается без кавычек.
TOON достигает 76% точности LLM против 75% у JSON в бенчмарках извлечения данных, используя при этом на ~40% меньше токенов. Лучше всего применять как слой перевода: оставляйте JSON для API, отправляйте TOON в LLM.
Вложенные объекты используют отступы вместо фигурных скобок. Каждая пара ключ-значение записывается как key: value, а вложенные объекты добавляют один уровень отступа (2 пробела по умолчанию).
Когда все объекты в массиве имеют одинаковые поля с примитивными значениями, TOON записывает заголовок [N,]{f1,f2,f3}:, за которым следует по одной строке с разделением запятыми на каждый объект. Это крупнейший источник экономии токенов.
Да. TOON кодирует те же объекты, массивы и примитивы, что и JSON. Вы можете пройти полный цикл JSON → TOON → JSON без потери данных. Типы сохраняются благодаря правилам кавычек TOON.
Используйте TOON, когда отправляете структурированные данные в LLM как контекст или ввод. Экономия токенов напрямую снижает стоимость API и позволяет уместить больше данных в контекстное окно. Оставляйте JSON для программных API, баз данных и везде, где требуется строгая совместимость.