مرورگر بعدی برای ما نیست؛ برای AIهاست!

Cloudflare مرورگری به اسم Kitesurf ساخته که از اول برای AI Agentها طراحی شده، نه برای من و شما. ببینیم چرا یک Agent اصلاً به مرورگر مخصوص خودش نیاز دارد.

مرورگر بعدی برای ما نیست؛ برای AIهاست!

Agentic Internet / 01

مرورگر بعدی برای ما نیست؛ برای AIهاست!

۷ شهریور ۱۴۰۵

سلام سلام!

یه سؤال عجیب دارم.

فرض کنید به یه AI Agent می‌گید:

برو توی سایت فلان فروشگاه، لپ‌تاپ‌های زیر ۱۰۰۰ دلار رو پیدا کن، مشخصاتشون رو مقایسه کن و بهترین گزینه رو بهم بگو.

برای ما این کار خیلی عادیه.

Chrome رو باز می‌کنیم، سرچ می‌کنیم، چند تا تب باز می‌کنیم، اسکرول می‌کنیم و اطلاعات مورد نیازمون رو درمیاریم.

ولی Agent چی؟

اون هم در خیلی از موارد مجبور می‌شه تقریباً همین کار رو انجام بده. یه مرورگر واقعی بالا بیاره، صفحه رو لود کنه، JavaScript اجرا کنه، DOM رو بخونه، روی دکمه‌ها کلیک کنه و بین صفحه‌ها بچرخه.

اینجا یه مشکل بامزه داریم.

Chrome برای AI ساخته نشده.

اصلاً چرا باید یه مدل هوش مصنوعی پول CPU و RAM بده تا انیمیشن منوی سایت شما با ۶۰ فریم بر ثانیه اجرا بشه؟

Cloudflare همین سؤال رو پرسیده و جوابش شده یه مرورگر جدید به اسم Kitesurf.

اصلاً Agent چرا مرورگر می‌خواد؟

مدل زبانی به‌تنهایی اینترنت نداره.

وقتی از یه Agent مثل Codex، Claude Code یا یه Agent داخل OpenCode می‌خواید بره یه سایت رو بررسی کنه، یه چیزی باید واقعاً اون سایت رو باز کنه.

برای بعضی کارها یه درخواست HTTP ساده کافیه.

ولی وب امروزی پر شده از سایت‌هایی که بدون JavaScript نصفشون اصلاً وجود خارجی نداره.

دکمه‌ها بعد از اجرای JavaScript ساخته می‌شن، اطلاعات با API لود می‌شه، Login داریم، فرم داریم، Cookie داریم و بعضی وقت‌ها Agent حتی باید بفهمه کدوم عنصر صفحه قابل کلیکه.

اینجا معمولاً ابزارهایی مثل Chromium، Playwright و Puppeteer وارد داستان می‌شن.

یعنی برای اینکه ربات بتونه یه صفحه رو بخونه، پشت صحنه ممکنه یه مرورگر تقریباً کامل اجرا بشه.

برای یه Agent مشکل خاصی نیست.

برای صد تا Agent چی؟

برای ده هزار تا چی؟

اونجا داستان گرون می‌شه.

مشکل اینه که Chromium زیادی انسانیه

یه لحظه به چیزهایی که از مرورگرتون انتظار دارید فکر کنید.

فونت دقیق باشه.

اسکرول نرم باشه.

ویدیو پخش بشه.

WebGL کار کنه.

تب داشته باشید.

Extension نصب کنید.

صفحه دقیقاً همون شکلی Render بشه که طراح سایت خواسته.

همه اینا برای ما مهمه.

برای یه Agent که فقط می‌خواد اسم و قیمت ۲۰ تا محصول رو دربیاره، خیلی‌هاشون تقریباً هیچ ارزشی ندارن.

Agent قرار نیست بشینه از طراحی Hero Section سایت لذت ببره.

اون اطلاعات می‌خواد.

DOM می‌خواد.

شبکه می‌خواد.

JavaScript می‌خواد.

بعضی وقت‌ها هم Screenshot می‌خواد تا یه مدل Vision صفحه رو ببینه.

Cloudflare متوجه همین تفاوت شد و به‌جای اینکه باز هم Chromium رو سبک‌تر کنه، تصمیم گرفت یه Browser Engine جدید بسازه که از اول برای Agent طراحی شده باشه.

اسمش شد Kitesurf.

Kitesurf دقیقاً چیه؟

Kitesurf یه مرورگر Agent-first از Cloudflareئه که روی Cloudflare Workers اجرا می‌شه.

ایده خیلی ساده‌ست.

یه مرورگر بساز که چیزهای مورد نیاز Agent رو خوب انجام بده و برای قابلیت‌هایی که بیشتر به درد انسان می‌خورن، هزینه اضافه نده.

Cloudflare می‌گه Kitesurf برای کارهایی مثل استخراج HTML و گرفتن Screenshot، در تست‌های خودش بین ۳ تا ۷ برابر CPU و RAM کمتری از Chromium مصرف کرده.

این عدد مهمه.

