Проблема стоимости токенов в JSON
Большие языковые модели (LLM) тарифицируют работу в токенах, а не символах. Стандартный формат JSON требует дублирования имен полей, кавычек и скобок для каждого значения, что приводит к значительному перерасходу контекстного окна. Новый формат ANAL (Agent Notation, Actually Lean) решает эту проблему, объявляя имена полей один раз в заголовке, а затем передавая только сами значения. Это позволяет экономить ресурсы без необходимости переобучения моделей — формат просто лучше совпадает с токенизатором.
Синтаксис и структура данных
ANAL поддерживает три основных типа структур, оптимизированных для плоских данных:
- @table: список плоских объектов, где каждая строка разделена символом
|. Имена полей задаются в заголовке. - @obj: одиночный плоский объект с ключами в заголовке.
- @list: плоский список скалярных значений, каждое с новой строки.
Булевы значения кодируются как T и F, null — как N. Строки передаются «как есть», если они не содержат специальных символов (например, |, \, `), в противном случае они оборачиваются в обратные кавычки.
Сравнение эффективности: JSON vs ANAL
Бенчмарки, проведенные с использованием токенизатора cl100k_base (стандарт для GPT-4), показывают существенное сокращение объема данных. Для одного и того же набора данных ANAL требует меньше токенов, чем JSON и альтернативный формат TOON.
| Формат | Символы (chars) | Токены |
|---|---|---|
| JSON | 133 | 61 |
| TOON | 81 | 38 |
| ANAL | 63 | 35 |
Интеграция с AI-агентами
Формат разработан с упором на удобство для разработчиков AI-агентов. Доступны инструменты для Go, Python и CLI. Особое внимание уделено интеграции с популярными coding-агентами:
- Codex и Claude Code: через команду
anal installагенты получают «навык» (skill) для автоматического сжатия больших структурированных данных. - Python-хелперы: утилиты
analctl.pyпозволяют конвертировать JSON в ANAL и обратно, а также измерять экономию токенов черезdiff.
Ограничения и перспективы
В версии 1.0 формат не поддерживает вложенные объекты и массивы — для таких случаев рекомендуется использовать JSON. Однако для плоских структур данных (например, списки товаров, результаты запросов к БД, конфигурации) ANAL предлагает мгновенную экономию контекста. Проект распространяется под лицензией MIT и доступен в репозитории GitHub.
Источник: Github ↗
