العودة للدورة|مقابلات مهندس وكلاء الذكاء الاصطناعي: صمم وابنِ وانشر أنظمة وكلاء إنتاجية
معمل

ابنِ وكيل تنفيذ مهام مستقل

45 دقيقة
متقدم
محاولات مجانية غير محدودة

التعليمات

في هذا المختبر، ستبني وكيل تنفيذ مهام مستقل كامل بلغة Python. وكيلك سيفكك الأهداف إلى رسوم بيانية موجهة غير دورية (DAG) من المهام الفرعية، وينفذها باستخدام نمط ReAct، ويكتشف عندما يكون عالقاً، ويعيد التخطيط عندما ينحرف التنفيذ، ويستشير البشر عند نقاط التفتيش، ويحترم ميزانيات التنفيذ.

هذه هي البنية وراء وكلاء البرمجة الإنتاجيين ومساعدي البحث وأنظمة أتمتة سير العمل.

نظرة عامة على البنية

هدف المستخدم
     |
TaskPlanner: تفكيك إلى DAG مهام فرعية
     |
ReactLoop: لكل مهمة فرعية
     |
+---> Thought -> Action -> Observation ---+
|                                         |
|    StepExecutor: استدعاء أداة، تحليل   |
|                                         |
+---- SelfReflection: عالق؟ يدور؟ -------+
            |
       [إذا عالق]
            |
       Replanner: إنشاء خطة جديدة
            |
       HumanCheckpoint: سؤال إذا لزم
            |
       BudgetManager: فرض الحدود
            |
       [متابعة أو إنهاء بلطف]

الخطوة 1: مخطط المهام (Task Planner)

ابنِ TaskPlanner يفكك هدفاً عالي المستوى إلى رسم بياني موجه غير دوري (DAG) من المهام الفرعية. كل مهمة فرعية تحتوي:

  • task_id فريد
  • description لما يجب إنجازه
  • قائمة dependencies (معرّفات مهام أخرى يجب إتمامها أولاً)
  • status (معلقة، قيد التنفيذ، مكتملة، فاشلة)

المخطط يجب أن:

  • يقبل نص هدف وينتج قائمة كائنات SubTask
  • يحدد ترتيب التنفيذ من رسم التبعيات البياني
  • يعيد المهام الجاهزة للتنفيذ (جميع التبعيات مستوفاة)

الخطوة 2: حلقة ReAct

ابنِ ReactLoop تنفذ مهمة فرعية واحدة باستخدام دورة Thought-Action-Observation:

  • Thought: يستدل LLM حول ما يجب فعله تالياً لهذه المهمة الفرعية
  • Action: يختار LLM أداة ويستدعيها
  • Observation: تُلتقط نتيجة الأداة
  • تتكرر الدورة حتى ينتج LLM إجابة نهائية أو يُبلغ حد الخطوات
  • كل خطوة دورة تُسجل في سجل مهيكل

الخطوة 3: منفّذ الخطوات (Step Executor)

ابنِ StepExecutor يتعامل مع استدعاء الأدوات:

  • يقبل إجراءاً (اسم أداة + وسائط) من حلقة ReAct
  • يبحث عن الأداة، وينفذها، ويحلل النتيجة
  • يعيد StepResult مهيكلاً مع المخرجات وحالة النجاح/الفشل ومدة التنفيذ
  • يتعامل مع أخطاء الأدوات بسلاسة (أدوات مفقودة، فشل التنفيذ، انتهاء المهلة)

الخطوة 4: التأمل الذاتي (Self-Reflection)

ابنِ وحدة SelfReflection تقيّم تقدم التنفيذ:

  • تحليل سجل خطوات Thought/Action/Observation
  • اكتشاف حالات العلوق: إجراءات متطابقة متكررة، تأرجح بين إجراءين، عدم تقدم
  • اكتشاف انحراف الهدف: الإجراءات تبتعد عن هدف المهمة الفرعية
  • إعادة ReflectionResult مع تشخيص وتوصية (متابعة، إعادة تخطيط، أو تصعيد)

الخطوة 5: معيد التخطيط (Replanner)

ابنِ Replanner ينشئ خطة جديدة عندما تفشل الأصلية:

  • يقبل الخطة الأصلية والخطوات الفاشلة وتشخيص التأمل
  • ينشئ خطة معدلة تتجنب النهج الفاشلة
  • يتتبع فرق الخطة: ما الذي تغير بين الخطة الأصلية والمعدلة
  • يحتفظ بسجل مراجعات الخطة لمنع التدوير بين الخطط

الخطوة 6: نقطة التفتيش البشرية (Human Checkpoint)

