Что происходит внутри расширения, когда оно работает вместо вас: как оно видит страницу, как двигает мышь и почему это не то же самое что скрипт.
Люди часто спрашивают, а как оно вообще понимает где кнопка. Расскажем без сложных слов как работает агент в браузере на примере нашего расширения для Pure и ВК Знакомств.
Три уровня автоматизации
Первый, самый простой. Скрипт. Ему прямо сказано: найди кнопку с таким именем, нажми, подожди, повтори. Работает быстро и надёжно, пока сайт не поменял кнопку. Поменял, скрипт сломался. Так работали автокликеры первого поколения.
Второй. Расширение с настройками с сервера. То же самое, но описание кнопок лежит не в самом расширении, а приходит с нашего сервера. Pure поменял вёрстку, мы обновили описание, у всех пользователей заработало без переустановки. Так работает наше расширение для лайков.
Третий. Агент с нейросетью. Он не ищет кнопку по имени, он читает страницу как текст. Видит чат, понимает кто что написал, понимает что последнее сообщение не наше, значит надо ответить. Пишет ответ и отправляет. Так работает Общалкин, часть расширения которая переписывается.
Как он видит страницу
Страница для программы это дерево из блоков. В каждом блоке текст и признаки. Агент берёт нужную часть дерева, например список сообщений, превращает в обычный текст с пометками кто автор, и отдаёт нейросети. Нейросеть возвращает ответ, расширение вставляет его в поле ввода и жмёт отправить.
Звучит просто, но есть засады. Pure в первые секунды после открытия чата иногда показывает сообщения в перепутанном порядке. Если агент прочитает в этот момент, он решит что последнее сообщение чужое, хотя оно наше. Мы это ловим отдельно, ждём пока порядок устаканится.
Как он нажимает
Тут два пути и это важно для безопасности аккаунта.
Программный. Расширение говорит странице нажми себя. Быстро, но для сайта такое нажатие выглядит чуть иначе чем от мыши.
Через настоящую мышь. Расширение двигает курсор, реально, на экране, и кликает. Для сайта это неотличимо от человека, потому что это и есть движение мыши. Минус в том что компьютер занят, пока агент работает, мышкой пользоваться нельзя. Есть ещё режим через отладчик браузера, он нажимает почти как настоящая мышь, но курсор не занимает.
Паузы, разброс, ошибки
Человек не лайкает каждые ровно две секунды. Агент тоже не должен. Паузы случайные, иногда длинные, иногда он прокручивает ленту вверх и вниз просто так. Иногда, если Pure показал ошибку и кнопку попробуй ещё раз, агент её нажимает как человек.
Если пропал интернет, он не падает, а ждёт и пробует снова. Каждую остановку пишет в лог с причиной, чтобы вы потом понимали что произошло.
Что агент не решает сам
Встреча, деньги, личные вопросы. На этом он останавливается и показывает вам. И есть кнопка паники, одна клавиша, которая останавливает вообще всё и отдаёт мышь.
Всё это внутри одного расширения: автолайки для Pure и ВК, переписка через Общалкин, таймер, логи. Показываем на живом аккаунте, телеграм @zloegucci.