Автоматизация лидогенерации в деловой соцсети: как мы заменили проприетарный AI-рантайм своим
Мы заменили проприетарный AI-рантайм своим — и чужая автоматизация ожила на нашем стеке.
Иногда самая сложная часть проекта — не написать своё, а запустить чужое. Мы получили готовый комплект автоматизации лидогенерации для деловой соцсети: код, установщик, база, системные службы, встроенный «инженер» для самовосстановления. Всё бы хорошо, но комплекс требовал конкретный закрытый AI-агент, которого у нас не было.
Мы не стали отказываться от системы. Мы разобрали её контракт и написали собственный рантайм, который её обслуживает.
Что делает эта автоматизация
Система ведёт исходящие касания с потенциальными клиентами в деловой соцсети по цепочке из четырёх шагов:
- Комментарий — осмысленная реакция под постом потенциального клиента;
- Реакция — фиксация и удержание контакта;
- Подписка — закрепление в ленте человека;
- Личное сообщение — персональное обращение по подготовленному шаблону.
Плюс квалификация кандидатов (кто вообще подходит), несколько источников поиска аудитории, суточная квота на завершённые цепочки и защита от повторных действий. Всё работает через реальный браузер, под личным аккаунтом владельца, с человеческими паузами и лимитами.
Камень преткновения: закрытый «мозг»
Комплексу был нужен конкретный AI-агент: установленный от root, с настроенной моделью, доступом к терминалу и отдельным инструментом анализа изображений (он один раз проверяет фото профиля). Без него установка доходила только до состояния «собрано и остановлено».
Вариант «поставить заглушку» мы отмели сразу: установщик бы прошёл, а живой запуск всё равно упёрся бы в реальные вызовы агента. Нужен был рабочий рантайм, а не имитация.
Решение: свой рантайм под чужой контракт
Мы разобрали, как система вызывает агента, и собрали собственный, совместимый до последней детали:
- Agentic loop поверх доступного модельного API — тот же интерфейс, который ожидает система;
- Набор инструментов: терминал, файловые операции и анализ изображений — ровно то, что требуется контрактом;
- Сессии с возобновлением — агент продолжает работу между запусками, а не начинает с нуля;
- Финальный вердикт в точном формате, который парсит автоматизация, — чтобы для неё ничего не изменилось.
Со стороны системы это тот самый агент. Со стороны — наш код, наш провайдер, наш контроль.
Сеть и вход без лишних зависимостей
Исходящий трафик система жёстко направляет через локальный мост. Вместо внешнего платного прокси мы подняли собственный канал исходящего трафика — цепочка «браузер → мост → шлюз» работает, лишние платные сервисы не нужны.
Вход в аккаунт — отдельная история и сознательная человеческая граница. Мы оставили ручной вход в реальный браузер через удалённый виртуальный экран: телефон, SMS, капчу человек проходит сам, руками. Код не подбирает данные и не «доказывает» вход, если его не было.
Дисциплина и безопасность
Автоматизация исходящих касаний без дисциплины превращается в спам и баны. Поэтому в системе заложено:
- суточная квота и человеческие паузы между действиями;
- защита от дублей — один контакт не получает касание дважды;
- один активный экземпляр на аккаунт — никаких параллельных «владельцев»;
- встроенный инженер: раз в час проверяет систему и чинит известные технические сбои, сохраняя прогресс между сессиями.
Что уже проверено на практике
- целостность комплекта подтверждена (231 файл, хэши сходятся);
- установка собрана и переведена в состояние «на паузе»: схема, миграции и все рабочие источники на месте;
- зависимости браузерной автоматизации подняты и работают;
- наш рантайм проверен со всеми инструментами, включая анализ изображений и возобновление сессий;
- ручной вход через виртуальный экран поднимается;
- сетевая цепочка от браузера до площадки отвечает корректно.
Живые шаги — авторизация и активация — выполняются уже по аккаунту владельца, это сознательная граница человека, а не техническая проблема.
Контринтуитивный вывод
Самый большой барьер при внедрении готовой автоматизации — часто не «написать бота», а разобрать контракт чужой системы и подменить её закрытый компонент своим. Если понять, как система вызывает «мозг», его можно заменить — и тогда вы не привязаны к одному провайдеру, цене и доступности.
Что это значит для вас
Если у вас есть автоматизация, завязанная на конкретный закрытый сервис, и он стал дорогим, недоступным или ограничивает — это не всегда значит «переписывать всё». Иногда достаточно разобрать контракт и поставить свой совместимый компонент.
Мы делаем такие вещи под ключ: интеграции, замену закрытых зависимостей, автоматизацию исходящих процессов с человеческими границами и дисциплиной по лимитам.
Короткие ответы на частые вопросы
Это работало вживую? Система собрана и проверена до живого запуска; активация выполняется по аккаунту владельца и требует его ручного входа.
Насколько это безопасно для аккаунта? Квоты, паузы, анти-дубли и один экземпляр на аккаунт — автоматизация удерживается в рамках разумного поведения.
Можно заменить закрытый сервис в моей системе? Часто да. Напишите, что за система и какой компонент завязан на вендора, — разберём контракт и предложим решение.