
Зачем статья:
- Хочу поделиться примером применения AI-агентов на практике, даже если не программируешь, 
- Выделить очевидные ограничения вайбкодинга, 
- Показать как достигнут результат в 1416 строк кода, автоматизация мониторинга 1500 файлов менее чем за 5 минут, интеграции с Telegram и GitHub Pages, и экономия сотен часов рутинной проверки, 
- Чуть-чуть о важности бизнес-исследований и возможности передачи продукта (об этом готов лично рассказать в телеграме). 
Идея
Маркетплейсы с точки зрения покупателя мне понятны, а вот у продавца возникает масса вопросов: как выложить товар, как продавать, куда отправлять заказы. Начал изучать статьи Т-банка, проходить курсы и анализировать базы знаний Озона, Wildberries и Яндекс.Маркета. Пока пролистывал сотни страниц базы Озона (их, кстати, ~770 только для продавцов, не считая разделов по API, ПВЗ и зарубежной версии), заметил, что нет никакой отдельной рубрики или раздела с обновлениями. Нет ничего, что помогло бы быстро замечать изменения: ни подписки, ни рассылки, ни один из информационных каналов Озона не сообщает о мелких правках и обновлениях в базе знаний.
Вместо того чтобы анализировать, как другие решают эту проблему, я сел и начал делать свой продукт — инструмент, который автоматически находит и показывает различия в базе знаний Озон, сравнивая версии за сегодня и вчера.
Что на старте?
Знания и опыт
- По опыту работы проджект-менеджером разбираюсь в базовых процессах разработки и основах программирования; 
- Интересуюсь нейросетями: отсюда есть понимание как формулировать промты и как использовать нейросети для решения прикладных задач; 
- Из работы в «Золотой Короне» знаком с принципами интеграции через API и взаимодействием между системами. 
Инструменты
- Несколько месяцев назад пробовал разрабатывать телеграм-ботов на Python, там и освоил Visual Studio Code; 
- Работа в Экспобанке дала понимание возможностей и предназначения GitHub, после чего узнал о GitHub Copilot. 
Так и сформировался мой базовый starter-pack для запуска проекта.
Когда вижу статьи про вайбкодинг - для меня всегда важно понимать какие человек знания имеет. Потому что разница между программистом и от обычным пользователя - это огромная пропасть: подходы, мысли и промты совершенно иные. Я ближе к обычному пользователю, к самому коду не притронулся ни разу
Как это реализовать?

Когда накидал изначальную схему - понял, как процессы могут быть разбиты на части и независимо друг от друга реализованы.
Было три основных претендента, чтобы завайбкодить - Cursor, GitHub Copilot, Codex - я начал изучать каждый сразу с точки зрения пользователя, без видео на ютубе, статей и прочего. Вот мои основные инсайты:

Оставил выбор за GitHub Copilot, потому что:
- не хотелось отдавать деньги за идею, которая может не выгореть (не удастся написать код), 
- удобно сразу запускать код (в отличие от Codex), 
- терпимо с точки зрения работы с большим количеством файлов - разбил процессы на части. 
Далее работа в формате вопрос-ответ с ChatGPT 4o или 4.1 либо в браузере, либо в самом Copilot. Надо было найти последовательно ответы на вопросы:
- На каком языке программирования писать? 
- Чем он лучше, чем другие? 
- Какие самые популярные и удобные решения есть для каждого подпроцесса? 
- Найденное решение - лучшее? 
К сожалению, итераций, за которые я задавал каждый из этих вопросов было не менее 10. То есть создавать код с нуля? либо с другими библиотека, архитектурой, либо вообще на другом языке приходилось до 10 раз.
Как этого избежать? Использовал промт: [описание идеи]+[помоги построить архитектуру процесса и выявить наиболее оптимальный путь к реализации процесса]

Понимание архитектуры нельзя аутсорсить нейросети, потому что "лучших" и "оптимальных" решений множество - а значит AI может переписывать код и предлагать альтернативы бесконечно - это бесполезно, если ни одно из решений не попробуешь. Поэтому сам для себя изучал вопрос за вопросом:

