AI-агент, который сам ходит по сайтам — Claude с Playwright MCP, browser-use, облачный Browserbase — упирается в ту же стену, что и обычный парсер: пара десятков запросов с одного адреса, и дальше вместо страницы прилетает челлендж Cloudflare. Разница в том, что агент не умеет обижаться и просто зацикливается, сжигая токены на попытках «нажать кнопку, которой нет».
Лечится это прокси. Но подключить прокси к агенту оказывается неожиданно неочевидно: половина инструкций в интернете предлагает синтаксис, который Chromium молча игнорирует. Ниже — рабочие конфиги для трёх самых распространённых стеков 2026 года и разбор ловушек, на которых спотыкаются все.
Кому это нужно
Гайд для тех, кто уже запустил агента и получил один из симптомов:
- агент отрабатывает 10–20 шагов, а потом каждый следующий шаг возвращает капчу или страницу «Verify you are human»;
- агент видит не тот контент, что вы: цены, выдачу и наличие товара сайт показывает под ваш серверный IP, а не под нужную страну;
- агент запущен в облаке (VPS, GitHub Actions, контейнер), и датацентровый адрес хостера уже помечен как ботский;
- вы прописали прокси с логином и паролем, а браузер стартует так, будто прокси нет вовсе.
Если вы ещё на этапе «почему вообще агентов блокируют» — сначала прочитайте разбор о том, как антибот-системы отличают агентный браузер от человека: там про сигналы детекта, а здесь — чистая практика подключения.
Ловушка №1: Chromium не принимает логин и пароль в строке прокси
Самая частая ошибка, и она стоит людям часов отладки. Классический вид строки от провайдера — user:pass@host:port. Вы подставляете её в флаг запуска браузера:
--proxy-server="http://user:[email protected]:8080"
И ничего не работает. Chromium не поддерживает передачу учётных данных внутри флага --proxy-server: в консоли появляется ошибка о неподдерживаемом прокси, а трафик идёт мимо. Если убрать креды и оставить только host:port, браузер в обычном режиме покажет системное окно с запросом логина и пароля — и на этом всё встанет, потому что в headless-режиме окна нет и нажимать в нём некому.
Из этого следуют три рабочих пути, и выбирать надо осознанно:
- Авторизация по IP (whitelist). Самый чистый вариант для агентов. Вы добавляете адрес машины, где крутится агент, в белый список в кабинете провайдера — и дальше подключаетесь вообще без логина и пароля, простой строкой
host:port. Флаг--proxy-serverначинает работать как задумано, headless больше ничего не спрашивает. ProxyCove поддерживает оба метода — и логин:пароль, и IP-whitelist, причём одновременно, так что для агента можно завести whitelist, а для ручных задач оставить пароль. - Передавать креды на уровне API, а не флага. Playwright, Puppeteer и browser-use умеют принимать
usernameиpasswordотдельными полями — это не тот же механизм, что флаг командной строки, и он работает. Подходит, когда вы пишете код агента сами. - Локальный релей. Поднимаете у себя прокси без пароля, который форвардит запросы на апстрим с паролем, и указываете агенту локальный адрес. Вариант для случаев, когда белый список недоступен: например, IP машины плавает.
Playwright MCP: конфиг, который действительно работает
Playwright MCP от Microsoft — сегодня стандарт де-факто для агентов, которым нужен настоящий браузер. Прокси задаётся аргументами сервера прямо в конфиге MCP-клиента:
{"mcpServers":{"playwright":{"command":"npx","args":["@playwright/mcp@latest","--browser","chromium","--headless","--proxy-server","http://gate.example.com:8080","--proxy-bypass",".local,.internal","--isolated","--viewport-size","1920x1080"]}}}
Что здесь важно по пунктам:
--proxy-serverпринимает и HTTP, и SOCKS5-адрес в видеsocks5://host:port. Без учётных данных — см. ловушку выше.--proxy-bypass— список доменов через запятую, которые идут мимо прокси. Не декоративная опция: если у агента есть внутренние сервисы или локальный API, гнать их через резидентный канал — это лишний трафик по цене за гигабайт.--isolatedдержит профиль в памяти и не пишет его на диск. Полезно, когда каждая задача должна стартовать с чистого листа. Обратная сторона — куки не переживают перезапуск, и каждая сессия для сайта выглядит новым посетителем.--user-data-dir— наоборот, постоянный профиль. Для сценариев с авторизацией берите его, а не изоляцию, и обязательно закрепляйте IP (см. раздел про sticky ниже).--storage-stateпозволяет подложить сохранённые куки и localStorage в изолированную сессию — компромисс между двумя предыдущими.--allowed-originsи--blocked-originsограничивают, куда агенту вообще можно ходить. Недооценённая экономия: агент, увлёкшийся аналитикой и рекламными доменами, легко утраивает расход трафика.--device(например,"iPhone 15") и--user-agentменяют то, каким браузером агент представляется. Ставьте их согласованно с типом прокси: мобильный User-Agent поверх датацентрового IP — это противоречие, которое антибот-система читает мгновенно.
Отдельно про --cdp-endpoint: он подключает MCP к уже запущенному браузеру. Тогда прокси настраивается не флагами MCP, а при старте того браузера — типовая причина, почему «прокси прописан, а IP прежний».
browser-use: прокси через ProxySettings
Если агент собран на browser-use, конфигурация уходит в объект настроек, и вот здесь логин с паролем передавать можно — они идут по API, а не через командную строку:
from browser_use import Browser, ProxySettings
proxy = ProxySettings(server='http://gate.example.com:8080', username='user', password='pass', bypass='localhost,127.0.0.1')
browser = Browser(proxy=proxy)
Поле server обязательное, остальные опциональны. Тот же принцип действует и в чистом Playwright: прокси задаётся либо глобально при запуске браузера, либо отдельно для каждого контекста через browser.newContext({ proxy: { server: ... } }). Второе — ключ к параллельным агентам: каждый контекст получает свой выходной адрес, и десять задач не делят один IP.
Облачные браузеры: прокси на уровне сессии
У Browserbase и подобных сервисов браузер живёт в чужом облаке, поэтому флаги запуска вам недоступны — прокси прописывается в параметрах сессии, обычно строкой вида http://логин:пароль@шлюз:порт в переменной окружения MCP-сервера. Ограничение Chromium здесь не мешает: провайдер облака сам разбирает строку и настраивает браузер изнутри.
Практический нюанс: у облачных браузеров есть собственный пул прокси, и он у всех клиентов общий. Если задача чувствительна к репутации адреса — вход в аккаунт, работа с площадкой, где вы уже примелькались, — свой канал предсказуемее общего.
Ротация или закрепление: выбирайте по типу задачи
Ошибка новичка — включить ротацию на каждый запрос и удивляться, почему агента разлогинивает. У агентных сценариев два режима, и они не взаимозаменяемы:
- Ротация на каждый запрос (у ProxyCove это порт 824) — для разведки: обойти сто карточек товара, собрать выдачу, проверить цены в разных регионах. Каждый запрос уходит с нового адреса, связать их между собой сложно.
- Закреплённая сессия (порты 10000+, интервал смены от 1 до 120 минут) — для всего, что состоит из шагов: логин, корзина, многостраничная форма, длинный диалог с интерфейсом. Если IP сменится посреди цепочки, сайт в лучшем случае попросит переавторизоваться, в худшем — пометит сессию как подозрительную.
Агент почти всегда работает во втором режиме: он по определению делает последовательность шагов, а не один выстрел. Подробности выбора интервала и типичные ошибки разобраны в гайде о том, когда нужны sticky-сессии и как их настраивать.
Пять подводных камней
- SOCKS5 с авторизацией в Chromium. Синтаксис
socks5://в Playwright есть, но связка «SOCKS5 плюс логин и пароль» в браузерах на Chromium исторически проблемная — соответствующий запрос в трекере Playwright открыт с ноября 2021 года. Если выбор есть, для агентов берите HTTP(S)-канал, он предсказуемее. - Утечка DNS и WebRTC. Трафик идёт через прокси, а имена резолвятся напрямую или WebRTC отдаёт реальный адрес — и вся маскировка теряет смысл. Проверять это надо до, а не после запуска агента: как закрыть WebRTC при работе через прокси.
- Рассинхрон гео и локали. IP в Германии, часовой пояс машины московский, язык интерфейса английский — набор, который сам по себе выглядит как автоматизация. В Playwright локаль и таймзона задаются параметрами контекста, приводите их в соответствие со страной прокси.
- Трафик, который вы не заказывали. Агент открывает страницу целиком, вместе с картинками, шрифтами и рекламными скриптами. На резидентном канале с оплатой за гигабайт это заметная статья расхода — блокируйте лишние домены и, где возможно, отключайте загрузку медиа.
- Прокси прописан не там, где стартует браузер. При работе через
--cdp-endpoint, через докер-обёртку или через облачный сервис флаги MCP на реальное соединение не влияют. Первое, что стоит делать после настройки, — заставить агента открыть любой сервис проверки IP и убедиться, что адрес и страна те самые.
Какой тип прокси брать под агента
Правило простое: чем ближе задача к живому пользователю, тем «человечнее» должен быть адрес.
- Резидентные прокси — база для агентов. Это адреса домашних провайдеров, и для сайта агент выглядит обычным посетителем. Нужны везде, где есть Cloudflare, региональные цены и любой намёк на антибот.
- Мобильные прокси — тяжёлая артиллерия для соцсетей и площадок, где к аккаунтам относятся особенно нервно. За одним мобильным адресом сидят тысячи реальных абонентов, поэтому банить его целиком площадке дорого.
- Датацентровые — для внутренних API, тестовых стендов и открытых источников без защиты. Быстро и дёшево, но на защищённых сайтах агент упрётся в челлендж почти сразу.
Полезная деталь для агентных сценариев: смена протокола у ProxyCove делается заменой префикса в строке подключения — HTTP, HTTPS и SOCKS5 доступны на одном и том же прокси, сам прокси перенастраивать не нужно. Стран в пуле больше 195, так что «показать агенту локальную выдачу» решается выбором страны при покупке.
Вывод
Подключение прокси к AI-агенту — это не одна строчка, а три решения подряд: как авторизоваться (для headless-агента почти всегда белый список IP, а не пароль), где задать прокси (флаги MCP, объект настроек или параметры облачной сессии — но обязательно там, где реально стартует браузер) и в каком режиме работать (для многошаговых сценариев — закреплённый адрес, а не ротация на каждый запрос). Плюс обязательная проверка на утечки DNS и WebRTC до боевого запуска.
Сделайте это один раз аккуратно — и агент перестанет тратить токены на разговоры с капчей. Резидентные прокси ProxyCove подключаются к Playwright MCP и browser-use за пару минут, оплата по трафику, IP-whitelist для headless-режима включается в кабинете.
