Ang 2026 ang taon na tumigil na sa pagiging demo ang mga AI agent. Ang browser-use, ang mga Operator-style na agent ng OpenAI, ang computer use ng Anthropic, at isang dosenang framework na nakabatay sa Playwright ay nagpapatakbo na ngayon ng totoong browser laban sa totoong mga website — nagbu-book, bumibili, nananaliksik, nagmo-monitor. At lahat sila ay tumatama sa parehong pader: tinuturing silang bot ng mga site na pinapatakbuhan nila, dahil bot nga sila.
Saklaw ng gabay na ito ang proxy layer para sa mga browser-driving na AI agent sa partikular. Kung ang iyong agent ay gumagamit ng mga HTTP library sa halip na browser (mga LangChain tool, mga scraper sa loob ng CrewAI), tingnan ang Proxies for AI Agents: LangChain, AutoGPT & CrewAI — ang artikulong ito ay tungkol sa mga agent na kumokontrol ng buong browser.
Salungat sa inaasahan ngunit totoo: ang isang LLM agent na nagpapatakbo ng totoong Chrome browser ay madalas na mas mabilis ma-block kaysa sa isang simpleng Python scraper. Tatlong dahilan:
navigator.webdriver, mga CDP-specific na timing artifact, at mga palatandaan ng headless. Kapag pinagsama sa isang flagged na IP, agad na lumalampas ang score sa threshold ng block.Ang IP ang pinakamurang ayusin sa tatlo, at ang pag-aayos nito lamang ay nareresolba na ang karamihan sa mga block: i-ruta ang agent sa pamamagitan ng residential proxies para tumugma ang kuwento ng IP sa kuwento ng browser.
Ang browser-use ay nakaupo sa Playwright, kaya native ang suporta sa proxy. Ang pattern: isang sticky session bawat agent task, para manatiling stable ang IP habang nagtatrabaho ang agent, at isang sariwang IP para sa susunod na task.
from browser_use import Agent, Browser, BrowserConfig
from langchain_openai import ChatOpenAI
import uuid
task_id = uuid.uuid4().hex[:8]
browser = Browser(config=BrowserConfig(
proxy={
"server": "http://us.jibaoproxy.com:913",
"username": f"USERNAME-session-{task_id}", # sticky: same IP for this task
"password": "PASSWORD",
},
))
agent = Agent(
task="Find the current price of the Sony WH-1000XM6 on the three largest US retailers.",
llm=ChatOpenAI(model="gpt-4o"),
browser=browser,
)
result = await agent.run()
Mahalagang detalye: ang suffix na session-{task_id}. Kung wala ito, maaaring magbigay ang isang rotating gateway sa agent ng bagong IP sa kalagitnaan ng task — nawawala ang laman ng cart, nahuhulog ang mga login, at nasasayang ng agent ang mga LLM call sa pag-uulit ng mga hakbang. Sa pamamagitan nito, tumatakbo ang task sa isang IP mula simula hanggang katapusan, at nakakakuha ang susunod na task ng isang malinis.
Kung nakagawa ka ng sarili mong agent loop sa Playwright (ang pattern sa likod ng karamihan sa mga Operator-style at computer-use na implementasyon), ang proxy ay napupunta sa browser context:
from playwright.async_api import async_playwright
async with async_playwright() as p:
browser = await p.chromium.launch(headless=False)
context = await browser.new_context(
proxy={
"server": "http://us.jibaoproxy.com:913",
"username": "USERNAME-session-agent42",
"password": "PASSWORD",
},
viewport={"width": 1366, "height": 768},
locale="en-US",
timezone_id="America/Chicago", # match the proxy country
)
page = await context.new_page()
# ... agent loop: screenshot -> LLM -> action -> repeat
Itakda ang locale at timezone_id para tumugma sa bansa ng proxy. Ang isang agent na nagba-browse mula sa isang US IP na may UTC+8 na orasan ay isang hindi pagkakatugma na ginagamit laban sa iyo ng mga behavioral system.
Ang mga per-context proxy ay nagbibigay rin sa iyo ng isang browser, maraming agent: bawat new_context() ay maaaring magdala ng sarili nitong session suffix, kaya ang sampung sabay-sabay na agent task ay tumatakbo sa sampung iba't ibang residential IP nang walang sampung Chrome process.
| Agent workload | Session strategy | Bakit |
|---|---|---|
| Pananaliksik / price check (walang login) | Sticky, 10 min, bagong session bawat task | Stable sa loob ng task, sariwang IP sa iba't ibang task |
| Logged-in na operasyon ng account | Sticky 30 min, parehong session ID sa bawat run | Fina-flag ng mga site ang mga account na lumilipat ng bansa sa pagitan ng mga login |
| Mga checkout / booking flow | Sticky 30 min | Ang pagbabago ng IP sa kalagitnaan ng checkout ay pinapatay ang session at nagti-trigger ng fraud review |
| High-volume na monitoring (daan-daang pahina) | Rotating, walang session pin | I-maximize ang IP diversity, walang state na pananatilihin |
Ang residential traffic ay sinisingil kada GB, at ang isang browser agent ay humihila ng buong pahina — mga larawan, font, tracker — hindi tulad ng isang HTTP scraper. Kung hindi pamamahalaan, ang isang agent task ay maaaring kumain ng 20–50 MB. Tatlong pag-aayos, ayon sa pagkakasunod-sunod ng epekto:
await context.route("**/*.{png,jpg,jpeg,webp,gif,woff,woff2,mp4}",
lambda route: route.abort())
Kung binabasa ng iyong agent ang mga screenshot, panatilihin ang mga larawan sa target na pahina ngunit i-block pa rin ang video at font. Kung binabasa nito ang DOM/accessibility tree, i-block din ang mga larawan — binabawasan ang traffic ng 60–80%.Sa image blocking at scoped routing, ang karaniwang browser-agent na task ay napupunta sa 2–8 MB na saklaw — sa $2/GB iyon ay ilang sentimo bawat isang daang task.
Seksyon ng katapatan. Inaayos ng isang residential IP ang ASN mismatch at IP reputation, na siyang pinakamabigat na solong signal sa anti-bot scoring ng 2026. Hindi nito inaayos:
requests mamaya. Tingnan ang JA3/JA4 explained.I-stack ang lahat ng tatlo sa isang residential IP at ang mga browser agent ay makakapasa sa parehong mga check na ginagawa ng totoong user. Para sa pinakamahihirap na target (DataDome, PerimeterX), tingnan ang aming DataDome/PerimeterX guide.
timezone_id/locale sa bansa ng proxy.500MB ng libreng traffic — sapat para sa ilang daang browser-agent na task na may naka-on na resource blocking.
Simulan ang Libreng TrialAng mga bagong user ay makakatanggap ng 500MB sa pagrehistro, kasama ang bonus sa unang recharge. Limitadong oras lang ang alok.