التنفيذ المستقل للمهام والتخطيط

الوكلاء المستقلون: التخطيط والتصحيح الذاتي

5 دقيقة للقراءة

ما الذي يجعل الوكيل "مستقلاً"

يتجاوز الوكيل المستقل استدعاء الأدوات البسيط. يعمل في حلقة مستمرة من أربع مراحل:

  1. التخطيط — تفكيك هدف عالي المستوى إلى سلسلة خطوات قابلة للتنفيذ
  2. التنفيذ — تنفيذ كل خطوة باستدعاء أدوات أو كتابة كود أو استعلام واجهات API
  3. الملاحظة — فحص نتيجة كل إجراء لتحديد ما حدث
  4. التصحيح الذاتي — اكتشاف عندما تفشل الخطة وتعديل المسار

حلقة التخطيط-التنفيذ-الملاحظة-التصحيح هي النمط الأساسي وراء كل وكيل مستقل، من مساعدي البرمجة إلى وكلاء البحث. الفكرة الجوهرية هي أن الوكيل لا يتبع التعليمات فحسب — بل يستدل حول ما إذا كانت إجراءاته تحقق الهدف المطلوب.

الهدف: "ابحث عن أفضل 3 منافسين ولخّص أسعارهم"
  |
الخطة: [search_web, extract_pages, compare_pricing, write_summary]
  |
تنفيذ الخطوة 1: search_web("competitor pricing SaaS")
  |
الملاحظة: حصلت على 10 نتائج، لكن 3 منها مقالات غير ذات صلة
  |
التصحيح الذاتي: تصفية لصفحات المنتجات فقط، تحسين استعلام البحث
  |
تنفيذ الخطوة 2 (المعدلة): search_web("competitor pricing page site:competitor.com")
  |
... متابعة الحلقة ...

استراتيجيات التخطيط

تقدم أساليب التخطيط المختلفة مقايضات مختلفة بين الشمولية والسرعة.

ReAct: الاستدلال + الفعل

نمط ReAct، الذي قدمه Yao et al. (ICLR 2023)، يتداخل فيه تتبع الاستدلال مع الإجراءات. في كل خطوة، ينتج الوكيل:

  • Thought (فكرة) — ماذا أعرف؟ ماذا يجب أن أفعل تالياً؟
  • Action (إجراء) — استدعاء الأداة المحددة أو العملية
  • Observation (ملاحظة) — نتيجة ذلك الإجراء
Thought: أحتاج لإيجاد السعر الحالي لسهم AAPL.
         لدي أداة stock_price متاحة.
Action:  stock_price(symbol="AAPL")
Observation: $187.42
Thought: الآن لدي السعر. المستخدم سأل أيضاً عن
         أعلى سعر خلال 52 أسبوعاً. دعني أبحث عن ذلك.
Action:  stock_info(symbol="AAPL", field="52_week_high")
Observation: $199.62
Thought: لدي نقطتا البيانات. يمكنني الآن الرد.
Action:  respond("سعر AAPL حالياً $187.42، مع أعلى سعر خلال 52 أسبوعاً $199.62")

قوة ReAct تكمن في شفافيته خطوة بخطوة — كل قرار قابل للتتبع. نقطة ضعفه أنه يخطط خطوة واحدة فقط للأمام، مما قد يؤدي لمسارات غير فعالة في المهام المعقدة.

التخطيط والتنفيذ (Plan-and-Execute)

استراتيجية التخطيط والتنفيذ، التي استكشفها Wang et al. (2023) في نهج Plan-and-Solve، تفصل التخطيط عن التنفيذ في مرحلتين مستقلتين:

  1. مرحلة التخطيط: ينشئ LLM خطة كاملة (قائمة خطوات) قبل تنفيذ أي شيء
  2. مرحلة التنفيذ: منفّذ منفصل يشغّل كل خطوة، ويغذي النتائج للمخطط إذا لزم إعادة التخطيط

يعمل هذا جيداً للمهام المنظمة حيث تكون الخطوات متوقعة. يواجه صعوبة عندما تنتج الخطوات المبكرة نتائج غير متوقعة تبطل الخطوات اللاحقة.

شجرة الأفكار (Tree of Thought)

شجرة الأفكار (ToT)، التي قدمها Yao et al. (2023)، توسع استدلال سلسلة الأفكار باستكشاف مسارات استدلال متعددة في آن واحد:

  • توليد عدة خطوات تالية مرشحة
  • تقييم كل مرشح (باستخدام LLM كمقيّم أو باستخدام استدلالات)
  • متابعة المسارات الأكثر واعدية، وتقليم الباقي
  • اختيارياً، التراجع إذا أدى مسار لطريق مسدود

ToT قوية للمهام ذات معايير تقييم واضحة (مسائل رياضية، ألغاز، توليد كود مع حالات اختبار) لكنها مكلفة — تتطلب استدعاءات LLM متعددة لكل نقطة قرار.