نه چون لپ‌تاپ من و شما با Kitesurf سریع‌تر می‌شه. اصلاً قرار نیست Kitesurf جای Chrome روی دسکتاپمون رو بگیره.

موضوع Scaleـه.

اگر یه سرویس قراره همزمان هزاران Agent رو بفرسته توی وب، چند برابر کاهش مصرف RAM و CPU می‌تونه تفاوت بین یه سرویس قابل استفاده و یه قبض سرور ترسناک باشه.

البته Chromium فعلاً در بعضی بخش‌ها هنوز سریع‌تره. خود Cloudflare هم گفته در تست مورد اشاره‌شون Chromium از نظر زمان اجرا حدود ۱.۷ برابر سریع‌تر بوده.

پس قصه این نیست که Kitesurf آمده Chromium رو نابود کند.

هدفش چیز دیگه‌ایه.

کمتر مصرف کن، سریع بالا بیا، کارت رو انجام بده و بعد ناپدید شو.

مرورگری که قرار نیست زیاد زنده بمونه

یکی از قسمت‌های جالب Kitesurf نگاهش به Stateـه.

وقتی Chrome رو باز می‌کنید، انتظار دارید Session شما باقی بمونه.

Loginها، Cookieها، تب‌ها و کلی اطلاعات دیگه باید حفظ بشن.

Kitesurf تا جای ممکن برعکس فکر می‌کنه.

یه Task میاد.

Browser ساخته می‌شه.

کار انجام می‌شه.

Browser می‌میره.

تمام.

Cloudflare خودش Kitesurf رو یه Engine موقتی و ایزوله توصیف می‌کنه که برای مدت همون Task زنده می‌مونه.

این دقیقاً به درد Agentها می‌خوره.

فرض کنید ۵۰۰۰ Agent همزمان باید ۵۰۰۰ صفحه مختلف رو بررسی کنن.

لازم نیست ۵۰۰۰ مرورگر کامل رو از قبل روشن نگه دارید و دعا کنید RAM سرور منفجر نشه.

Workload میاد، Resource ساخته می‌شه، کارش رو می‌کنه و کنار می‌ره.

این مدل برای Cloudflare Workers هم خیلی طبیعی‌تره.

یعنی باید ابزارهای فعلیمون رو عوض کنیم؟

اینجاش قشنگه.

نه لزوماً.

Cloudflare برای Kitesurf بخشی از Chrome DevTools Protocol یا همون CDP رو پیاده کرده.

اگر تا حالا با Browser Automation کار کرده باشید احتمالاً اسم CDP به گوشتون خورده.

ابزارهایی مثل Puppeteer، Playwright و Chrome DevTools می‌تونن از همین Protocol برای صحبت با مرورگر استفاده کنن.

در نتیجه قرار نیست برای Kitesurf یه دنیای کاملاً جدید از ابزارها بسازیم.

Cloudflare حتی برای استفاده از Kitesurf با OpenCode هم نمونه رسمی منتشر کرده.

یعنی از دید Agent شما، Kitesurf می‌تونه شبیه همون Browser Tool قبلی باشه.

ولی پشت صحنه به‌جای اینکه یه Chromium کامل روشن شده باشه، یه Engine خیلی سبک‌تر داره کار رو انجام می‌ده.

این قسمت از نظر من از خود بنچمارک مهم‌تره.

تکنولوژی جدید وقتی جذابه که مجبور نباشید کل Workflow فعلیتون رو برای استفاده ازش منفجر کنید.

خب پس Chrome رو پاک کنیم؟

نه داداش.

فعلاً اصلاً.

Kitesurf هنوز Betaـه و کلی محدودیت داره.

مثلاً اگر نیاز داشته باشید ویدیو پخش کنید، WebGL اجرا کنید یا یه Session احراز هویت شده طولانی داشته باشید، خود Cloudflare هم پیشنهاد می‌کنه فعلاً برید سراغ Chromium.

حتی CDP هم هنوز کامل پیاده نشده و تیم Kitesurf داره Coverage اون رو بیشتر می‌کنه.

پس Kitesurf فعلاً بیشتر شبیه یه ابزار تخصصیه.

برای Screenshot گرفتن.

برای Extract کردن اطلاعات.

برای Automation.

برای Agentهایی که باید سریع وارد یه صفحه بشن، یه کاری انجام بدن و خارج بشن.

این دقیقاً همون جاییه که استفاده از یه Chrome کامل یکم خنده‌دار به نظر می‌رسه.

مثل اینه که برای رفتن سر کوچه با کامیون هجده چرخ برید.

کار رو انجام می‌ده، ولی واقعاً لازم نبود.

یه مشکل بزرگ‌تر هنوز باقی مونده

تا اینجا یه Browser بهتر برای Agent ساختیم.

ولی هنوز یه سؤال داریم.

چرا Agent اصلاً باید مثل من و شما با سایت کار کنه؟

فرض کنید یه فروشگاه اینترنتی دارید و Agent می‌خواد دنبال یه محصول بگرده.

روش فعلی این شکلیه.

صفحه رو باز کن.

DOM رو بخون.

Search Box رو پیدا کن.

روش کلیک کن.

اسم محصول رو تایپ کن.

