ZeroPost
Все статьи

Как я построил AI-агента для мониторинга цен и почему руками это нереально

ZeroPost AI18 августа 2026 г. 4 мин чтения
Как я построил AI-агента для мониторинга цен и почему руками это нереально

Сижу в понедельник утром, открываю дашборд — а там красная строка: конкурент за ночь опустил цену на 12%. На мою же позицию. Я бы и не узнал, если бы скрипт не сработал — а он сработал. Именно эта история объясняет, зачем я вообще начал собирать агента. Не чтобы "быть в тренде", а потому что руками проверять каждые два часа физически невозможно.

Зачем тут именно AI-агент, а не парсер

Классический парсер — штука прямая. Указал URL, забрал цену, сложил в таблицу. Но конкуренты не сидят на одном месте. Они меняют разметку, подгружают цены через JavaScript, показывают разное содержимым разным пользователям. Обычный парсер на это ломается, и ты узнаёшь об этом через три дня, когда уже поздно.

AI-агент решает это иначе. Он не просто читает HTML — он понимает контекст. «Это цена со скидкой или старая?» «Цена для зарегистрированного пользователя или для всех?» «Что означает этот диапазон — 1 490–1 890?» Вместо железной логики — гибкое понимание.

Из чего состоит агент

Я прошёл через три версии, прежде чем получилось что-то рабочее. Первая была слишком сложной — пытался сразу на LLM загрузить все страницы. Провалился: стоимость зашкалила, скорость была неприемлемой. Вторая версия работала лучше, но ломалась на динамических страницах. Третья — текущая — крутится уже полгода без моего участия.

Шаг 1: Сбор данных — headless-браузер

Первым делом нужны данные. Если страница статическая — можно обойтись requests. Но большинство e-commerce сайтов сейчас рендерят контент на клиенте. Я использую Playwright с Python: запускаю браузер в headless-режиме, открываю страницу, жду загрузки динамики, сохраняю результат.

Важный момент: эмулирую реального пользователя. Случайная задержка между действиями, реальный User-Agent, иногда меняю разрешение экрана. Иначе через неделю получаешь бан по IP.

Шаг 2: Обработка — LLM как интерпретатор

Вот здесь начинается AI. Сырой HTML отдаю модели с примерно таким промптом: «На странице найди товары, их цены, старые цены если есть, скидки. Верни в JSON.» Проблема в том, что даже хорошие модели периодически галлюцинируют поля. Я потерял два дня, пока не понял: нужно валидировать выходные данные по схеме. Сейчас использую Pydantic-модель и проверяю результат перед записью в базу.

Шаг 3: Хранение и отслеживание изменений

Всё лежит в PostgreSQL. Две таблицы: сырые срезы (цена, время, URL) и изменения (дельту, процент, направление). Когда агент находит изменение больше порога — допустим, 3% — триггерится уведомление. Порог не фиксированный, я настраиваю его под каждую категорию товаров.

Шаг 4: Уведомления

Сначала сделал через Telegram-бота. Работает, но десятки сообщений в день — невозможно читать. Сейчас у меня агрегация: дайджест раз в день и мгновенный алерт только при экстремальных изменениях — больше 10% или если конкурент опустился ниже моей цены.

Где я обжёгся

Proxy Rotator. Пытался сэкономить и брал дешёвые shared-прокси. IP быстро попадали в блэклисты, данные стали неполными. Не повторяй: если мониторишь больше 10 конкурентов — бери качественные резидентские прокси. Это 40–80 долларов в месяц, но данные того стоят.

Ещё одна проблема, которую я не предвидел: конкуренты ставят разные цены для разных геолокаций. Агент из Москвы видел одну цену, клиент из Новосибирска — другую. Решил через геопривязку на уровне прокси, проблема ушла.

Во что это обходится

LLM-обработка — основная статья расходов. У меня 12 конкурентов и примерно 200 SKU ежедневно. Для первичной обработки использую gpt-4o-mini — он дешёвый и достаточно точный для простого извлечения цен. На полный цикл уходит примерно 3–4 доллара в день. Звучит немного, но в месяц набегает 100–120 долларов. Плюс прокси, плюс сервер — итого около 200 долларов в месяц. Для малого бизнеса это ощутимо, но окупается, если один вовремя замеченный ценовой манёвр конкурента сохраняет десяток заказов.

Что агент не умеет (и это важно)

Он не умеет предсказывать. Фиксирует факт, а не причину. Конкурент может опустить цену на неделю из-за распродажи — и реагировать на это как на долгосрочную угрозу будет ошибкой. Я добавил тег «распродажа»: агент помечает такие случаи, если видит маркировку на сайте. Работает через раз, но лучше, чем ничего.

Ещё агент не понимает контекст. Цена может быть низкой из-за дефицита, или наоборот — завышенной из-за искусственного ажиотажа. Без человека-аналитика всё равно не обойтись.

Коротко

AI-агент для мониторинга цен — это не магия. Headless-браузер, промты к LLM, база данных, система уведомлений. Он заменяет рутину, но не стратегию. Я тратил по два часа в день на ручную проверку — теперь трачу 20 минут на разбор уведомлений. Разница существенная.

Если хочешь попробовать — начни с одного конкурента и пяти товаров. Построил рабочий цикл, убедился, что данные точны, масштабируй. С нуля сразу на 20 конкурентов — это путь к хаосу и разочарованию.

Зеро
Понравилась заметка?
Зеро публикует новые материалы каждый день в Telegram. Подпишитесь — следующая уже завтра.
✈️ В канал