Архитектура ИИ-расширения: почему LLM не должна управлять браузером
Habr AI · оригинал
Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Команда разработчиков описала эволюцию расширения для поиска промокодов, где полный контроль над браузером у LLM был заменен детерминированным кодом. Такой подход снизил стоимость обработки до долей цента и повысил надежность применения скидок с 40% до более чем 90%.
Материал демонстрирует практический пример того, как гибридная архитектура (LLM для распознавания + код для действий) решает проблемы стоимости и галлюцинаций в реальных AI-продуктах.
Разработчики расширения для автоматического применения промокодов поделились опытом года работы над продуктом. Ключевой вывод состоит в том, что передача полного контроля над браузером языковой модели (LLM) является ошибкой. В первой версии GPT получал доступ к странице и самостоятельно решал, куда кликать. Демо выглядело убедительно, но в продакшене система оказалась дорогой (7–10 центов за корзину), медленной (2–3 минуты на обработку) и ненадежной: успешность применения кодов составляла менее 40%. Модель часто путала поля ввода, отправляя промокоды в адреса или имена получателей, а в одном случае даже попыталась нажать кнопку покупки, «додумав» действие за пользователя.
Архитектура была переработана по принципу разделения ответственности. LLM больше не управляет браузером; ее задача ограничена одним вопросом: определить координаты нужных элементов на странице (поле для купона, кнопка применения, итоговая сумма). Все механические действия — клики, ввод текста, проверка результатов — выполняет детерминированный код. Это позволило покрыть сценарии юнит-тестами и исключить непредсказуемость модели в критических шагах.
Для поиска элементов используется пятиуровневая система исполнения. Сначала применяются готовые сценарии для крупных магазинов (Amazon, eBay), затем известные координаты, распознавание платформы (Shopify, Magento), кэш селекторов по домену и только в крайнем случае — запрос к LLM. Подавляющее большинство обработок закрывается на первых четырех уровнях бесплатно или почти бесплатно. Использование модели требуется лишь для незнакомых сайтов, где она анализирует очищенную разметку.
Оптимизация стоимости потребовала глубокой работы с контекстом. Средняя страница корзины содержит от 125 до 500 тысяч токенов, большинство из которых — мусор (описания товаров, отзывы, скрытые блоки). Разработчики создали обработчик, удаляющий нерелевантный контент по более чем 800 правилам. Это уменьшило объем данных для LLM в 20–80 раз, снизив стоимость запроса до 0,12 цента и повысив точность ответов за счет снижения шума.
Надежность системы обеспечивается строгими правилами промптинга и тройной проверкой ответов модели. Промпт содержит девять правил, каждое из которых появилось после инцидента в продакшене: запрет на использование сгенерированных классов CSS, приоритет data-атрибутов, требование указывать тег элемента и другие. Каждый селектор, возвращенный моделью, проверяется на синтаксис, наличие в исходном HTML и соответствие типу элемента (например, поле ввода для кода). Это предотвращает ситуации, когда модель «выдумывает» элементы или путает контейнер с самим полем.
Результатом переработки архитектуры стало увеличение успешности применения промокодов до более чем 90% и сокращение времени обработки до одной минуты. Важно отметить, что это техническая метрика: доля кодов, которые действительно дают скидку, составляет лишь 50–60%, так как многие купоны истекли или не подходят к корзине. Однако система гарантирует, что код попадает именно в нужное поле, а не теряется в интерфейсе.