Вход Регистрация

Кейсы

Как подключить ИИ-агента к прокси-серверу Froxy

Подключаем прокси-сервер к ИИ-агенту для выхода в сеть через сторонний IP-адрес. Пошаговая инструкция, примеры кода и полноценный скрипт для запуска.

Команда Froxy 9 сент. 2026 8 мин
Как подключить ИИ-агента к прокси-серверу Froxy

Cловом «прокси» в контексте ИИ-агентов могут называть три совершенно разные вещи:

  • MCP-гейтвей — это прослойка между агентом и его инструментами. MCP (Model Context Protocol) — стандарт, по которому агент подключается к внешним сервисам: Google Drive, Slack, Jira, база данных. Когда таких подключений много, перед ними ставят единую точку входа: она аутентифицирует, маршрутизирует вызовы, ведет логи, ограничивает, к каким инструментам агент вправе обращаться. Это прокси в смысле «контроль над тем, что агенту разрешено делать». Сетевого адреса он не меняет.
  • LLM-гейтвей — прослойка между агентом и моделью: один эндпоинт вместо ключей от пяти провайдеров, учет расходов, фолбэк на другую модель. Тоже часто зовется proxy.
  • IP-слой — классический веб-прокси. Меняет адрес, с которого агент приходит на целевой сайт. Отвечает за гео, антибот, лимиты запросов. И это то, о чем наша статья.

Куда именно втыкается прокси

Как подключить AI-агента к прокси

Обвязка агента (например, фреймворк browser-use) связывается с языковой моделью — будь то Claude, GPT или Hermes — напрямую, минуя прокси-сервер.

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

  • Браузер (Playwright, Chromium) нужен, когда сайту требуется полноценная эмуляция действий человека — клики, рендеринг JavaScript, запуск сценариев. Прокси прописывается прямо в параметры контекста браузера, и весь кликающий трафик идет через него.
  • HTTP-клиент (fetch, прямое обращение к API, поисковикам) применяется для быстрых «легковесных» задач без визуальной отрисовки — например, чтобы быстро слить HTML или сделать REST-запрос. Тогда прокси задается в настройках сетевого агента.

На выходе целевые сайты видят лишь IP-адрес из нужной локации, а ваш реальный сервер (и реальный IP) с ИИ-агентом остается полностью за кадром.

Резидентные прокси

Стабильные резидентные IP с выбором геолокации для AI-агентов, мультигео-исследований и доступа к сайтам с меньшим числом антибот-блокировок.

Попробовать триал $1.99, 100 МБ

Примечание перед настройкой

Настроить прокси для обычного чата (в нашем случае это Claude) невозможно. Дело в том, где выполняется работа. 

Claude Code запускается на вашей машине: он читает переменные окружения, видит ваши файлы и открывает сетевые соединения из вашей системы, поэтому заданный до старта HTTPS_PROXY он подхватывает и уходит в интернет через ваш прокси. 

Обычный чат работает на инфраструктуре Anthropic: когда он выполняет поиск или открывает страницу, соединение устанавливается с их серверов, а не с вашего компьютера — там нет вашего окружения, нет ваших переменных и нет вашего прокси-эндпоинта, и передать их туда нечем, такого параметра в API просто не существует. 

Системный прокси или Proxifier на вашей машине здесь тоже не помогут: они изменят адрес, с которого вы подключаетесь к сервису, но не адрес, с которого сервис выходит на целевые сайты. 

Для Claude in Chrome можно просто поставить прокси в барузере и все. И у нас как раз уже есть статья по настройке прокси в Chrome

Пошаговый гайд: прокси в агенте (browser-use + Claude Code)

Настройка прокси для агента (browser-use + Claude Code)

Итак, вот цель этого гайда: когда Claude Code открывает страницу сайта (не свой канал до Anthropic, а именно целевой сайт), он выходит в интернет через резидентный прокси Froxy с нужной страной. 

Работает все через отдельный Python-скрипт (check_page.py), который вы один раз настроите, а дальше можно просто просить Claude Code в чате: «посмотри страницу [URL] из Бельгии, США и Германии» — он сам все прогоняет и присылает результат. 

Скрипт сам по себе ничего не знает про Claude Code, это обычный Python (Playwright + python-dotenv). Поэтому он запустится с любым агентом, где можно исполнить Python-код. 

Перед исполнением лучше проверить есть ли постоянное файловое хранилище или механизм секретов, разрешен ли исходящий сетевой трафик через произвольный прокси и можно ли утанавливать зависимости.

Шаг 0. Что нужно заранее

  • Аккаунт Froxy с активной подпиской на резидентные прокси.
  • В личном кабинете Froxy: host, port, login, password для подключения.
  • Доступ в Terminal на Mac или cmd на Windows.

