Безопасный отказ: констрейнтед фреймворк для верифицируемой генерации веб-скрейперов агентами
Проблема: когда ИИ-модели генерируют веб-скрейперы напрямую из естественного языка, они часто делают ошибки, неправильные зависимости, сломанные CSS-селекторы, несоответствие схем данных, проблемы с разнообразием структур веб-страниц.
Решение: вместо того чтобы позволять моделям писать произвольный код, исследователи предложили констрейнтед фреймворк. Он заставляет агента выдавать типизированные JSON-конфигурации, используя: • Таксономию из шести типов коллекторов • Констрейнты на шаблоны и утилиты • Статическое выполнение через Apache Airflow DAG (без динамического кода) • Проверку качества по явным правилам • Структурированную обратную связь для корректировки
Результаты: на 138 задачах показано, что таксономия хорошо типизирует требования; на 80 независимо проверенных задачах фреймворк работает вообще без ЛЛМ-токенов на этапе выполнения и показывает самое низкое среднее время обработки. Фреймворк меняет однократное качество на переиспользуемость, детерминированность и верифицируемость для повторяющихся сборок данных.
Ключевые факты
- Вместо генерации свободного кода ИИ выдаёт типизированные JSON-конфигурации, это повышает надёжность
- На 80 проверенных задачах система работала без ошибок выполнения и показала минимальное время обработки
- Подход избегает ошибок типа broken selectors и schema mismatches благодаря статическому выполнению и проверке по правилам
- Фреймворк переиспользуем для повторяющихся сборок данных из сети, снижает стоимость обслуживания
Почему это важно
Генерация веб-скрейперов от ИИ, нужная задача: огромный объём данных, стандартные паттерны, естественный интерфейс. Но прямая генерация ненадежна. Текущие подходы производят хрупкий код с ошибками зависимостей, неправильными селекторами, несоответствием схем. Это требует постоянного вмешательства человека. Предложенный подход резко повышает надёжность, переводя генерацию с уровня кода на уровень конфигураций.
Кому это важно
Компаниям, которые регулярно собирают данные с открытого веба в больших объёмах, то есть финтех, маркетинг-аналитика,研究, мониторинг конкурентов. Также разработчикам, которые выстраивают пайплайны ETL и хотят снизить накладные расходы на поддержку скрейпингов. Инженерам, отвечающим за надёжность системы, детерминированное выполнение критично для production.
Как это применить
Фреймворк использует таксономию из шести типов коллекторов, которые описывают стандартные паттерны извлечения (список элементов, таблица, иерархия и т. п.). Вместо того чтобы писать скрипт, пользователь (или ИИ) описывает требование на естественном языке. Фреймворк типизирует его в JSON-конфигурацию, преобразует в статический Airflow DAG и выполняет без дополнительных ЛЛМ-токенов. Для повторяющихся задач DAG переиспользуется, нулевые затраты на повторный запуск.
Можно ли доверять
Данные подкреплены экспериментами. На 138 задачах показано, что таксономия корректно типизирует требования. На 80 независимо верифицированных задачах система работала без ошибок выполнения, это значительно выше, чем у baseline-подходов с прямой генерацией кода. Статическое выполнение через Airflow DAG означает, что результат воспроизводим и полностью детерминирован, отсутствуют «чёрные ящики».
Риски и подводные камни
Таксономия из шести типов может оказаться недостаточна для сложных, нестандартных паттернов извлечения, в этом случае фреймворк придётся расширять. Нужна хорошая работа с неявными требованиями: если юзер описал задачу неточно, типизация даст неправильный результат. Фреймворк требует статического определения структуры данных на входе, если структура страницы часто меняется, потребуется частое обновление конфигурации. Масштабирование: хотя выполнение детерминировано, скорость зависит от сложности селекторов и объёма данных.