- Хост
- gw.prokso.com
- Порт
- 823 HTTP · 824 SOCKS5 — новий IP на кожен запит · 10000–20000 фіксований IP (sticky-сесія), HTTP(S) і SOCKS5
- Логін і пароль
- у кабінеті, на сторінці плану
Готові рядки у потрібному форматі генерує кабінет: оберіть країну, тип IP і протокол.
- Хост — gw.prokso.com, порти 823 (HTTP), 824 (SOCKS5), 10000–20000 (фіксований IP, HTTP або SOCKS5)
- Логін і пароль — у кабінеті на сторінці плану
- Перевіряйте IP у відповіді самого запиту через проксі: сторінка «Мій IP» у браузері ваш скрипт не перевіряє
Покрокова інструкція, як підключити проксі Prokso в Browser Use. Займе кілька хвилин.
Крок 1. Візьміть дані проксі в особистому кабінеті
Відкрийте план і скопіюйте хост gw.prokso.com, порт, логін і пароль. Порт 823 — HTTP, 824 — SOCKS5 (обидва дають новий IP на кожен запит); порти 10000–20000 — фіксований IP (sticky-сесія) до 120 хвилин, працюють і як HTTP, і як SOCKS5 (кожен порт — окрема адреса). Країну задають у логіні: логін__cr.ua.
Крок 2. Встановіть бібліотеку
Потрібен Python 3.11 або новіший. Офіційний спосіб — uv add browser-use, підійде й pip install browser-use. Ключ моделі, якою керуватиметься агент, запишіть у файл .env, наприклад OPENAI_API_KEY=…. Інструкція написана для версії 0.13.
Крок 3. Опишіть проксі через ProxySettings
Створіть ProxySettings з полями server, username і password та передайте його параметром proxy у Browser. Адреса — http://gw.prokso.com з фіксованим портом 10000–20000, логін і пароль — із генератора в кабінеті. Країну задає логін: ЛОГІН__cr.de.
import asyncio
from browser_use import Agent, Browser, ChatOpenAI
from browser_use.browser import ProxySettings
from dotenv import load_dotenv
load_dotenv()
browser = Browser(
proxy=ProxySettings(
server="http://gw.prokso.com:10001",
username="ЛОГІН",
password="ПАРОЛЬ",
),
)
async def main():
agent = Agent(
task="Open https://api.ipify.org and return the IP address shown on the page",
llm=ChatOpenAI(model="gpt-5.6-luna"),
browser=browser,
)
history = await agent.run()
print(history.final_result())
asyncio.run(main())Збережіть код як agent.py поруч із файлом .env і запустіть: uv run agent.py або python agent.py. Модель можна взяти будь-яку зі списку підтримуваних у документації Browser Use.
Крок 4. Передайте браузер агенту
Віддайте створений browser агенту параметром browser. Browser — те саме, що BrowserSession, документація радить коротшу назву. Логін і пароль Browser Use підставляє сам, коли проксі їх запитує, тож вікна авторизації не буде, а агент і модель пароля не бачать.
Крок 5. Чому фіксований порт
Агент відкриває сторінки, клікає й заповнює форми в одній сесії, а сайт пов'язує сесію з IP — зміна адреси посеред завдання виглядає підозріло й може скинути вхід в акаунт. Тому дайте агенту фіксований порт 10000–20000 і поставте в кабінеті час утримання IP (1–120 хвилин) з запасом на все завдання. Порт 823 з новим IP на кожен запит лишіть для разових коротких перевірок.
Крок 6. HTTP, а не SOCKS5
Browser Use відповідає на запит авторизації саме HTTP-проксі, а Chromium не передає пароль SOCKS5-проксі. Тому з логіном і паролем беріть схему http://. SOCKS5 (socks5://gw.prokso.com:824 чи фіксований порт) працюватиме лише з доступом за IP: додайте в кабінеті адресу машини, де запущено агента, і не заповнюйте username та password.
Крок 7. Перевірте вивід
Запустіть приклад: агент відкриває https://api.ipify.org і друкує IP, який бачить сайт. Це має бути адреса проксі, а не ваша. Помилка 407 означає неправильний логін або пароль чи вичерпаний трафік на плані. Сторінка «Мій IP» у вашому браузері тут не допоможе: скрипт запускає власний браузер, а ваш іде напряму.
Кілька агентів Browser Use паралельно, у кожного свій IP
Кожному агенту потрібен свій Browser. Якщо агенти ділять один браузер, вони ділять і IP, і cookies, а їхні сесії на сайті перемішуються. Дайте кожному або свій фіксований порт 10000–20000, або свій номер сесії в логіні на порту 823. Логін — окреме поле ProxySettings, тож символ ; кодувати не потрібно.
import asyncio
import os
from browser_use import Agent, Browser, ChatOpenAI
from browser_use.browser import ProxySettings
from dotenv import load_dotenv
load_dotenv()
PASSWORD = os.environ["PROKSO_PASSWORD"] # пароль береться з .env, а не з коду
TASKS = {
"agent1": "Open https://example.com/catalog and list the first five product names",
"agent2": "Open https://example.com/delivery and summarise the delivery terms",
}
def make_browser(session):
return Browser(
proxy=ProxySettings(
server="http://gw.prokso.com:823",
username=f"ЛОГІН__cr.us;sessid.{session}", # свій IP на агента приблизно на 30 хвилин
password=PASSWORD,
),
allowed_domains=["https://example.com", "*.example.com"], # агент не виходить за межі цього сайту
)
async def run(session, task):
agent = Agent(
task=task,
llm=ChatOpenAI(model="gpt-5.6-luna"),
browser=make_browser(session),
max_failures=3,
)
history = await agent.run(max_steps=25)
print(session, history.is_done(), history.final_result())
async def main():
await asyncio.gather(*(run(s, t) for s, t in TASKS.items()))
asyncio.run(main())allowed_domains тримає агента на сайті із завдання: він не піде за рекламою і не блукатиме пошуковиками, а це економить трафік. За замовчуванням кожен Browser отримує тимчасовий профіль, тож агенти не ділять cookies. Якщо задаєте user_data_dir, дайте кожному браузеру окрему папку.
Час утримання IP проти max_steps і тривалості завдання
Запуск агента — ланцюжок кроків: кожен крок — це виклик моделі плюс дії в браузері. step_timeout в Agent обмежує один крок (за замовчуванням 180 секунд), а max_steps в agent.run() — їхню кількість (за замовчуванням 500). Тож у гіршому разі запуск триває значно довше, ніж тримається IP.
Задайте реалістичний max_steps під завдання, заміряйте, скільки триває типовий запуск, і оберіть час утримання із запасом. Номер сесії в логіні тримає IP приблизно 30 хвилин; для довших завдань беріть фіксований порт, де час утримання — до 120 хвилин. Резидентський чи мобільний IP може змінитися раніше, якщо пристрій вийшов із мережі: порт тоді отримує новий IP тієї ж країни, тож пишіть завдання так, щоб агент міг продовжити, наприклад знову відкрити стартову сторінку.
ProxySettings покриває лише трафік Chromium. Звернення до API моделі йдуть із вашого Python-процесу і трафік плану не витрачають. Кожну сторінку агент завантажує повністю, з картинками і скриптами, тому точне завдання з прямою адресою коштує менше, ніж «знайди в інтернеті».
Що повідомляє агент Browser Use, коли проксі збоїть
Помилка переходу не обвалює скрипт: агент записує її в крок і пробує ще раз, до max_failures разів (за замовчуванням 5). Після запуску history.has_errors() і history.errors() покажуть, що сталося. Типові повідомлення:
- net::ERR_PROXY_CONNECTION_FAILED. Chromium не може дістатися до
gw.prokso.com: перевірте порт уserverі те, що вихідні з'єднання дозволені на машині з агентом. - net::ERR_TUNNEL_CONNECTION_FAILED. Проксі не відкрив тунель до сайту: на плані скінчився трафік чи він на паузі, сайт є в списку закритих сайтів або працює на закритому порту.
- Агент раз у раз потрапляє на сторінку «доступ заборонено» чи капчу. Сайт не хоче автоматичних відвідувань. Агенту тут нічого робити: зупиніть завдання і перевірте правила сайту та наші правила використання.
Якщо проксі не працює
Питання й відповіді
Для якої версії написана інструкція?
Для версії Browser Use 0.13. У ній проксі задається параметром proxy у Browser. Для сумісності зі старим кодом ті самі параметри приймає й BrowserProfile, який передають у Browser(browser_profile=…).
Чи треба писати пароль проксі в завданні агента?
Ні, і не варто: завдання читає модель. Логін і пароль лежать лише в ProxySettings, Browser Use підставляє їх сам. Щоб не тримати пароль у коді, читайте його зі змінної в .env.
Що означає помилка 407?
Проксі не прийняв логін або пароль. Скопіюйте їх із генератора в кабінеті ще раз, без пробілів на початку й у кінці, і перевірте, чи на плані лишився трафік.
Чи рахується трафік до API моделі в моєму плані?
Ні, поки задано лише ProxySettings: він проксіює браузер, а клієнт моделі з'єднується з вашого скрипту напряму. Якщо задати HTTP_PROXY чи HTTPS_PROXY для всього процесу, запити до моделі теж можуть піти через проксі.
Чи можуть два агенти ділити один фіксований порт?
Технічно так, але тоді обидва виходять з одного IP, і сайт бачить два набори cookies з однієї адреси. Для окремих завдань дайте кожному агенту свій порт або номер сесії.
Скільки агентів можна запустити на одному плані?
План дозволяє до 1000 одночасних з'єднань, а браузер відкриває кілька з'єднань на сторінку. На практиці межа — пам'ять вашої машини та ліміти моделі, а не план.