
منصة OpenBot: زملاء العمل الأذكياء في بيئات استضافة ذاتية معزولة وحوكمة CEL
يواجه دمج وكلاء الذكاء الاصطناعي المستقلين داخل فرق التطوير معضلة أمنية وتشغيلية شائعة. فإذا مُنح الوكيل وصولاً مباشراً إلى حاسوب المطور، أصبح بمقدوره قراءة ملفات النظام وملفات تعريف الارتباط الحساسة والوصول إلى بوابات العمل دون رقابة. وفي المقابل، إذا حُصر الوكيل داخل نافذة محادثة نصية مجردة، تنحصر فائدته في الإجابة على الأسئلة النظرية دون القدرة على إنجاز مهام عملية على الأرض.
يقدم مشروع OpenBot مفتوح المصدر برخصة MIT، الذي طورته CopilotKit، حلاً معمارياً متكاملاً لهذه الإشكالية. فبدلاً من تشغيل الوكلاء بصورة مطلقة على النظام المضيف، يخصص OpenBot لكل وكيل حاسوباً افتراضياً معزولاً داخل حاوية خاصة. وتمر كل نقرة متصفح، أو عملية تعديل ملف، أو استدعاء لأداة برمجية عبر بوابة فحص أمني وتدقيق صارم قبل السماح بتنفيذها.
البنية الهندسية للوكلاء المعزولين
صُمم OpenBot كقالب بنية تحتية يُنشر بالكامل على الخوادم الخاصة أو الأجهزة المحلية للمطورين. وباستخدام أمر واحد عبر Docker Compose، تنطلق بيئة متعددة الطبقات تمنع الوكيل من فحص الخدمات الداخلية في الشبكة:
يفتح المستخدم قناة محادثة مع الوكيل المطلوب (المساعد العام، مسؤول المعرفة، محلل المخاطر).
يقوم الخادم بتغليف الطلب وفق معايير بروتوكول AG-UI وتوجيهه إلى الوكيل المستهدف.
تراجع بوابة Hono الإجراء المطلوب وفق لغة التعبيرات العامة CEL، مع تطبيق الانغلاق التلقائي عند أي اشتباه.
يُنفذ الإجراء المقبول داخل حاوية معزولة تمتلك متصفح Chromium ومساحة عمل خاصة دون المساس بالنظام المضيف.
توزيع الخدمات والمنافذ الشبكية
تتألف بيئة التشغيل من خدمات صغيرة مفصولة تمنع تصعيد الامتيازات غير المصرح بها:
| اسم الخدمة | المنفذ | المسؤولية الوظيفية الأساسية | حدود العزل الأمني |
|---|---|---|---|
app | 3010 | واجهة المستخدم المبنية بـ React وVite للقنوات والبث المباشر | طبقة الويب العامة |
server | 3001 | خادم Hono وCopilotKit والمصادقة وتطبيق سياسات الأمان | طبقة التطبيق الخلفية |
agent-computer | 4100 | متصفح Chromium ولقطات الشاشة وأدوات تحرير الملفات | تتطلب رمز COMPUTER_TOKEN |
agent-bot | 4200 | خادم الوكيل المرجعي المتوافق مع AG-UI | طبقة الوكلاء المعزولة |
agent-langgraph | 4201 | وكيل متقدم مبني على LangGraph للمسارات المركبة | طبقة الوكلاء المعزولة |
supervisor | 4500 | إدارة دورة حياة حاويات حواسيب الوكلاء وتشغيلها | وصول مقيد لمقبس Docker المضيف |
| PostgreSQL | 5432 | حفظ سجلات التدقيق الثابتة والمتجهات الحسابية | شبكة data الداخلية المعزولة |
ولمنع البرمجيات العشوائية التي قد يشغلها الوكيل من الوصول المباشر إلى قاعدة البيانات، يعزل Docker Compose خادم PostgreSQL على شبكة داخلية مخصصة، بحيث يكون الخادم الخلفي هو نقطة الالتقاء الوحيدة بين الشبكتين.
حوكمة الإجراءات بلغة التعبيرات العامة CEL
يكمن الابتكار الأساسي في OpenBot في تجريد حاسوب الوكيل من صلاحية تقرير السياسات الأمنية. فبوابة الخادم الخلفية هي صاحبة القرار النهائي، حيث تعترض كل أمر أو نقرة متصفح أو استدعاء لأداة خارجية وتخضعه لقواعد مكتوبة بلغة التعبيرات العامة (Common Expression Language).
محاور الفحص الأمني
تفحص البوابة معايير دقيقة تشمل:
tool.name: معرف الأداة المطلوبة بدقة.intent: القصد والهدف المعلن من قبل النموذج قبل تنفيذ الخطوة.page.urlوpage.host: الوجهة والموقع المراد تصفحه.element.refوelement.role: العناصر المحددة داخل شجرة DOM للموقع.command: الأوامر النصية الموجهة للطرفية.file.path: مسارات الملفات المستهدفة داخل الحاوية.initiator.kind: يميز الجلسات التلقائية المجدولة (routine) عن الجلسات التي يطلبها مطور بشري (person).
سياسة الأمان الدفاعية والانغلاق عند الخطأ
تلتزم المنظومة بمبادئ الحماية الصارمة:
- أولوية قواعد الرفض: تُفحص قواعد المنع (Deny) قبل قواعد السماح (Allow). فإذا تطابق الإجراء مع قاعدة منع، يُرفض في الحال بغض النظر عن أي استثناء.
- الانغلاق عند غياب السياسة (Fail-Closed): في حال عدم وجود سياسة أو حدوث خطأ في صياغة القواعد، ترفض البوابة تمرير أي حركة وتوقف الخادم فوراً.
- سجل تدقيق غير قابل للتعديل: تُسجل جميع القرارات، سواء بالقبول أو الرفض، في قاعدة بيانات PostgreSQL مع الأوقات الدقيقة وهوية المشغل.
بروتوكول AG-UI: حرية اختيار أطر العمل
من أكبر العقبات أمام تبني وكلاء الذكاء الاصطناعي في المؤسسات هو الارتهان لأطر عمل معينة. وتجاوز OpenBot هذا القيد عبر الاعتماد الكامل على بروتوكول AG-UI القياسي المفتوح.
وحيث إن الحوكمة تتم عند حدود البروتوكول، تبرز المزايا التالية:
- إمكانية تشغيل وكلاء مبنيين بلغة بايثون عبر LangGraph أو Pydantic AI جنباً إلى جنب مع وكلاء TypeScript مبنيين على Mastra.
- استقبال استجابات تفاعلية متطورة (جداول، أزرار تأكيد، نماذج إدخال) بدلاً من النصوص الخام فقط.
- إمكانية مراقبة شاشة المتصفح المباشرة للوكيل وتدخل المطور البشري فوراً عند الحاجة.
التشغيل في بيئة الاستضافة الذاتية
يتطلب تشغيل OpenBot محلياً توفر محرك Docker ومدير الحزم Bun بإصدار 1.3 أو أحدث:
# استنساخ المستودع
git clone https://github.com/CopilotKit/openbot.git
cd openbot
# تثبيت الاعتماديات عبر مساحة العمل
bun install
# تهيئة ملف متغيرات البيئة
cp .env.example .env
# تشغيل قواعد البيانات وحاويات الحواسيب الافتراضية
./scripts/start.sh
يحمل ملف الإعداد الافتراضي الخيار OPENBOT_SINGLE_USER=true لتسهيل التجربة المحلية بصلاحيات المدير دون الحاجة لربط مزود هوية خارجي. وعند النشر التشاركي، يُعطل هذا الخيار لفرض أدوار الوصول المحددة.
اعتبارات النشر العملية
قبل اعتماد OpenBot في بيئات العمل، ينبغي مراعاة العوامل التالية:
- استهلاك موارد النظام: نظراً لأن كل حاوية وكيل تشغل نسخة كاملة من متصفح Chromium، يتطلب تشغيل خمسة وكلاء متزامنين أو أكثر ذاكرة عشوائية كافية (من 2 إلى 4 جيجابايت لكل وكيل نشط).
- تكلفة رموز النماذج: يؤدي تفاعل الوكلاء مع صفحات الويب المعقدة إلى استهلاك كبير للرموز، وتساعد أدوات تقليص المخرجات مثل RTK في ضبط تكاليف التشغيل.
- المرحلة التجريبية: المشروع في مرحلة التطوير النشط (Alpha)، مما يستوجب متابعة تحديثات ملفات التكوين دورياً.
الخلاصة
يؤكد مشروع OpenBot أن الاستفادة من وكلاء الذكاء الاصطناعي لا تتطلب التنازل عن معايير الأمان المؤسسية. فمن خلال الدمج بين العزل في الحاويات الافتراضية، والحوكمة الحتمية بقواعد CEL، وبروتوكول AG-UI المفتوح، يقدم المشروع نموذجاً عملياً وموثوقاً لنشر زملاء العمل الأذكياء على البنية التحتية المستقلة للمطورين.