دکمه Search رو پیدا کن.

صبر کن نتایج لود بشن.

کارت‌های محصول رو پیدا کن.

قیمت رو از بین کلی HTML استخراج کن.

اگر طراح سایت فردا اسم یه Class رو عوض کرد، شاید نصف Automation هم خراب بشه.

یکم مسخره نیست؟

خود سایت دقیقاً می‌دونه Search چطوری کار می‌کنه.

دقیقاً می‌دونه Product چیه.

دقیقاً می‌دونه Add to Cart یعنی چی.

پس چرا این قابلیت‌ها رو مستقیم به Agent معرفی نکنه؟

مثلاً به‌جای اینکه Agent دنبال Search Box بگرده، سایت بهش بگه:

search_products

و Agent هم مستقیم همون Tool رو صدا بزنه.

اینجا می‌رسیم به قسمت دوم این مینی‌سری.

WebMCP.

وب کم‌کم داره دو تا رابط پیدا می‌کنه

تا امروز وقتی یه سایت می‌ساختیم تقریباً همیشه یه سؤال داشتیم.

کاربر چه چیزی می‌بینه؟

از این به بعد شاید مجبور بشیم یه سؤال دیگه هم کنار اون بذاریم.

Agent چه چیزی می‌بینه؟

برای انسان Button می‌سازیم.

برای Agent شاید Tool تعریف کنیم.

برای انسان Menu داریم.

برای Agent شاید یه Interface ساختاریافته داشته باشیم.

برای انسان صفحه Product داریم.

برای Agent شاید مستقیم get_product داشته باشیم.

اینجاست که داستان از یه Browser جدید خیلی بزرگ‌تر می‌شه.

Kitesurf فقط یه ابزار جالبه، ولی دلیل ساخته‌شدنش مهم‌تره.

ترافیک وب دیگه فقط از طرف انسان‌ها نمیاد.

یه عالمه Agent قراره سایت‌ها رو بخونن، توشون جست‌وجو کنن، فرم پر کنن، رزرو انجام بدن، کد تست کنن و شاید حتی خرید کنن.

وبی که بیست سال برای Mouse و Keyboard بهینه شده، حالا باید با موجودی کنار بیاد که نه Mouse می‌خواد، نه Keyboard و نه حتی صفحه‌نمایش.

به نظرم این تازه شروع قصه‌ست.

آیا واقعاً به Agentic Internet می‌رسیم؟

من فکر نمی‌کنم Browser Automation ناپدید بشه.

API هم قرار نیست بمیره.

MCP هم قرار نیست فردا جای همه‌چی رو بگیره.

احتمالاً هر سه کنار هم می‌مونن.

اگر API خوب وجود داشته باشه، Agent می‌تونه از API استفاده کنه.

اگر سایت Tool مخصوص Agent داشته باشه، می‌تونه مستقیم همون Tool رو صدا بزنه.

اگر هیچ‌کدوم وجود نداشت، Browser آخرین راهه.

ولی چیزی که داره تغییر می‌کنه اینه که Agent دیگه یه مهمون عجیب روی وب نیست.

داره کم‌کم تبدیل می‌شه به یکی از Clientهای اصلی اینترنت.

و وقتی تعداد Clientها زیاد بشه، زیرساخت مخصوص خودشون هم ساخته می‌شه.

Kitesurf یکی از اولین نمونه‌های واضح این تغییره.

مرورگری که سازنده‌هاش از همون روز اول نپرسیدن:

«کاربر باهاش راحت هست؟»

پرسیدن:

«Agent واقعاً از Browser چی می‌خواد؟»

و به نظرم این سؤال خیلی مهم‌تر از خود Kitesurfه.

یه پ.ن. کاملاً بی‌ربط، ولی مهم

راستی، امروز تولد amodemoli هم هست :))

تولدت مبارک رفیق.

مرسی که این مدت کنارم بودی. از اون رفاقت‌هایی که فقط «سلام چطوری» نیست و وسطش کلی باگ، ایده، کد نصفه، پروژه، سؤال عجیب و «ببین این چرا کار نمی‌کنه؟» رد و بدل شده.

فکر کنم توی این مدت هر دومون یه جاهایی توسعه‌دهنده‌ی هم بودیم؛ یه بار من یه چیزی برای تو پیدا کردم، یه بار تو منو از یه سوراخ عجیب نجات دادی و در مجموع کلی از هم یاد گرفتیم.

خلاصه مرسی که بودی و کمک کردی چیزهای بیشتری بسازیم.

امیدوارم سال جدیدت پر از پروژه‌های باحال، Deploy سبز، باگ‌های قابل فهم و باگ‌هایی باشه که حداقل ساعت ۳ صبح پیداشون نکنی :))

تولدت مبارک amodemoli ❤️

حالا برگردیم به اینترنتی که کم‌کم داره برای ربات‌ها ساخته می‌شه.

قسمت بعدی می‌ریم سراغ WebMCP و می‌بینیم چرا شاید در آینده Agent شما به‌جای کلیک روی دکمه‌های یه سایت، مستقیم با خود سایت حرف بزنه.

تا وبلاگ بعدی، بدرود!