TOON: компактный формат данных для LLM, когда JSON становится слишком «дорогим»

06.02.26

Интеграция - Нейросети

TOON (Token Oriented Object Notation) — практичный текстовый формат, который сохраняет структуру «объект/массив/поля», но уплотняет представление, уменьшая долю служебного синтаксиса и повторов. Он особенно полезен, когда нужно передать модели много однотипных строк: каталоги, логи, выборки, транзакции, табличные справочники.

Большие языковые модели (LLM) работают с текстом через токены и имеют ограничение по размеру контекста. Поэтому в прикладных задачах часто упираешься не в «умность» модели, а в банальную вместимость: сколько фактов ты успел передать в запросе, прежде чем закончился лимит. На этом фоне привычный JSON внезапно оказывается не лучшей упаковкой: он удобен для машин, но слишком многословен для промпта.

TOON (Token Oriented Object Notation) — практичный текстовый формат, который сохраняет структуру «объект/массив/поля», но уплотняет представление, уменьшая долю служебного синтаксиса и повторов. Он особенно полезен, когда нужно передать модели много однотипных строк: каталоги, логи, выборки, транзакции, табличные справочники.


1) Почему JSON в промпте часто проигрывает

Главная причина — повтор ключей. В JSON массив объектов выглядит так, что в каждой строке снова и снова повторяются одинаковые имена полей. Это отлично для универсального парсинга, но в промпте повторяющиеся ключи не добавляют новой смысловой информации, занимая место, которое могло бы уйти на дополнительные строки данных.

Вторая причина — высокая «пунктуационная плотность». Кавычки, фигурные и квадратные скобки, двоеточия, запятые — всё это неизбежно. В сумме получается, что вы передаёте модели много структуры, но сравнительно мало фактов.

Третья причина — сложность смешивать «правила» и «данные». В реальном промпте вам почти всегда нужно: (а) описать задачу, формат ответа и ограничения, (б) дать данные. В JSON это часто превращается в большой мешок из вложенных объектов, который неудобно читать и отлаживать глазами.


2) Идея TOON: схема отдельно, значения отдельно

TOON делает ставку на простой принцип: если у вас массив однотипных объектов, то имена полей можно объявить один раз, а дальше передавать значения строками, как таблицу. При этом формат остаётся структурированным: можно описывать вложенные объекты, массивы, метаданные и параметры задачи.

Ниже — базовые конструкции, которых обычно достаточно для большинства сценариев:

  • Скаляр: ключ: значение

  • Объект: ключ: и далее блок с отступом

  • Простой массив: ключ[N]: v1,v2,v3

  • Табличный массив: ключ[N]{поле1,поле2,...}: и далее N строк значений

 

Минипример «табличного массива»:

employees[3]{name,age,city}: 
Иванов,30,Москва 
Петров,25,Казань 
Сидоров,35,Сочи

Именно табличный режим даёт основной выигрыш: ключи вынесены в заголовок и не повторяются в каждой строке.

 

Тот же массив в JSON:

[ 
{"name":"Иванов","age":30,"city":"Москва"}, 
{"name":"Петров","age":25,"city":"Казань"}, 
{"name":"Сидоров","age":35,"city":"Сочи"} 
]

 

Смысл тот же, но «лишнее» (повтор ключей, кавычки вокруг ключей) исчезает.

 

«Инструкция + данные» в одном формате

Практически всегда полезно держать рядом правила и входные строки. TOON делает это естественно:

request:
  task: "Сравни варианты и дай рекомендацию"
  output:
    format: "markdown"
    sections[4]: "Кратко","Плюсы","Минусы","Риски"
    style: "деловой, без воды"
  constraints:
    budget_rub: 150000
    region: "RU"
  items[4]{id,title,price,category}:
    A1,"Сервер",450000,hardware
    B2,"Лицензия 1С",85000,software
    C3,"Поддержка",120000,services
    D4,"Калибр",19900,tooling

Вверху — управляющая часть промпта, ниже — таблица сущностей. Это легко читать глазами, удобно логировать и просто расширять новыми блоками.

 

Логи и события

Логи — идеальный кандидат: одинаковая схема, много строк.