الانعكاس (Reflexion)

Reflexion، الذي قدمه Shinn et al. (2023)، يضيف خطوة تأمل ذاتي صريحة بعد إتمام المهمة:

  1. محاولة المهمة
  2. تقييم النتيجة (هل نجحت؟ ما الذي فشل؟)
  3. توليد تأمل لفظي حول ما يجب فعله بشكل مختلف
  4. إعادة المحاولة مع إضافة التأمل للسياق

الفكرة الجوهرية هي أن تحليل الوكيل اللفظي لإخفاقاته يصبح جزءاً من "خبرته" للمحاولة التالية. هذا يحاكي كيف يتعلم البشر من أخطائهم من خلال المراجعة المتأنية.

الاستراتيجية يخطط مسبقاً يستكشف بدائل يتأمل ذاتياً التكلفة
ReAct خطوة واحدة لا لا منخفضة
Plan-and-Execute خطة كاملة لا عند إعادة التخطيط فقط متوسطة
Tree of Thought مسارات متعددة نعم عبر التقييم عالية
Reflexion محاولة واحدة عبر إعادة المحاولة نعم، صراحةً متوسطة-عالية

التصحيح الذاتي: عندما تفشل الخطة

يجب على الوكلاء المستقلين اكتشاف الفشل والتكيف. تشمل إشارات الفشل الشائعة:

  • إجراءات متطابقة متكررة — الوكيل عالق في حلقة
  • أخطاء الأدوات — واجهة API أعادت خطأ أو تنسيقاً غير متوقع
  • انحراف الهدف — مخرجات الوكيل تبتعد عن الهدف الأصلي
  • نفاد الموارد — الاقتراب من حدود الرموز أو الوقت أو ميزانية التكلفة
  • تناقص التقدم — كل خطوة تضيف قيمة أقل من السابقة

نظام تصحيح ذاتي مصمم جيداً:

  1. يكتشف حالة الفشل (عبر استدلالات أو تقييم قائم على LLM)
  2. يشخّص السبب الجذري (أداة خاطئة؟ مدخلات سيئة؟ مهمة فرعية مستحيلة؟)
  3. يعيد التخطيط مع التشخيص في السياق (ينشئ خطة جديدة تتجنب النهج الفاشل)
  4. يتتبع ما تمت تجربته سابقاً لتجنب تكرار نفس الخطأ
def check_stuck_state(history: list[str]) -> bool:
    """اكتشاف ما إذا كان الوكيل يكرر نفس الإجراء."""
    if len(history) < 3:
        return False
    last_three = history[-3:]
    return last_three[0] == last_three[1] == last_three[2]

def replan(goal: str, failed_steps: list[str], error: str) -> str:
    """إنشاء خطة جديدة بناءً على ما فشل."""
    prompt = f"""الهدف الأصلي: {goal}
الخطوات التي فشلت: {failed_steps}
الخطأ المواجه: {error}
أنشئ خطة جديدة تتجنب النهج الفاشل."""
    return llm_call(prompt)

التدخل البشري: إبقاء البشر في السيطرة

الوكلاء المستقلون بالكامل محفوفون بالمخاطر. تستخدم أنظمة الإنتاج نقاط تفتيش حيث يتوقف الوكيل لانتظار الموافقة البشرية.

عتبات الثقة

يعيّن الوكيل درجة ثقة لإجراءاته المخططة. تحت حد معين، يطلب مدخلات بشرية:

  • ثقة عالية (> 0.9): تنفيذ تلقائي
  • ثقة متوسطة (0.5 - 0.9): تنفيذ مع تحديد للمراجعة
  • ثقة منخفضة (< 0.5): توقف وسؤال الإنسان

بوابات الموافقة

فئات معينة من الإجراءات تتطلب دائماً موافقة بشرية، بغض النظر عن الثقة:

  • إجراءات لا رجعة فيها — حذف بيانات، إرسال رسائل بريد، إجراء عمليات شراء
  • إجراءات عالية التكلفة — استدعاءات API تتكبد رسوماً كبيرة
  • اتصالات خارجية — رسائل مرسلة للعملاء أو الشركاء
  • توسع النطاق — عندما يريد الوكيل اتخاذ إجراءات خارج مهمته الأصلية

نمط نقاط التفتيش

الوكيل: وجدت 3 صفحات تسعير للمنافسين. خطتي هي:
        1. استخراج الأسعار من كل صفحة
        2. بناء جدول مقارنة
        3. كتابة ملخص مع التوصيات
        الثقة: 0.85
        هل أتابع؟ [نعم / تعديل الخطة / إيقاف]
الإنسان: نعم، تابع.
الوكيل: [ينفذ الخطة]

حماية التنفيذ المستقل بصندوق الحماية (Sandboxing)

