Чтобы агент что-то сделал в Gmail, CRM или Telegram, у него есть два способа: вести себя как живой пользователь в браузере — или дёргать сервис напрямую через API. Всё остальное — промежуточные варианты на этой шкале.
Три термина, которые дальше будут мелькать постоянно. Один раз разобрались — и всё встанет на места.
API — это «дверь в backend». Сервис сам решает, какие действия через эту дверь пускать. Поэтому наборы функций в UI и в API часто не совпадают:
Поэтому выбор способа подключения иногда определяется не скоростью, а просто тем, где вообще лежит нужная функция.
Самое чистое противопоставление: «живой пользователь в браузере» против «прямой вызов API». Между ними — всё остальное.
Агент сам открывает сайт в браузере, смотрит на экран, читает кнопки и решает куда жать — прямо как живой пользователь. Каждый шаг — отдельное решение модели.
Гибко, работает где угодно. Но медленно и дорого.Сервис опубликовал программную «дверь» с документацией и обязательством её не ломать. Агент вызывает функцию — сразу получает результат, без кликов и экранов.
Быстро, надёжно, легально. Только если сервис его даёт.Задача: отправить письмо клиенту через Gmail
| Критерий | 🖱 Агент-пользователь | 🔌 Официальный API |
|---|---|---|
| Куда цепляется | frontend — видимый UI | backend — публичная дверь |
| Время на действие | секунды — минуты | миллисекунды |
| Стоимость вызова | высокая — LLM на каждом шаге | копейки |
| Если сервис обновился | адаптируется в процессе | продолжает работать — контракт стабилен |
| Набор доступных функций | всё, что есть в UI | только то, что опубликовали |
| Риск блокировки | средний — CAPTCHA, анти-бот | минимальный — легальный канал |
| Что нужно для подключения | только логин | API-ключ или MCP-сервер |
У каждого из двух путей есть «сосед», который двигает компромисс в одну или другую сторону. Раскройте, чтобы посмотреть сравнение бок о бок.
Вместо того чтобы агент каждый раз решал куда кликать, программист один раз записывает последовательность шагов (Playwright, Selenium, n8n). Агент вызывает её как готовую команду. Сравним бок о бок с агентом-пользователем на той же задаче.
| Критерий | 🖱 Агент-пользователь | 🤖 Скрипт-робот |
|---|---|---|
| Время на действие | секунды — минуты | секунды |
| Стоимость вызова | дорого — LLM на каждом шаге | дёшево — нет LLM-решений |
| Кто задал путь | LLM, на каждом шаге заново | программист, один раз |
| Если сайт обновили | адаптируется в процессе | падает с ошибкой |
| Поддержка | не нужна | чинить после редизайнов |
| Риск блокировки | средний | высокий — явная автоматизация |
Сервис сам общается со своим backend через какие-то endpoints — из веб-клиента или мобильного приложения. Можно подсмотреть эти endpoints и вызывать их напрямую, представляясь официальным клиентом. Пример — Telethon для Telegram (MTProto), внутренние API Instagram, реверс XHR-запросов любого SaaS. Сравним с официальным API на той же задаче.
| Критерий | 🔌 Официальный API | 👤 Неофициальный API |
|---|---|---|
| Что это | публичная документированная дверь | служебные endpoints сервиса |
| Набор функций | только то, что опубликовали | часто шире — всё, что делает клиент |
| Стабильность | контракт, сервис не ломает | внутренности меняют без предупреждения |
| Легальность | чисто | формально нарушение ToS |
| Риск блокировки | минимальный | высокий — могут забанить аккаунт |
| Что нужно | API-ключ или MCP-сервер | реверс протокола + сессия клиента |
Есть официальный API или MCP — берите его. Самый быстрый, дешёвый, надёжный и легальный вариант. Сервис сам его поддерживает и не ломает.
Задача редкая, сайты разные, нужна гибкость — пусть агент сам ходит. Медленно и дорого, зато работает где угодно и адаптируется к изменениям прямо в процессе.
Задача повторяется, сайт стабилен — пишите скрипт-робота. Playwright, Selenium, n8n. Быстро и дёшево за вызов. Готовьтесь, что раз в пару месяцев скрипт придётся чинить после обновления сайта.
Неофициальный API — только когда без него никак. Когда нужной функции нет в официальном API, а через UI автоматизировать долго и хрупко. Понимайте риски: блокировка аккаунта, ToS-нарушение, внезапная поломка после обновления сервиса. Классические случаи: Telegram-user-боты через MTProto, скрейпинг внутренних API крупных соцсетей.
В реальной системе — комбинация. Официальный API для основных интеграций. Скрипт — там, где API нет, а задача повторяется. Агент — для редких и нестандартных случаев. Неофициальный API — только сознательно и только там, где риск оправдан.
Две оси: где агент стучится в сервис (через UI или через API) и как сервис к этому относится (поддерживает официально или нет).