Инсайт: для такого рода вопросов стоит включать/выключать search, причем в разных чатах - ответы часто были разными, GitHub Copilot редко производит поиск сам, поэтому предпочтительнее браузерная версия
Так я выбрал node.js для реализации захода в браузер для большинства процессов: краулера, который обходит все страницы https://seller-edu.ozon.ru/ и парсера, который сохраняет снэпшоты страниц, а затем и процесса сравнения.
Разберу на примере парсера шаг за шагом как создавался код:
1. Создать MVP - не нужно парсить все 770 страниц. Надо попробовать спарсить одну, тогда запрос:
Напиши код, который будет открывать браузер, заходить на сайт https://seller-edu.ozon.ru/, сохранять HTML-файл со всеми исходными стилями в папку D:\Projects\MarketUpd
2. Тестируем результат кода, смотрим нет ли подсвеченных ошибок. Если есть - решаем их с помощью агента. Ошибок закончились - идем дальше.

3. Теперь "масштабируем" технологию:
Дополни код так, чтобы открывались все страницы из списка файла D:\Projects\MarketUpd\sites_ozon.txt, каждая строчка - это ссылка. Сохраняй результат каждого скачивания в отдельную подпапку. Подпапку называй по последним двум сегментам URL, если сегментов меньше двух, то пиши root\единственный сегмент.
4. Допиливаем фичи:
Дополни код так, чтобы при сохранении HTML-файла сохранялся только блок div class = document, наименование каждого файла сделай "дд-мм-гггг_title страницы"
5. Добавляем логи:
Дополни код так, чтобы формировался файл с подробным логированием каждого действия по пути D:\Projects\MarketUpd\log
Иногда приходилось переписывать каждый шаг, менять подход и корректировать промт. Это основной минус вайбкодинга - ты видишь только результат, а залезть в процесс и сам разобраться не можешь, потому что у тебя нет для этого компетенций.
Например, основные процессы парсинга и сравнения претерпели следующие изменения:
- Сначала это был код на Python, который парсил не HTML, а создавал PDF-файлы, заходя в браузер. Затем уже работал со сравнением PDF - оказалось, что это в разы тяжелее, потому что PDF имеет неочевидную структуру. 
- Переписал код на Node.js, пробовал сохранять скриншоты, думая, что результат распознания будет качественнее. Затем сравнивал скриншоты. Но чтобы качественно распознать отдельные блоки текста, списком, заголовков и семантически их объединить - потребовалось уйма запросов, а результат был печальным. К тому же скриншоты формировались некорректно. 
- Переписал код на формат сохранения HTML - сохранялся только текст, без оформления. Читать было невозможно. 
- Снова вернулся к PDF. 
- Небольшой чилл, чтобы все обдумать. И потом эврика - надо же просто попросить сохранить все стили. Вновь вернулся к сохранению HTML и все заработало! 
Инсайт: если вы не уверены как описать что вам нужно - используйте примеры. Например, первый раз я не мог понять почему коду не удается распознать дату из наименования. Тогда я написал: ...вот пример наименования файла "11-07-2025_Карантин цен"... И агент сразу понял, что даты изначально искались с видом 11.07.2025 вместо 11-07-2025. Иногда это огромные примеры - это тоже подойдет
Кратко расскажу про результат каждого этапа:
- Краулер (tree_crawler.js) - использую все данные своего личного браузера, а также дополнений обхода защиты, чтобы сайт Озона пустил меня в браузере с помощью Puppeter. Затем поиск на каждой странице ссылок, из которых формируется список, удаляются дубликаты и происходит рекурсивный обход каждой. Так может делать с любым сайтом. Вторым этапом происходит сравнение файла с ссылками за сегодня со вчерашним. Новые или удаленные ссылки добавляются выделяются для отслеживания апдейтов. 
- Парсер (parcer_html.js) - открывает каждую найденную с помощью краулера страницу в браузере (puppeter) и затем сохраняет html, обрабатывает его. 
- 
Сравнение (compare.js) - запрашивает у пользователя даты, которые надо сравнить в терминале, затем производит сравнение и формирует комбинированный файл с встроенным интерфейсом для удобного просмотра. Пример есть тут. После сравнения страницы публикуются в GitHub Pages и становятся доступными для просмотра (тут тоже было непросто настроить взаимодействие по ssh, но нейросеть помогла разобраться)  Пример итогового файла сравнения с дополнительным интерфейсом вверху 
- Отправка в телеграм-канал постов. Создан бот, который добавлен как админ в канал. И написан код, который собирает изменения за сегодня и в нужном форматировании публикует пост (sender.py) - тут решил не париться, все изначально работало на питоне, так и оставил. 
Что меня обрадовало:
- Действительно код работает и это удалось сделать не разбираясь в программировании. 
- Разобраться в любой теме можно с помощью нейросети, поиска в гугле и вдумчивого понимания ответов. 
- Многие задачи реализуются чрезвычайно быстро - сравнение происходит за 4 минуты, а обрабатывается ~1500 файлов - это круто, когда думаешь о том, что самостоятельно даже не смог бы найти мелких различий. 
Минусы всей работы кода:
- Он работает только локально. Была попытка переноса на VPS, мне удалось разместить все необходимые файлы на рег.ру, но по результатам исполнения кода я не смог обойти защиту Озона от ботов и парсеров, имитировав свой личный браузер. 
- Есть ещё над чем поработать в сравнении - можно улучшить способ сравнения и его логику 
- Длительность - краулер работает около 40 минут, а парсер - 1 час 20 минут. Остальной код исполняется за минут 5, потому что не имеет задержек, необходимых для обхода защиты сайта Озон. 
Итого:
- 7 дней (около 70 часов) вайбкодинга 
- 1416 строчек кода 
- 2 интеграции (с Telegram API и GitHub Pages) 
- Куча радости от маленьких побед — тут рил, когда что-то работает уже радуешься, потому что: 
- ~28000 суммарно запросов и ~14 бесплатных аккаунтов использовано суммарно 
Этот опыт полезен, но важнее другое - вся проделанная работа не имеет смысла, т. к. 18.07.2025 вышла новость от Озон, что они будут развивать рубрику "Что нового в базе знаний" и вся ценность, получаемая от продукта исчезла. Это можно было исследовать, расспросить продавцов о их нуждах и болях, и возможно тогда было бы понятно, что это не проблема, а лишь закрытие собственной нужды. Далее буду применять опыт с более обширным исследованием. Также буду рад передать продукт для применения в других сферах/сайтах, расскажу и покажу в телеграм
 
           
 
Byaka8kaka
Это так кажется, на самом деле если маркетплейс что-то пишет - еще не значит что вы получите то, о чём подумали с 1го раза и то что вроде как это должно значить) К тому-же Озон является бенефициаром, так что он может просто не выкладывать то, что сокращает прибыль селлера и увеличивает его. А ответ в случае чего как всегда будет один и тот-же: Пишите в тех-поддержку, она как обычно ничего не знает, а если и знает то ничего не может. И в итоге селлеру это просто надоедает и он забивает на это.
Буду благодарен, если предоставите доступ к данной программе. Проблема действительно есть, и не только на Ozon. Ни 1 адекватный человек не способен заучить оферты маркетплейсов, а потом еще перечитывать и находить изменения.
Просто обычно это не проблема №1 при работе с маркетплейсами, и большая часть предпринимателей с ней просто смирилась, и читает только важные уведомления от маркетплейса.
raveu Автор
Очень рад такому развернутому комментарию! Постараюсь связаться с вами в ближайшее время
Если есть возможность, расскажите подробнее о том, были ли какие-то проблемы у вас или ваших коллег из-за того, что не уследили за изменениями?