audit[6]{ts,level,actor,action,entity}: 
2026-02-06T09:01:12,INFO,web,login,user:124 
2026-02-06T09:03:40,WARN,web,rate_limit,ip:10.0.0.5 
2026-02-06T09:05:10,INFO,svc,update,order:771 
2026-02-06T09:06:11,ERROR,svc,timeout,endpoint:/pay 
2026-02-06T09:07:02,INFO,web,logout,user:124 
2026-02-06T09:07:30,INFO,svc,retry,endpoint:/pay

 

 

Дальше достаточно одной строки инструкции: «Найди причины ошибок, сгруппируй по action, предложи меры».

 

Неоднородные структуры (когда «таблица» уже не честная)

Если элементы массива реально разные, не надо насильно загонять их в таблицу. TOON допускает «список объектов» с отступами:

offers[3]:
  -
    id: A1
    price: 450000
    delivery_days: 14
  -
    id: B2
    price: 85000
    discount: 0.1
  -
    id: C3
    price: 120000
    notes: "Можно помесячно"

 

 

Практическое правило: однородность — табличный массив, неоднородность — список объектов.


4) Практика: типы, кавычки, разделители и «профиль формата»

Чтобы TOON работал устойчиво, важно один раз договориться о «профиле» — наборе правил, по которым формат пишется и читается.

 

Типы (рекомендуемая договорённость)

Обычно удобно поддержать простые литералы:

  • true / false — булево

  • null — пустое значение

  • числа — с точкой в дробной части: 123, -10, 45.67

  • даты/время — ISO вид: 2026-02-06, 2026-02-06T14:30:00

Главное — не оставлять это «на авось». Если один источник пишет 12,5, а другой ждёт 12.5, ошибки будут системными.

 

Разделитель

Чаще всего это запятая, но иногда удобнее ;, если у вас много текстовых полей с запятыми. Важно: разделитель должен быть один и тот же во всех табличных блоках.

 

Кавычки и экранирование

Это самая частая точка поломки. Минимальное правило:

  • Если значение содержит разделитель, кавычку или перевод строки — оно должно быть в кавычках.

  • Внутренние кавычки экранируются (например, удвоением "").

Пример:


 products[2]{sku,title,comment}:
  A1,"Кабель, 2 м","Подходит для ""старых"" устройств"
  B2,"Блок питания","Без комментариев"

 

Если эти правила не зафиксировать, данные станут неоднозначными: парсер не поймёт, где колонка, а где часть текста.

 

Схема и порядок полей

В табличном массиве порядок полей — часть контракта. Менять поля «на лету» нельзя: либо начинайте новый блок с новой схемой, либо переходите на неоднородный список объектов.


5) Где TOON выигрывает сильнее всего (и где может не подойти)

Лучшие сценарии

  • Большие справочники и выборки: много строк, одна схема.

  • Логи, события, трейсинг: структурированные записи.

  • Классификация/ранжирование: матрицы признаков, сравнительные таблицы.

  • Смешанные промпты: «правила + таблица данных + дополнительные таблицы».

В этих задачах TOON обычно позволяет уместить заметно больше строк данных в тот же лимит контекста. Иногда это напрямую улучшает качество ответа: меньше «угадываний», больше фактов.

 

Когда стоит подумать дважды

  • Много многострочных текстов в ячейках (письма, описания с абзацами).

  • Сильно вложенные, неоднородные структуры, где почти каждый элемент имеет уникальный набор полей.

  • Требование строгой совместимости с чужими системами и готовыми библиотеками (там JSON всё ещё вне конкуренции).

TOON — инструмент упаковки для промпта, а не религия. Его удобно использовать как промежуточный формат: «данные → TOON → LLM», а дальше при необходимости возвращаться в JSON для API, валидаторов и контрактов.

Вступайте в нашу телеграмм-группу Инфостарт

LLM TOON

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    57527    116    32    

126

Нейросети Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Расширение "Искусственный интеллект и нейросети в 1С: Работа с отзывами маркетплейсов" предназначено для применения искусственного интеллекта в повседневной деятельности селлеров на маркетплейсах. Среди функций - работа с отзывами, вопросами и чатами покупателей, диалог с нейросетями, генерация картинок, заполнение описаний номенклатуры и другое.

6100 руб.

03.04.2024    15727    8    0    

12

Нейросети Программист Бесплатно (free)