ابنِ وحدة HumanCheckpoint توقف التنفيذ لمدخلات بشرية:

  • تقيّم ما إذا كانت نقطة تفتيش مطلوبة بناءً على: درجة الثقة، فئة الإجراء (لا رجعة فيه؟)، وعدد إعادات التخطيط حتى الآن
  • تنسق ملخصاً واضحاً للحالة الحالية للإنسان
  • تقبل قرارات بشرية: موافقة، تعديل خطة، أو إلغاء
  • عتبة ثقة قابلة للتكوين (افتراضي: 0.7)

الخطوة 7: مدير الميزانية (Budget Manager)

ابنِ BudgetManager يفرض حدود التنفيذ:

  • يتتبع الخطوات المتخذة والرموز المستهلكة ووقت الحائط المنقضي
  • حدود قابلة للتكوين لكل بُعد (max_steps، max_tokens، max_time_seconds)
  • في كل خطوة، يتحقق مما إذا تم تجاوز أي ميزانية
  • عندما تنخفض الميزانية (ضمن 20% من الحد)، يُشير للوكيل بالتلخيص
  • عندما تُتجاوز الميزانية، يُطلق إنهاءً لطيفاً: تلخيص التقدم حتى الآن بدلاً من الفشل بصمت

ماذا تقدّم

المحرر يحتوي على 7 أقسام ملفات مع تعليقات TODO. استبدل كل TODO بكود Python الخاص بك. سيقوم المقيّم الذكي بتقييم كل قسم وفقاً لمعايير التقييم.

تلميحات

  • لرسم DAG، ترتيب طوبولوجي بسيط يحدد ترتيب التنفيذ. استخدم خوارزمية Kahn أو DFS العودي
  • لاكتشاف العلوق، قارن آخر N إجراء في السجل: إذا تكررت، فالوكيل يدور
  • لفرق الخطة، خزّن الخطط كقوائم واحسب الخطوات المضافة/المحذوفة/المعدلة
  • مدير الميزانية يجب أن يعيد BudgetStatus من نوع enum: OK، WARNING، EXCEEDED
  • استخدم time.time() لتتبع وقت الحائط وعدّاداً بسيطاً لميزانيات الخطوات/الرموز

معايير التقييم

TaskPlanner يفكك الأهداف إلى DAG مهام فرعية مع plan_goal (تفكيك قائم على LLM مع تحليل JSON) وget_ready_tasks (يعيد المهام مع اكتمال جميع التبعيات) وtopological_sort (ترتيب صالح مع اكتشاف الدورات عبر خوارزمية Kahn أو DFS)20 نقاط
ReactLoop ينفذ دورة Thought-Action-Observation الكاملة مع طريقة run (يدور حتى max_steps، يحلل JSON من LLM لـ thought/action/args، يعالج إجراء finish، يستدعي execute_action، يسجل سجل ReactStep) وformat_history لبناء الأوامر20 نقاط
SelfReflection يكتشف حالات العلوق (إجراءات متطابقة متكررة، تأرجح بين إجراءين، ملاحظات متطابقة) وانحراف الهدف (كلمات مفتاحية مفقودة من الملاحظات، تحليل اختياري قائم على LLM)، يعيد ReflectionResult مع توصية وثقة مناسبتين15 نقاط
Replanner ينشئ خططاً معدلة عبر LLM مع طريقة replan (يتضمن الخطة الأصلية والإخفاقات والتشخيص وسجل المراجعات في الأمر) وcompute_diff (يحدد المهام المضافة/المحذوفة/المعدلة) وget_revision_summary (سجل قابل للقراءة لمنع تدوير الخطط)15 نقاط
HumanCheckpoint ينفذ should_checkpoint (يفحص عتبة الثقة والإجراءات غير القابلة للعكس وعدد إعادات التخطيط) وrequest_checkpoint (ينسق الرسالة، يستدعي prompt_human، يحلل الاستجابة إلى HumanDecision) وformat_checkpoint_message مع ملخص حالة واضح10 نقاط
BudgetManager يتتبع الخطوات/الرموز/الوقت مع record_step وcheck_budget (يعيد EXCEEDED/WARNING/OK مع BudgetReport) وformat_progress_report (ملخص قائم على النسب المئوية مع تحذيرات) وget_remaining (قاموس الميزانية المتبقية لكل بُعد)10 نقاط
تقارير التقدم في كل مكان: ReactLoop يسجل كل خطوة برقم الخطوة والحالة، StepExecutor يسجل duration_ms، BudgetManager ينتج تقارير ميزانية لكل خطوة، وجميع الوحدات توفر رسائل حالة قابلة للقراءة مناسبة للتسجيل10 نقاط

قائمة التحقق

0/7

حلك

محاولات مجانية غير محدودة
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.