غلاف دليل المطور إلى متصفح CDP لوكلاء الذكاء الاصطناعي

متصفح CDP لوكلاء الذكاء الاصطناعي: دليل للمطورين

Clawbrowser TeamAI agentsCDPguide

تحتاج وكلاء الذكاء الاصطناعي إلى متصفحات. سواء كان وكيلك يجمع البيانات، أو يملأ النماذج، أو يدير حسابات متعددة، أو يتنقل عبر مسارات عمل متعددة الخطوات، فإنه يتحكم في المتصفح من خلال بروتوكول. وفي كل إطار رئيسي للوكلاء، يكون هذا البروتوكول هو CDP ‏(Chrome DevTools Protocol). المشكلة أن ربط وكيلك بنسخة Chromium عادية يؤدي إلى اكتشافه وحظره خلال دقائق. يحتاج متصفح CDP المخصص لوكلاء الذكاء الاصطناعي إلى أكثر من WebSocket endpoint؛ فهو يحتاج إلى بصمات مُدارة، وتوجيه proxy، وعزل للجلسات، على أن تكون كلها متاحة عبر واجهة CDP نفسها التي يفهمها وكيلك بالفعل.

الخلاصة: CDP هو البروتوكول القياسي الذي تستخدمه وكلاء الذكاء الاصطناعي للتحكم في المتصفحات. يكشف Chrome العادي إشارات أتمتة ترصدها أنظمة anti-bot فورًا. أما Clawbrowser فهو fork من Chromium يوفر CDP أصليًا، وبصمات مُدارة عبر أكثر من 20 سطحًا، وتوجيه proxy مدمجًا، وMCP server. وبذلك يتصل وكيلك بمتصفح حقيقي لا يُحظر.


ما هو Chrome DevTools Protocol؟

CDP بروتوكول قائم على WebSocket يمنح البرامج الخارجية تحكمًا كاملًا في متصفح Chromium. صُمم أصلًا لـ Chrome DevTools، أي أداة الفحص التي تفتحها عبر F12، لكنه أصبح المعيار الفعلي في browser automation.

يستطيع client عبر CDP:

  • الانتقال إلى URL وإدارة علامات التبويب
  • تشغيل JavaScript اعتباطي في سياق الصفحة
  • التقاط لقطات الشاشة وملفات PDF
  • اعتراض طلبات الشبكة وتعديلها
  • إدارة cookies والتخزين وcache
  • محاكاة إدخال المستخدم: النقر وضغط المفاتيح والتمرير

نموذج الاتصال مباشر. شغّل Chrome مع debugging port، ويمكن لأي WebSocket client الاتصال به:

# Start Chrome with CDP enabled
chrome --remote-debugging-port=9222
// Connect from Node.js with Puppeteer
const browser = await puppeteer.connect({
  browserWSEndpoint: 'ws://localhost:9222/devtools/browser/...'
});
const page = await browser.newPage();

بروتوكول واحد، وendpoint واحد، وتحكم كامل في المتصفح. هذه البساطة هي سبب تفوق CDP.


لماذا تستخدم جميع أطر وكلاء الذكاء الاصطناعي CDP؟

CDP هو الموصل العام بين وكلاء الذكاء الاصطناعي والمتصفحات. ويتوقع كل إطار رئيسي للوكلاء CDP endpoint:

إطار الوكيل اتصال CDP
Claude Code MCP server أو CDP endpoint
OpenAI Codex connect_over_cdp()
Cursor CDP WebSocket
Browser Use CDP endpoint
Hermes Agent CDP endpoint
OpenClaw CDP endpoint
Kilo Code CDP endpoint
Puppeteer Native CDP client
Playwright (Chromium) connect_over_cdp()

عندما يحتاج وكيلك إلى متصفح، فإنه يتوقع ws://localhost:9222. لا يتوقع Juggler، وهو بروتوكول Firefox، ولا WebDriver BiDi، ولا REST API احتكارية؛ بل CDP.

لهذا لا تستطيع متصفحات anti-detect المبنية على Firefox الاندماج في معظم مسارات عمل الوكلاء من دون طبقة adapter، لأنها تستخدم بروتوكولًا مختلفًا تمامًا. فإذا كانت منظومتك هي Agent → CDP → Browser، فلا بد أن يكون المتصفح مبنيًا على Chromium.


