Перевести обычный запрос на человеческом языке в корректный график — задача не такая простая, как кажется. Данные большие и разнородные, код нередко падает, а хороший график почти всегда требует нескольких итераций правок. Исследователи из Google предлагают смотреть на задачу не как на одноразовую генерацию кода LLM, а как на слаженную работу мультиагентной системы, где каждая роль делает своё дело и передаёт эстафету дальше.

Качественное сравнение визуализаций, созданных базовыми методами и CoDA: CoDA лучше держит сложные сценарии и эстетику
Качественное сравнение визуализаций, созданных базовыми методами и CoDA: CoDA лучше держит сложные сценарии и эстетику

Что придумали авторы

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

Обзор фреймворка: Понимание → Планирование → Генерация → Саморефлексия
Обзор фреймворка: Понимание → Планирование → Генерация → Саморефлексия

Как это работает на практике

  • Понимание. Агент вычленяет намерение запроса, формирует глобальный список дел и критерии успеха. Параллельно собирается снимок метаданных: схемы таблиц, базовые статистики, возможные проблемы качества.

  • Планирование. Другой агент сопоставляет смысл запроса с типом диаграммы, осями, цветом, агрегациями и трансформациями. Поисковый агент подтягивает релевантные примеры кода (например, из галереи Matplotlib), а дизайнер задаёт палитру, компоновку и читабельность.

  • Генерация. Пишется исполнимый Python‑код с проверками, затем запускается и автоматически отлаживается.

  • Саморефлексия. Отдельный «визуальный экзаменатор» анализирует готовую картинку: правильно ли соответствуют данные запросу, корректна ли математика, всё ли читаемо и аккуратно. Если нет, генерируются конкретные правки, и цикл повторяется до порога качества или лимита итераций.

Чем это лучше прежних подходов

Ранее многие системы опирались на правила. На сложных, многофайловых данных такие подходы упираются в токены и часто путаются в неоднозначностях. CoDA делит задачу на роли, использует метаданные, жёстко проверяет картинку и умеет осознанно «откатываться» к нужному месту в конвейере: ошибка синтаксиса — к отладчику, проблема ясности — к дизайнеру, несоответствие смыслу — к планировщику.

Что показали эксперименты

На MatplotBench CoDA достигает EPR 99.0, VSR 79.8 и итоговый OS 79.5, заметно обгоняя альтернативы (лучший бейзлайн по OS — 55.0). На наборе Qwen Code Interpreter (vis) — OS 89.0 против 81.6 у ближайшего конкурента. Прирост общего балла достигает до 41.5% над сильными методами в зависимости от сравнения и набора. В реальных задачах DA-Code, где нужно жить в чужих репозиториях и соблюдать ограничения домена, CoDA показывает OS 39.0% и выигрывает у лучшего бейзлайна почти на 20 пунктов. При смене бэкенд‑LLM система держит стабильность: падение OS ограничивается несколькими процентами — признак того, что архитектура компенсирует слабости модели за счёт кооперации и метаданных.

Почему это работает

Три фактора вносят наибольший вклад:

  • итеративная саморефлексия по изображению;

  • глобальный TODO, который удерживает фокус и полноту решения;

  • поисковый агент примеров, снижающий синтаксические ошибки на нетривиальных графиках.

Как число итераций влияет на качество: быстрый рост к 3 итерациям и дальше убывающая отдача
Как число итераций влияет на качество: быстрый рост к 3 итерациям и дальше убывающая отдача
Важность глобального TODO: без него падает полнота и итоговый балл
Важность глобального TODO: без него падает полнота и итоговый балл
Роль поискового агента: удаление снижает надёжность кода и метрики
Роль поискового агента: удаление снижает надёжность кода и метрики

Мини‑кейсы из приложения

Система корректно восстанавливает метрики, которых нет в данных напрямую. В примере с NBA «общие очки за сезон» собираются агрегацией по игрокам и годам; итоговый график совпадает с эталоном.

Результат CoDA
Результат CoDA
Эталонная разметка
Эталонная разметка

А в кейсе по Steam CoDA стандартизирует показатели, считает корреляцию Пирсона и строит читаемый scatter с настройками из файла конфигурации — снова полное совпадение с целевым образом.

Результат CoDA
Результат CoDA
Эталонная разметка
Эталонная разметка

Практические издержки

Да, такая координация стоит вычислительных ресурсов: больше токенов и вызовов к LLM по сравнению с очень простыми конвейерами. Однако CoDA оказалась экономнее схожих «толстых» одноагентных решений и при этом дала ощутимый рост качества на сложных сценариях. Оптимизация — в планах авторов: дистилляция ролей и мультимодальные входы для более дешёвой и широкой практики.

Куда это ведёт

Авторская мысль звучит чётко: будущее автоматизации визуализаций — не в изолированной генерации кода, а в интегрированных агентных рабочих процессах. Когда система понимает данные, умеет сомневаться и исправляться, она становится ближе к тому, как работает живой аналитик.

📜 Полная статья

***

Если вам интересна тема ИИ, подписывайтесь на мой Telegram‑канал — там я регулярно делюсь инсайтами по внедрению ИИ в бизнес, запуску ИИ-стартапов и объясняю, как работают все эти ИИ-чудеса.