ওয়েব স্ক্র্যাপার আপনার লেখা নির্দেশ অনুসরণ করে। ব্রাউজার এজেন্ট নিজেই সিদ্ধান্ত নেয়: রেন্ডার হওয়া পেজ দেখে, পরের ধাপ নিয়ে যুক্তি করে, এবং তা করতে একটি বাস্তব ব্রাউজারে ক্লিক, টাইপ ও স্ক্রল করে। browser-use, Skyvern ও Anthropic-এর computer-use-এর মতো টুল একটি LLM-কে এমন কিছুতে পরিণত করে যা মানুষের মতো ব্রাউজার চালায় — ফর্ম পূরণ, ফ্লো পার হওয়া, ফলাফল পড়া, লেআউট সরে গেলে সামলে নেওয়া।
এটি কেবল তখনই কাজ করে যখন ব্রাউজার সর্বদা চলতে থাকে। আপনার ল্যাপটপে ঢাকনা বন্ধ করার মুহূর্তেই থেমে যায়। এই পেজ একটি ব্রাউজার এজেন্টকে সঠিক আকারে একটি সার্ভারে বসিয়ে চব্বিশ ঘণ্টা চালানোর কথা।
স্ক্র্যাপার বনাম এজেন্ট — সঠিক টুল বাছুন
আপনি কোনটি বানাচ্ছেন সে বিষয়ে সৎ থাকুন, কারণ দুটোর চাহিদা আলাদা:
- স্ক্র্যাপার (httpx, Scrapy) পরিচিত URL আনে এবং স্থির ফিল্ড তোলে। নির্ধারিত, হালকা, সস্তা। এটাই যদি কাজ হয়, সঠিক পেজ ওয়েব স্ক্র্যাপিং গাইড — যে ব্রাউজার লাগে না তার জন্য টাকা দেবেন না।
- ব্রাউজার এজেন্ট পেজকে বাস্তব Chromium-এ রেন্ডার করে এবং প্রতিটি ক্রিয়া LLM-কে ঠিক করতে দেয়। স্ক্র্যাপার যা পারে না — ডায়নামিক অ্যাপ, অপ্রত্যাশিত লেআউট, বহু-ধাপ ফ্লো — সে তা সামলায়, ভারী বক্স ও প্রতি ধাপে মডেল কলের বিনিময়ে।
এই পেজ দ্বিতীয়টি নিয়ে।
বক্সের আসলে কী দরকার
এজেন্ট লুপ নিজে ক্ষুদ্র; সম্পদ খায় headless ব্রাউজার।
- RAM-ই সীমাবদ্ধতা। headless Chromium ~৩০০-৫০০ MB, প্রতি অতিরিক্ত ট্যাব বা কনটেক্সটে ১০০-২০০ MB যোগ, সঙ্গে রানটাইম। একটি ব্রাউজার চালানো এক এজেন্ট Small ($8/মাস — 4 vCPU, 4 GB)-এ স্বাচ্ছন্দ্যে। একসঙ্গে একাধিক ব্রাউজার কনটেক্সট চালানো আপনাকে Medium ($12)-এর দিকে ঠেলে।
- GPU নেই। মডেল আপনার প্রোভাইডারে চলে (Anthropic/OpenAI); সার্ভার অর্কেস্ট্রেশন ও রেন্ডারিং করে। এটি CPU ও RAM।
- NAT যথেষ্ট। এজেন্ট শুধু আউটবাউন্ড কল করে — যে সাইট চালায় ও মডেল API-তে। ডেডিকেটেড IP কেবল ইনবাউন্ড সার্ভিসের জন্য।
সেটআপ
# Ubuntu 24.04
apt update && apt install -y python3-venv git
python3 -m venv ~/agent && source ~/agent/bin/activate
# browser-use + Playwright-এর জন্য Chromium
pip install browser-use
playwright install --with-deps chromium
একটি ন্যূনতম লুপ মডেল কী এনভায়রনমেন্ট থেকে পড়ে, কখনো কোডে হার্ডকোড করে না:
# run.py
import os, asyncio
from browser_use import Agent
from browser_use.llm import ChatAnthropic
async def main():
agent = Agent(
task="Open the status page and report which services are down.",
llm=ChatAnthropic(model="claude-sonnet-4-5", api_key=os.environ["ANTHROPIC_API_KEY"]),
)
await agent.run()
asyncio.run(main())
ক্র্যাশ ও রিবুট পেরিয়ে একটি systemd সার্ভিস দিয়ে একে জীবিত রাখুন — যে প্যাটার্ন যেকোনো এজেন্টকে ২৪/৭ চালু রাখে, Restart=always সহ এবং মডেল কী EnvironmentFile-এ, ইউনিটে নয়।
RAM-এর দিকে খেয়াল রাখুন। যে ব্রাউজার এজেন্ট ট্যাব কখনো বন্ধ করে না, সে ধীরে ধীরে বক্স খেয়ে ফেলবে — কাজ শেষে পেজ ও কনটেক্সট বন্ধ করুন এবং কনকারেন্সি সীমিত রাখুন। লিক হওয়া Chromium এসব এজেন্ট ভেঙে পড়ার সবচেয়ে সাধারণ কারণ।
যা আসলে আমাদের নিজস্ব: এজেন্ট নিজেই বক্স ভাড়া নিতে পারে
এখানেই EQVPS সাধারণ হোস্ট থেকে আলাদা। আমাদের MCP সার্ভার-এর মাধ্যমে এজেন্ট রেজিস্টার করতে, ক্রিপ্টো ব্যালেন্স টপ-আপ করতে এবং order_vps — নিজেই একটি নতুন মেশিন অর্ডার করতে পারে, চেকআউটে কোনো মানুষ ছাড়া। তাই যে ব্রাউজার এজেন্টের রানের জন্য পরিষ্কার পরিবেশ দরকার সে নিজেই সার্ভার প্রোভিশন করতে, ব্রাউজার চালাতে এবং শেষে তা ধ্বংস করতে পারে — সবই প্রিপেইড ব্যালেন্স থেকে।
এটিকে KYC-ছাড়া ক্রিপ্টো পেমেন্টের সঙ্গে জুড়ুন এবং পুরো লুপ যেকোনো পরিচয়-ছাপের বাইরে থাকে: রেজিস্টারে ইমেইল, পেমেন্টে USDC বা USDT, root প্রায় এক মিনিটে।
সৎ সীমা
- কেবল CPU, এক অঞ্চল (জার্মানি)। ব্রাউজার চালানো ও API কল করার জন্য ঠিক; GPU বা নির্দিষ্ট ভূগোল দরকার হলে আগেই জেনে নিন।
- মডেল খরচ আলাদা। প্রতি ধাপ একটি মডেল কল; বাচাল এজেন্টের API বিল সাধারণত $8 সার্ভারকে বামন করে দেয়। মেশিন সস্তা অংশ।
- কোথায় তাক করছেন তার প্রতি সম্মান রাখুন। ব্রাউজার এজেন্ট লগইন, সাবমিট ও কেনাকাটা করতে পারে। কেবল সেই সাইটেই তাক করুন যেগুলো চালানোর অধিকার আপনার আছে; অপব্যবহার, প্রতারণা ও সেবা-অস্বীকৃতি গ্রহণযোগ্য ব্যবহার নীতি লঙ্ঘন করে।
এর ভেতরে, নিজের সদা-চালু সার্ভারে একটি ব্রাউজার এজেন্ট সত্যিই কার্যকর প্যাটার্ন — আপনি ঘুমালে এটি কাজ করে। একটি প্ল্যান বাছুন, ক্রিপ্টোতে দিন, আর এক মিনিটে একটি চালু করুন। আপনার কাজ যুক্তি নয় বরং স্থির এক্সট্র্যাকশন হলে, ওয়েব স্ক্র্যাপিং গাইড সস্তা ও সরল পথ।
মন্তব্য
এখনো কোনো মন্তব্য নেই। প্রথম হোন।