المشكلة: يُكتشف Chrome العادي

يعمل Chrome العادي مع --remote-debugging-port جيدًا إلى أن يتحقق الموقع المستهدف من الأتمتة. تكتشف أنظمة anti-bot مثل Cloudflare وDataDome وPerimeterX نسخة Chrome الخاضعة لتحكم CDP عبر إشارات متعددة:

1. العلامة navigator.webdriver. يضبطها Chrome على true عندما يجري التحكم فيه عبر CDP. وهي أول ما تفحصه عادة نصوص anti-bot.

2. آثار CDP runtime. تترك استدعاءات Runtime.evaluate آثارًا في سياق تنفيذ JavaScript تختلف عن تفاعلات المستخدم الحقيقية.

3. البصمات الافتراضية. تُرجع نسخة Chrome جديدة قيم Canvas وWebGL وAudioContext الافتراضية من المصنع. أما المتصفحات الحقيقية فلها بصمات فريدة تشكلها GPU وبرامج التشغيل وإعدادات نظام التشغيل.

4. غياب ملف تعريف المتصفح. لا يوجد سجل تصفح أو cookies أو خطوط مخزنة في cache أو extensions. ويُعد التثبيت النظيف إشارة إلى bot.

5. تسريبات وضع headless. حتى --headless=new ينتج اختلافات قابلة للاكتشاف في سلوك العرض ومصفوفات plugins وأبعاد الشاشة.

النتيجة: يتصل وكيلك بـ Chrome، وينتقل إلى الهدف، ثم يصطدم بحاجز CAPTCHA أو حظر صامت. يعمل اتصال CDP على نحو مثالي؛ المتصفح نفسه هو الذي يخذلك.


ربط وكيلك بـ Clawbrowser

Clawbrowser هو fork من Chromium صُمم لهذه الحالة تحديدًا: متصفح CDP لوكلاء الذكاء الاصطناعي يعالج مقاومة الاكتشاف على مستوى المتصفح. يتصل وكيلك بـ CDP endpoint قياسي، ويتولى المتصفح كل ما عدا ذلك.

بدء جلسة ببصمة مُدارة

# Start Clawbrowser with a managed fingerprint profile
clawctl session start --profile residential-us-1

# CDP endpoint is immediately available
# ws://localhost:9222/devtools/browser/...

الاتصال من Playwright أو Puppeteer

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # Connect to Clawbrowser's CDP endpoint, same as any Chrome
    browser = p.chromium.connect_over_cdp("ws://localhost:9222")
// Puppeteer: zero changes to existing code
const browser = await puppeteer.connect({
  browserWSEndpoint: 'ws://localhost:9222/devtools/browser/...'
});
const page = await browser.newPage();

تشغيل جلسات معزولة متعددة مع توجيه proxy

# Session 1: US residential proxy, unique fingerprint
clawctl session start --profile us-east --proxy socks5://us-proxy:1080

# Session 2: EU residential proxy, different fingerprint
clawctl session start --profile eu-west --proxy socks5://eu-proxy:1080

تحصل كل جلسة على ملف بصمة كامل ومتسق داخليًا. تتطابق نتائج Canvas مع GPU المعلنة، وتتطابق معاملات WebGL مع بطاقة الرسومات، وتتوافق خصائص Navigator مع نظام التشغيل وإصدار المتصفح، كما تتطابق المنطقة الزمنية مع موقع proxy. وترى أنظمة anti-bot متصفحًا حقيقيًا لأن كل سطح يروي القصة نفسها.


‏CDP وMCP: بروتوكولان في Clawbrowser واحد

يمنحك CDP تحكمًا منخفض المستوى في المتصفح، بينما يمنح MCP ‏(Model Context Protocol) وكلاء الذكاء الاصطناعي وصولًا عالي المستوى إلى الأدوات. يدعم Clawbrowser كليهما في النسخة نفسها.

مع CDP، يرسل وكيلك أوامر دقيقة: الانتقال إلى URL، والنقر على عنصر عند إحداثيات محددة، وتشغيل JavaScript. تحصل على تحكم كامل ومرونة كاملة، مقابل كود أكثر.

مع MCP، يستدعي وكيلك وظائف أدوات مثل navigate وscreenshot وextract_text. ويترجم MCP server هذه الاستدعاءات داخليًا إلى عمليات CDP. يعني ذلك كودًا أقل ودمجًا أسرع، لكن تحكمًا أقل دقة.