Личный кабинет Froxy

Шаг 1. Проверьте, установлен ли Python

В Terminal введите комманду:

python3 --version

Если версия не показалась (ошибка «command not found») — поставьте Python с python.org (обычное скачивание и установка), потом повторите команду выше.

Шаг 2. Создайте рабочу папку для скрипта

mkdir -p ~/proxy-qa && cd ~/proxy-qa

Шаг 3. Создайте виртуальное окружение и поставьте зависимости

python3 -m venv venv
source venv/bin/activate
pip install playwright python-dotenv
playwright install chromium

Последняя команда скачает браузер, которым скрипт будет открывать страницы. Это может занять пару минут.

Шаг 4. Создаем файл для кредов от прокси

В Terminal, из папки ~/proxy-qa создаем файл:

touch .env
open -e .env

Откроется пустой TextEdit. Заполните, подставив свои реальные значения из кабинета Froxy:

FROXY_HOST=gate.froxy.com
FROXY_PORT=9000
FROXY_USER=твой_логин
FROXY_PASS_BASE=твой_пароль

Важно про FROXY_PASS_BASE: у Froxy страна и другие параметры сессии передаются не в username, а прямо в пароле, через ;, в формате:

пароль;country;;;

Поэтому FROXY_PASS_BASE — это только «голая» часть пароля, без ;country;;; на конце — остальное скрипт дописывает сам. Например, если в личном аккаунте пароль bpsu;;;; — то в FROXY_PASS_BASE вставляйте только bpsu.

Сохраните (⌘S / Ctrl+S) и закройте. Этот файл остается только на вашем компьютере — Claude его не видит и не должен видеть.

Шаг 5. Создаем файл для скрипта

В той же папке ~/proxy-qa создаем файл check_page.py:

touch check_page.py
open -e check_page.py

Откроется пустой файл. Вставьте туда весь этот скрипт:

import os
import sys
from datetime import datetime
from dotenv import load_dotenv
from playwright.sync_api import sync_playwright
load_dotenv()
HOST = os.environ["FROXY_HOST"]
PORT = os.environ["FROXY_PORT"]
USER = os.environ["FROXY_USER"]
PASS_BASE = os.environ["FROXY_PASS_BASE"]
REALISTIC_UA = (
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 "
    "(KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
)
def build_password(country=None):
    """Формат подтвержден экспериментально: password;country;;;"""
    country_part = country.lower() if country else ""
    return f"{PASS_BASE};{country_part};;;"
def fetch_one(p, url, country):
    password = build_password(country)
    proxy = {
        "server": f"http://{HOST}:{PORT}",
        "username": USER,
        "password": password,
    }
    browser = p.chromium.launch(proxy=proxy, headless=True)
    try:
        context = browser.new_context(
            user_agent=REALISTIC_UA,
            viewport={"width": 1366, "height": 850},
        )
        page = context.new_page()
        # 1. Проверяем реальную identity прокси перед основным запросом
        page.goto("https://ifconfig.co/json", timeout=30000)
        identity = page.inner_text("body")
        # 2. Идем на целевую страницу
        page.goto(url, timeout=30000)
        try:
            page.wait_for_load_state("networkidle", timeout=10000)
        except Exception:
            print(f"[{country}] networkidle не наступил за 10 сек — это ок, продолжаем.")
        page.wait_for_timeout(1000)  # небольшая пауза, чтобы контент успел дорисоваться
        text = page.inner_text("body")
        return identity, text
    finally:
        browser.close()
def run(url, countries):
    safe_name = url.replace("https://", "").replace("http://", "").replace("/", "_")
    saved_files = []
    with sync_playwright() as p:
        for country in countries:
            print(f"\n===== {country.upper()} =====")
            identity, text = fetch_one(p, url, country)
            print("Proxy identity:")
            print(identity)
            timestamp = datetime.now().strftime("%Y%m%d-%H%M%S")
            text_path = f"page_text_{safe_name}_{country}_{timestamp}.txt"
            with open(text_path, "w", encoding="utf-8") as f:
                f.write(text)
            print(f"Сохранен текст: {text_path}")
            saved_files.append(text_path)
    return saved_files
if __name__ == "__main__":
    if len(sys.argv) < 3:
        print("Использование: python check_page.py <URL> <country1,country2,...>")
        print("Пример: python check_page.py https://example.com be,us,de")
        sys.exit(1)
    target_url = sys.argv[1]
    country_list = [c.strip() for c in sys.argv[2].split(",") if c.strip()]
    run(target_url, country_list)

Сохраните и закройте.