عندما يعمل الوكلاء بمفردهم، يزداد نطاق ضرر الأخطاء. تخفف استراتيجيات الحماية من ذلك:

  • القراءة فقط افتراضياً — يمكن للوكيل قراءة البيانات بحرية لكنه يحتاج إذناً صريحاً للكتابة أو الحذف أو التعديل
  • التنفيذ المعزول — تشغيل الكود المولّد من الوكيل في حاويات معزولة (Docker، مفسرات محمية) بدون وصول لموارد المضيف
  • حدود الموارد — تحديد سقف لعدد استدعاءات الأدوات والرموز المستهلكة ووقت التنفيذ وإنفاق API لكل مهمة
  • وضع التشغيل التجريبي — ينشئ الوكيل الخطة ويعرض ما سيفعله، دون تنفيذ. يراجع الإنسان، ثم يوافق على التنفيذ
  • القدرة على التراجع — لعمليات الكتابة، الاحتفاظ بسجل تغييرات يمكن عكسها إذا أخطأ الوكيل

المبدأ هو الدفاع المتعدد الطبقات: لا حماية واحدة كافية، لكن الحمايات المتراكبة تقلل المخاطر لمستويات مقبولة.

الواقع العملي: كيف تعمل وكلاء البرمجة

وكلاء البرمجة مثل Devin وClaude Code تُظهر التنفيذ المستقل للمهام عملياً. سير عملها النموذجي يتبع نفس الحلقة:

  1. التخطيط: قراءة وصف المهمة. تحديد الملفات المطلوب فحصها. وضع خطة للنهج
  2. التنفيذ: تعديل الملفات، كتابة كود، إنشاء اختبارات
  3. الملاحظة: تشغيل مجموعة الاختبارات، قراءة مخرجات المترجم/المدقق، التحقق من نجاح البناء
  4. التصحيح الذاتي: إذا فشلت الاختبارات، قراءة رسالة الخطأ، تشخيص المشكلة، تعديل الكود، إعادة التشغيل

ما يجعل هذه الوكلاء فعالة هو حلقات التغذية الراجعة المحكمة — يمكنها تشغيل الكود وملاحظة النتائج خلال ثوانٍ، مما يتيح تكراراً سريعاً. كما أنها تحتفظ بذاكرة عاملة لما جربته، مما يمنعها من تكرار النهج الفاشلة.

قرارات التصميم الرئيسية في وكلاء البرمجة الإنتاجية:

القرار المقايضة
كم ملف يُقرأ مبدئياً سياق أكثر = خطة أفضل، لكن يكلف رموزاً أكثر
متى تُشغَّل الاختبارات بعد كل تعديل (آمن لكن بطيء) مقابل تعديلات مجمعة ثم اختبار (سريع لكن أصعب في التصحيح)
متى يُطلب المساعدة مبكراً جداً = مزعج؛ متأخراً جداً = عمل ضائع
الحد الأقصى للخطوات المستقلة قليل جداً = الوكيل يستسلم مبكراً؛ كثير جداً = تكلفة جامحة

زاوية المقابلات: تصميم وكيل بحث مستقل

سؤال مقابلة شائع هو: "صمم وكيلاً مستقلاً يمكنه البحث في موضوع وإنتاج تقرير."

طبّق استراتيجيات التخطيط من هذا الدرس:

  1. التخطيط: استخدم Plan-and-Execute — أنشئ خطة بحث بمهام فرعية (تحديد النطاق، البحث في المصادر، استخراج النتائج الرئيسية، التجميع، كتابة التقرير)
  2. التنفيذ: كل مهمة فرعية تستدعي أدوات مختلفة (بحث الويب، قارئ مستندات، ملخّص)
  3. التصحيح الذاتي: بعد استخراج النتائج، تقييم ما إذا كانت تغطي الموضوع بشكل كافٍ. إذا وُجدت ثغرات، إضافة مهام بحث فرعية جديدة
  4. التدخل البشري: عرض المخطط على الإنسان قبل كتابة التقرير الكامل. السماح له بإعادة التوجيه إذا انحرف النطاق
  5. الميزانية: وضع حدود على إجمالي عمليات البحث والرموز الإجمالية ووقت التنفيذ. إذا شارفت الميزانية على النفاد، تلخيص ما تم إيجاده بدلاً من الفشل بصمت

يريد المحاور أن يرى أنك تفكر في أنماط الفشل (ماذا لو لم يعد البحث بشيء مفيد؟)، وضبط الجودة (كيف تتحقق من النتائج؟)، وإدارة التكلفة (كيف تمنع الوكيل من استنزاف رصيد API؟).

في المختبر، ستبني وكيل تنفيذ مهام مستقل مع التخطيط وتنفيذ ReAct والتأمل الذاتي وإعادة التخطيط ونقاط التفتيش البشرية وإدارة الميزانية. :::

اختبار

اختبار الوحدة 4: التنفيذ المستقل للمهام والتخطيط

خذ الاختبار
نشرة أسبوعية مجانية

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

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

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