За десять дней после релиза OneBase получила полноценные управляемые формы, локализацию интерфейса на 14 языков, точную денежную арифметику на decimal, систему ролей и прав, новый REST API и набор CLI-инструментов для разработки совместно с ИИ. Разбираю ключевые изменения платформы, показываю новые возможности и делюсь результатами одной из самых насыщенных недель развития проекта.

05.06.2026    671    Ibrogim    25    

12

Нейросети Обновление 1С Бесплатно (free)

Когда доработанную 1С не обновляли годами, начинать приходится не с переноса кода, а с разбора того, что вообще накопилось в базе. Там могут быть десятки обработок, расширения, правки типовых объектов, а документации либо нет, либо она давно не актуальна. На примере реального обновления разбираем, как кодовые агенты, MCP-серверы и языковые модели помогают навести порядок в доработках, собрать план миграции, понять, где при переносе будут проблемы, и автоматизировать часть исправлений.

05.06.2026    1876    wonderboy    2    

16

Нейросети Программист Бесплатно (free)

ИИ сделал внешнюю обработку за 19 минут, собрал EPF без входа в Конфигуратор, и она заработала с первого раза! Да, звучит как кликбейт, но это был живой стрим, а не вылизанное демо. В статье показываю стенды, замеры, скиллы, MCP и честные ограничения — чтобы скептики спорили не лозунгами, а своими примерами.

04.06.2026    2752    top_1c    158    

48

Нейросети Программист Бесплатно (free)

Расскажем, как создать ИИ-помощника внутри 1С без Python и другого внешнего кода – только на базе 1С, HTTP-запросов и необходимой инфраструктуры. Разберем универсальный шаблон RAG-системы, который можно адаптировать под разные задачи: от поддержки пользователей и поиска по базе знаний до работы с регламентами и инструкциями. На живом примере соберем минимальный рабочий прототип помощника, который умеет работать с данными, искать релевантный контекст и формировать ответы. Отдельно объясним, почему самым сложным этапом оказывается не архитектура, а качество подготовки данных и чанкинг.

04.06.2026    655    Palk    3    

6

Нейросети Программист Бесплатно (free)

Набор локальных skills для ИИ-агентов под 1С: XML-исходники, EPF/ERF, формы, роли, веб-публикация и test bridge — HTTP-расширение для проверки тестовых баз без COM и UI.

02.06.2026    3692    Aleksandr    60    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 4239 06.02.26 15:43 Сейчас в теме
вот этой ссылочки не хватает: https://github.com/toon-format/toon
Somebody1; shapa_pro; +2 Ответить
2. shapa_pro 78 06.02.26 15:48 Сейчас в теме
3. Somebody1 68 06.02.26 15:51 Сейчас в теме
Мешает чтению статьи обилие заголовков и воды. Она была написана с явным использованием ИИ.
4. shapa_pro 78 06.02.26 15:53 Сейчас в теме
(3) Заголовки отделяют части текста друг от друга, что вы считаете водой, наоборот минимум текста максимум примеров.
5. RocKeR_13 1479 06.02.26 16:20 Сейчас в теме
Ммм, переизобрели CSV?)
6. dsdred 4239 06.02.26 16:23 Сейчас в теме
(5) Нет. Внимательнее посмотрите на формат.

CSV - это плоская таблица.
TOON - это сложная структура.

Пример JSON:
{
  "status": "success",
  "data": [
    {
      "id": 1,
      "name": "Product A",
      "price": 29.99
    },
    {
      "id": 2,
      "name": "Product B",
      "price": 49.99
    },
    {
      "id": 3,
      "name": "Product C",
      "price": 19.99
    }
  ],
  "metadata": {
    "total": 3,
    "page": 1,
    "limit": 10
  }
}
Показать


CSV такой не скушает

А TOON вот так сделает:
status: success
data[3]{id,name,price}:
  1,Product A,29.99
  2,Product B,49.99
  3,Product C,19.99
metadata:
  total: 3
  page: 1
  limit: 10
Показать
7. RocKeR_13 1479 06.02.26 16:25 Сейчас в теме
(6) Да, увидел уже) Акцент на массивы был, а самому интересному один абзац уделили
8. dsdred 4239 06.02.26 16:27 Сейчас в теме
9. RocKeR_13 1479 06.02.26 16:30 Сейчас в теме
(8) Да пока практического интереса нет: времени хватает только на текущие задачи) А там не до ИИ...
Для отправки сообщения требуется регистрация/авторизация