Шаг 6. Запуск

Первый метод

Из той же папки (venv должен быть активирован — если закрывали Terminal, сначала source venv/bin/activate) прогоните команду:

python check_page.py https://ishosting.com be,us,de

Что должно произойти: в консоли блок Proxy identity на каждую страну (реальный IP/гео, по которому видно, что подключение действительно из нужной страны).

Второй метод

Попросите Claude Code в чате: «посмотри [URL] из Бельгии, США и Германии» — он запустит команду сам и разберет результат. Должно получится по одному .txt файлу с текстом страницы на каждую страну (page_text_<сайт>_<страна>_<время>.txt) — из них Claude достает конкретные данные (цены, тексты и т.п.) прямо в чат.

Мобильные прокси

Направляйте трафик AI-агентов через реальные мобильные сети, ротируйте IP и тестируйте страницы в разных странах.

Попробовать $1.99, 100 МБ

Про ротацию IP

В кабинете Froxy есть настройка forced rotation — обязательная смена IP раз в 90–3600 секунд (дефолт 3600). Это глобальная настройка конкретного типа прокси. Если нужно другое значение — меняете один раз в дашборде Froxy и все.

Диагностика

Если что-то не работает, проверьте голое подключение к прокси, в обход Playwright:

export $(grep -v '^#' .env | xargs)
curl -v -x "http://${FROXY_USER}:${FROXY_PASS_BASE}@${FROXY_HOST}:${FROXY_PORT}" https://ifconfig.co/json

Вывод ERR_TUNNEL_CONNECTION_FAILED / 407 означает неверный логин/пароль/host/port, опечатка в .env, либо у провайдера включена привязка по IP вместо логин/пароля.

Наш скрипт заточен именно под Froxy, поэтому если голый запрос проходит, а с ;country;;; в пароле нет, значит формат гео-параметра у вашего провайдера другой. Экспериментируйте: меняйте местами слоты, смотрите на country_iso в ответе ifconfig.co/json, пока не зафиксируете рабочий формат — и подставьте его в build_password().

Timeout ... networkidle — нормально для страниц с чатами/аналитикой, которые никогда полностью не «затихают» по сети; в скрипте уже стоит try/except с таймаутом 10 сек на этот случай.

Эксперименты: как мы оценили работу прокси в агенте

Тестирование прокси для AI-агента

Мы запустили агента по гайду и прогнали его через четыре сценария, чтобы проверить, что именно прокси меняет, что остается без изменений и где заканчиваются возможности нашего скрипта.

Это не лабораторный тест, а воспроизводимое испытание на рандомных сайтах.

Свой IP vs резидентный Froxy, 50 одинаковых задач

Что проверяли: нужен ли прокси вообще.

Критерий

Свой IP

Froxy

Успешно выполнено

31 из 50

50 из 50

Ошибок HTTP 429

19

0

Время на запрос

0,11 с

0,67 с

Свой IP к моменту запуска был уже «прогрет» предыдущими тестами в той же сессии. Качественный вывод от этого не меняется, но конкретную цифру 19 нельзя считать замером с чистого листа — на холодном своем IP отказов было бы меньше.

Вывод: без прокси агент упирается в rate-limit примерно на середине серии однотипных задач. Прокси добавляет полсекунды на запрос — это плата за то, что серия доходит до конца. Если у агента одна задача складывается из десятков обращений, то пусть лучше она будет чуть медленнее, чем вообще не выполнена.

Один промпт «найди цену X» с exit US / DE / BR

Что проверяли: влияет ли страна exit IP на данные, которые агент возвращает.

Мы прогнали страницу с тарифами определенного сайта через три гео за один вызов. Цены совпали полностью — от $4,00 в месяц за младший тариф и далее по всей сетке. Различий между США, Германией и Бразилией нет.

Выводы:

Во-первых, механизм «один промпт → N стран → готовые данные» отработал end-to-end: агент действительно вышел из трех разных стран и вернул сопоставимые структурированные данные. 

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

Итого, один прогон через три страны отвечает на вопрос примерно за минуту.

Поддержка одного IP

Что проверяли: держится ли один exit IP на протяжении задачи.

Провели пять запросов подряд с интервалом в секунду и все ушли с одного и того же адреса — 77.86.23.23 во всех пяти случаях. IP в пределах текущего окна ротации стабилен.

Это не сравнение режимов. Ротация у Froxy задается при генерации порта в личном кабинете, а не параметром в запросе. 

Наш вывод в том, что для агентных задач это даже удобнее. Режим фиксируется на уровне порта, поэтому «личность» агента задается выбором порта из заранее сгенерированного листа. Управление получается декларативным: агент не жонглирует ротацией на ходу, он просто работает с тем портом, который ему выдали на задачу.

