نمط المنسق والعمال
Orchestrator-Workers: وكيل يقود فريقاً
أحمد: "ماذا لو لم أعرف عدد الخطوات مسبقاً؟" سارة: "هنا نحتاج نمطاً أكثر ذكاءً: المنسق والعمال!" أحمد: "كيف يعمل؟" سارة: "تخيل مدير مشروع: • ينظر للمهمة الكبيرة • يقسمها لمهام صغيرة • يوزعها على فريق العمل • يجمع النتائج • يقرر إذا كان يحتاج خطوات إضافية الفرق عن التوازي: المنسق يقرر المهام ديناميكياً، لا مسبقاً!"
👔 Orchestrator-Workers Pattern
**الهيكل:** ``` [Orchestrator] ↓ يحلل المهمة ويقسمها ↓ ┌─────┼─────┐ ↓ ↓ ↓ [Worker][Worker][Worker] ↓ ↓ ↓ └─────┼─────┘ ↓ Orchestrator يجمع ويقيّم ↓ هل انتهينا؟ ↓ ↓ نعم لا → يكرر ``` **الفرق عن Parallelization:** • التوازي: أنت تحدد المهام مسبقاً • المنسق: AI يحدد المهام أثناء التنفيذ
💡 مثال: وكيل برمجة
**المهمة:** "أصلح هذا الكود وأضف ميزة X" **Orchestrator يحلل:** "هذه المهمة تحتاج: 1. قراءة الكود الحالي 2. تحديد مكان المشكلة 3. إصلاح الخطأ 4. إضافة الميزة 5. اختبار التغييرات" **Workers:** • Worker 1: يقرأ الكود (أداة: read_file) • Worker 2: يحلل الخطأ • Worker 3: يكتب الإصلاح (أداة: write_file) • Worker 4: يكتب الميزة الجديدة • Worker 5: يختبر (أداة: run_tests) **Orchestrator يجمع:** إذا فشل الاختبار → Worker إضافي للإصلاح
⚙️ تصميم Orchestrator فعال
**System Prompt للمنسق:** ``` أنت منسق مهام. دورك: 1. استلم المهمة الكبيرة 2. قسمها لمهام فرعية واضحة 3. حدد الترتيب (أيها يعتمد على أيها) 4. أرسل كل مهمة للعامل المناسب 5. راجع النتائج 6. قرر إذا كنت تحتاج مهام إضافية عند التقسيم: - كل مهمة فرعية يجب أن تكون محددة وقابلة للقياس - حدد مخرج متوقع لكل مهمة - حدد شرط النجاح عند المراجعة: - هل كل مهمة أُنجزت بنجاح؟ - هل النتائج متوافقة؟ - هل نحتاج مهام إضافية؟ ```
💼 سيناريوهات عمل عربية
🎮 تمرين 5: Orchestrator-Workers
**السيناريو:** بناء تقرير بحثي عن "مستقبل السيارات الكهربائية" **صمم نظام Orchestrator-Workers:** 1. ما هي المهام الفرعية المحتملة؟ 2. أي Workers تحتاج؟ 3. ما الأدوات لكل Worker؟ 4. كيف يقرر Orchestrator أن البحث اكتمل؟ 5. ماذا يفعل إذا لم يجد Worker معلومات كافية؟ ⏱️ الوقت: 15 دقيقة 💡 فكر: ما الذي يميز هذا عن سلسلة بسيطة؟
