2026 وہ سال ہے جب AI agents demos رہنا چھوڑ گئے۔ browser-use، OpenAI کے Operator-style agents، Anthropic کا computer use، اور Playwright پر بنائے گئے درجن بھر frameworks اب حقیقی ویب سائٹس کے خلاف حقیقی براؤزر چلاتے ہیں — booking، خریداری، research، نگرانی۔ اور وہ سب اسی دیوار سے ٹکراتے ہیں: جن سائٹس پر وہ کام کرتے ہیں وہ انہیں bots سمجھتی ہیں، کیونکہ وہ bots ہیں۔
یہ گائیڈ خاص طور پر براؤزر چلانے والے AI agents کے لیے proxy layer کا احاطہ کرتی ہے۔ اگر آپ کا agent براؤزر کے بجائے HTTP libraries استعمال کرتا ہے (LangChain tools، CrewAI کے اندر scrapers)، تو AI Agents کے لیے Proxies: LangChain، AutoGPT اور CrewAI دیکھیں — یہ مضمون ان agents کے بارے میں ہے جو ایک مکمل براؤزر کو کنٹرول کرتے ہیں۔
غیر بدیہی لیکن سچ: ایک حقیقی Chrome براؤزر چلانے والا ایک LLM agent اکثر ایک سادہ Python scraper سے تیزی سے block ہو جاتا ہے۔ تین وجوہات:
navigator.webdriver، CDP-مخصوص timing artifacts، اور headless tells کی تحقیق کرتی ہیں۔ ایک flagged IP کے ساتھ مل کر، score فوری طور پر block کی حد پار کر جاتا ہے۔IP تینوں میں سے ٹھیک کرنے کے لیے سب سے سستا ہے، اور اکیلے اسے ٹھیک کرنا زیادہ تر blocks حل کر دیتا ہے: agent کو residential proxies کے ذریعے route کریں تاکہ IP کی کہانی براؤزر کی کہانی سے میچ کرے۔
browser-use Playwright پر بیٹھتا ہے، لہٰذا proxy support مقامی ہے۔ pattern: ہر agent task کے لیے ایک sticky session، تاکہ جب تک agent کام کرتا رہے IP مستحکم رہے، اور اگلے task کے لیے ایک تازہ IP۔
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()
اہم تفصیل: session-{task_id} suffix۔ اس کے بغیر، ایک rotating gateway agent کو task کے دوران ایک نیا IP دے سکتا ہے — cart کے مواد غائب ہو جاتے ہیں، logins ٹوٹ جاتے ہیں، اور agent steps دوبارہ کرتے ہوئے LLM calls ضائع کرتا ہے۔ اس کے ساتھ، task شروع سے آخر تک ایک IP پر چلتا ہے، اور اگلے task کو ایک صاف IP ملتا ہے۔
اگر آپ نے Playwright پر اپنا agent loop بنایا ہے (وہ pattern جو زیادہ تر Operator-style اور computer-use implementations کے پیچھے ہے)، تو proxy براؤزر 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
locale اور timezone_id کو proxy کے country سے میچ کرنے کے لیے سیٹ کریں۔ ایک agent جو UTC+8 گھڑی کے ساتھ کسی US IP سے براؤز کر رہا ہو، ایک inconsistency ہے جسے behavioral سسٹمز آپ کے خلاف score کرتے ہیں۔
Per-context proxies آپ کو ایک براؤزر، کئی agents بھی دیتے ہیں: ہر new_context() اپنا session suffix اٹھا سکتا ہے، لہٰذا دس متوازی agent tasks دس مختلف residential IPs پر چلتے ہیں بغیر دس Chrome processes کے۔
| Agent workload | Session حکمت عملی | کیوں |
|---|---|---|
| Research / price checks (کوئی login نہیں) | Sticky، 10 منٹ، ہر task پر نیا session | task کے اندر مستحکم، tasks کے درمیان تازہ IP |
| Logged-in اکاؤنٹ operation | Sticky 30 منٹ، ہر run پر وہی session ID | سائٹس ان اکاؤنٹس کو flag کرتی ہیں جو logins کے درمیان ممالک بدلتے ہیں |
| Checkout / booking flows | Sticky 30 منٹ | checkout کے دوران IP تبدیلی session کو ختم کر دیتی ہے اور fraud review ٹرگر کرتی ہے |
| High-volume نگرانی (سینکڑوں صفحات) | Rotating، کوئی session pin نہیں | IP diversity کو زیادہ سے زیادہ کریں، محفوظ رکھنے کے لیے کوئی state نہیں |
Residential ٹریفک per GB بل کیا جاتا ہے، اور ایک براؤزر agent مکمل صفحات کھینچتا ہے — images، fonts، trackers — ایک HTTP scraper کے برعکس۔ غیر منظم، ایک agent task 20–50 MB کھا سکتا ہے۔ تین حل، اثر کی ترتیب میں:
await context.route("**/*.{png,jpg,jpeg,webp,gif,woff,woff2,mp4}",
lambda route: route.abort())
اگر آپ کا agent screenshots پڑھتا ہے، تو target صفحے پر images رکھیں لیکن پھر بھی video اور fonts block کریں۔ اگر یہ DOM/accessibility tree پڑھتا ہے، تو images بھی block کریں — ٹریفک کو 60–80% تک کاٹتا ہے۔image blocking اور scoped routing کے ساتھ، عام browser-agent tasks 2–8 MB کی range میں آتے ہیں — $2/GB پر یہ ہر سو tasks پر چند سینٹ ہے۔
ایمانداری کا سیکشن۔ ایک residential IP ASN mismatch اور IP reputation کو ٹھیک کرتا ہے، جو 2026 anti-bot scoring میں سب سے بھاری واحد signal ہے۔ یہ ٹھیک نہیں کرتا:
requests کے ساتھ agent requests کو "بس replay" نہیں کر سکتے۔ دیکھیں JA3/JA4 کی وضاحت۔تینوں کو ایک residential IP پر جوڑیں اور browser agents وہی checks پاس کرتے ہیں جو حقیقی صارفین کرتے ہیں۔ سب سے مشکل اہداف (DataDome، PerimeterX) کے لیے، ہماری DataDome/PerimeterX گائیڈ دیکھیں۔
timezone_id/locale کو proxy کے country سے میچ کریں۔500MB مفت ٹریفک — resource blocking آن کے ساتھ کئی سو browser-agent tasks کے لیے کافی۔
مفت ٹرائل شروع کریںنئے صارفین کو سائن اپ پر 500MB ملتے ہیں، اس کے علاوہ پہلے ری چارج پر بونس۔ پیشکش محدود وقت کے لیے ہے۔