Блокировка изображений, медиа и шрифтов

Что проверяли: сколько ресурсов экономит отказ от загрузки картинок, видео и шрифтов.

Скрипт отработал корректно — 7 запросов заблокированы. Экономия по времени оказалась небольшой: 0,6 секунды из 13. Полнота извлеченных данных не пострадала ни в одном из вариантов.

Хотя мы замеряли время, основной эффект здесь скорее в объеме трафика (резидентные прокси тарифицируются по гигабайтам). На выбранной странице тяжелого медиа почти нет, поэтому и экономия вышла скромной. Но на каталогах и маркетплейсах картинки составляют основную часть веса страницы.

Вывод: блокировать медиа стоит по умолчанию — на качество извлечения это не влияет, а на счет за трафик влияет тем сильнее, чем тяжелее целевой сайт.

FAQ

Можно ли использовать агента вместо скрапера?

Сделать так можно, но на больших объемах вы точно превысите все лимиты по трафику. Каждый шаг агента — это отдельный платный запрос к языковой модели, поэтому классический скрапинг 

Агент хорошо показывает себя на разнородных сайтах, при постоянно меняющейся верстке и в запутанных сценариях, так как способен быстро разобрать измененную структуру. Правда, платить придется скоростью и рисками: агент может выдавать очень убедительный, но совершенно неверный результат.

Самая разумная опция здесь — гибрид: агент один раз разбирает сложный сайт и создает гибкую схему извлечения, по которой дальше молотит дешевый скрапер. А сам агент подключается снова только тогда, когда верстка на сайте изменилась.

Можно ли автоматизировать пул через API Froxy?

Да, API управляет инфраструктурой — созданием и обновлением портов, настройкой гео-фильтров, контролем подписки и баланса.

Сам трафик агента идет напрямую через прокси-эндпоинт в обход API. Это удобно, когда у вас работает много агентов и каждому нужно на лету выделять отдельные порты под конкретные гео-локации или отслеживать расход трафика под задачу.

Какой тип прокси выбрать для агента: мобильные, резидентные или серверные?

Выбор зависит от целевого сайта, а не от архитектуры агента:

  • Серверные — быстрые, но легко детектятся. Подходят для открытых API, документации и сайтов без серьезной защиты.
  • Резидентные — оптимальный выбор для большинства задач. Хорошо справляются с антиботами и локализованным контентом.
  • Мобильные — используются для наиболее защищенных ресурсов и работы с мобильными версиями.

Главное специфическое требование для агентов — поддержка длительных сессий. Задача агента обычно занимает несколько минут, и смена IP в процессе может все сломать. 

И еще один практический момент: Claude Code не поддерживает SOCKS, поэтому выбирайте HTTP-прокси, если работаете с ним.

Сколько трафика съедает один агент за задачу?

В среднем выходит от нескольких единиц до десятков мегабайт на одну задачу. Браузерный агент работает как обычный пользователь — загружает страницу целиком, со всеми скриптами, картинками и шрифтами, причем делает это на каждом шаге.

Чтобы существенно снизить расход трафика, можно заблокировать загрузку медиафайлов и тяжелых элементов: на извлечение текста это обычно не влияет. 

Проксируется ли встроенный веб-поиск ChatGPT или Claude?

Нет. Когда модель использует встроенный веб-поиск, запрос уходит непосредственно с серверов OpenAI или Anthropic.

Системные прокси или утилиты вроде Proxifier меняют только ваш IP при обращении к самому сервису.

Если вы работаете в Chrome, то можете подключить прокси в браузере, тогда через расширение Claude in Chrome выход агента во внешний интернет будет проходить через прокси. 

Получайте уведомления о новых функциях и обновлениях Froxy

Узнайте первыми о новых функциях Froxy, чтобы оставаться в курсе событий происходящих на рынке цифровых технологий и получать новости о новых функциях Froxy.

Статьи по Теме

Кеширование в Python при скрапинге: сокращение количества запросов и ускорение сбора данных

Парсинг

Кеширование в Python при скрапинге: сокращение количества запросов и ускорение сбора данных

Механизмы кэширования Python и методы сохранения состояния сейчас играют главную роль. В этом гайде — как использовать кэширование в Python для...

Команда Froxy 9 дек. 2025 10 мин
Решение ошибки Facebook

Прокси

Решение ошибки Facebook "Session Expired" с помощью прокси

В этой статье описаны причины распространенной ошибки Facebook 'Session Expired', роль прокси-серверов в ее устранении, а также приведены инструкции...

Команда Froxy 25 янв. 2024 3 мин