التقسيم العملي:

  • استخدم CDP عندما يشغّل وكيلك نصوص أتمتة مخصصة، أو يحتاج إلى اعتراض الشبكة، أو يستخدم Puppeteer أو Playwright مباشرة.
  • استخدم MCP عندما يكون وكيلك LLM يحتاج إلى وصول للمتصفح على مستوى الأدوات، مثل Claude Code أو Codex أو أي وكيل متوافق مع MCP.
  • استخدم كليهما عندما يدير orchestrator الجلسة عبر CDP، بينما تتفاعل وكلاء LLM المنفردة عبر MCP.

لا يقدم أي متصفح anti-detect آخر البروتوكولين معًا في النسخة نفسها.


مقارنة خيارات متصفحات CDP

الميزة Clawbrowser Chrome Browserbase Steel Camoufox
CDP أصلي نعم نعم نعم نعم لا (Juggler)
مقاومة الاكتشاف أكثر من 20 سطحًا None نعم نعم نعم
بصمات مُدارة نعم لا نعم نعم نعم (BrowserForge)
توجيه proxy مدمج لا نعم نعم يدوي
MCP server مدمج لا لا لا لا
النشر محلي / self-hosted محلي cloud فقط cloud فقط محلي
السعر مجاني مجاني من 150 دولارًا شهريًا من 99 دولارًا شهريًا مجاني

Clawbrowser هو الخيار الوحيد الذي يجمع CDP الأصلي والبصمات المُدارة وتوجيه proxy المدمج وMCP server، وهو مجاني. تفرض البدائل السحابية، مثل Browserbase وSteel، رسومًا لكل جلسة وتضيف زمن انتقال عبر الشبكة بين وكيلك والمتصفح. أما Camoufox فهو مجاني، لكنه يستخدم Firefox وJuggler، ما يعني غياب توافق CDP مع أطر الوكلاء.


البدء

# Install Clawbrowser
clawctl install

# Start a session with default fingerprint
clawctl session start --profile default

يعمل كود CDP الحالي من دون تعديل. ما عليك سوى توجيه وكيلك إلى endpoint، ويتولى المتصفح تلقائيًا إدارة البصمة وتوجيه proxy ومقاومة الاكتشاف.


الأسئلة الشائعة

هل يعمل Clawbrowser مع Puppeteer وPlaywright؟

نعم. يتيح Clawbrowser ‏CDP endpoint قياسيًا. استخدم puppeteer.connect() أو playwright.chromium.connect_over_cdp() مع WebSocket URL تمامًا كما تفعل مع Chrome العادي. لا حاجة إلى تغيير الكود.

هل يمكنني تشغيل جلسات متعددة في الوقت نفسه؟

نعم. تحصل كل جلسة على CDP endpoint وملف بصمة وcookies وproxy اختياري خاص بها. شغّل من الجلسات بقدر ما تتحمله أجهزتك. وتكون الجلسات معزولة بالكامل من دون حالة مشتركة بينها.

هل Clawbrowser مجاني للاستخدام التجاري؟

نعم. Clawbrowser مجاني ومفتوح المصدر. لا توجد حدود للاستخدام، ولا تسعير لكل جلسة، ولا حاجة إلى API keys. استخدمه في بيئة الإنتاج أو CI/CD أو على جهازك المحلي.

ما الفرق بين CDP وMCP في Clawbrowser؟

يوفر CDP ‏(Chrome DevTools Protocol) تحكمًا منخفض المستوى في المتصفح: الانتقال والنقر وتشغيل JavaScript واعتراض طلبات الشبكة. ويوفر MCP ‏(Model Context Protocol) وصولًا عالي المستوى إلى الأدوات: الانتقال والتقاط لقطة الشاشة واستخراج النص. يدعم Clawbrowser كليهما في الوقت نفسه وعلى نسخة المتصفح ذاتها.

هل يعمل في Docker ووضع headless؟

نعم. يعمل Clawbrowser داخل Docker مع إتاحة CDP endpoint نفسه. استخدم --headless في بيئات الخوادم. وتعمل إدارة البصمة كلها بالطريقة نفسها في وضع headless.

تابع القراءة

عرض كل المقالات →