Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 66

تقنية ReAct: اتخاذ قرارات ذكية

Recommended resources

أهلاً بك في أول درس من وحدتنا الجديدة حول "المنطق المتقدم والتعامل مع الأخطاء".

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

في هذا الدرس، سنبدأ في ترقية وكيلنا ليصبح أكثر ذكاءً واستقلالية. سنتعلم تقنية قوية تُسمى ReAct، وهي اختصار لـ Reasoning and Acting (التفكير والتنفيذ). هذه التقنية تسمح للوكيل بأن "يفكر" في خطته، وينفذ الإجراءات، ويراقب النتائج، ثم يعدّل خطته بناءً على ما تعلمه، تمامًا كما يفعل الإنسان عند مواجهة مشكلة معقدة.

هدفنا اليوم هو شرح وتطبيق تقنية ReAct لاتخاذ قرارات أكثر تعقيدًا. بنهاية هذا الدرس، ستكون قادرًا على فهم آلية عمل هذه التقنية وكيف تمكّن الوكلاء من حل المشكلات التي تتطلب خطوات متعددة ومنطقًا ديناميكيًا.


1. حدود الوكيل البسيط: لماذا نحتاج إلى ما هو أكثر؟

لنتذكر وكيل المبيعات الذي صممناه. كان قادرًا على الرد على استفسارات مثل "ما هو سعر المنتج؟" لأنه يتبع مسارًا محددًا:

  1. استقبال السؤال.
  2. فهم النية (الاستفسار عن السعر).
  3. تقديم الإجابة المخزنة مسبقًا.

ولكن، ماذا لو طرح المستخدم سؤالاً أكثر تعقيدًا، مثل:

"أريد شراء هاتف جديد. ابحث عن أحدث هاتف من شركة سامسونج، وقارن سعره بسعر أحدث هاتف من شركة آبل، ثم أخبرني أيهما يمتلك بطارية تدوم أطول."

هذه المهمة مستحيلة على وكيلنا البسيط. لماذا؟ لأنها تتطلب سلسلة من الخطوات المترابطة التي لم نبرمجها مسبقًا:

  1. التخطيط: إدراك أن المهمة تحتاج لعدة عمليات بحث ومقارنة.
  2. الإجراء الأول: البحث عن "أحدث هاتف سامسونج".
  3. الإجراء الثاني: البحث عن "أحدث هاتف آبل".
  4. الإجراء الثالث: البحث عن مواصفات بطارية كل منهما.
  5. الإجراء الرابع: مقارنة الأسعار والمواصفات.
  6. التلخيص: تقديم إجابة نهائية متكاملة.

الوكيل البسيط يفتقر إلى القدرة على التفكير في كيفية تقسيم المشكلة والتصرف بشكل ديناميكي باستخدام الأدوات المتاحة له. هنا يأتي دور تقنية ReAct.



2. ما هي تقنية ReAct (التفكير والتنفيذ)؟

تقنية ReAct هي إطار عمل يدمج بين قدرة نماذج اللغة الكبيرة (LLMs) على التفكير المنطقي المتسلسل (Reasoning) وقدرتها على التفاعل مع العالم الخارجي عبر الأدوات (Acting).

الفكرة مستوحاة من الطريقة التي يحل بها البشر المشاكل. نحن لا نقفز مباشرة إلى الحل؛ بل نفكر في الخطوات، ننفذ خطوة، نرى نتيجتها، ثم نفكر في الخطوة التالية.

للحصول على تعريف دقيق، لنقرأ الجزء التمهيدي من المقال التالي الذي تقدمه شركة IBM.

What is a ReAct Agent? | IBM

يقدم هذا المقال بعنوان 'What is a ReAct Agent?' تعريفًا واضحًا لمفهوم وكيل ReAct وكيف يدمج بين 'سلسلة الأفكار' (Chain of Thought) واستخدام الأدوات الخارجية.

اقرأ قسم 'ReAct agent overview' الذي يبدأ من بداية المقال. ركز على فهم كيف أن ReAct لا يفصل بين اتخاذ القرار وتنفيذ المهمة، بل يدمجهما معًا.

كما قرأت، المبدأ الأساسي هو دمج التفكير مع الفعل. الفيديو القصير التالي يلخص هذه الفكرة بأسلوب مرئي ومباشر.

AI Agents, Clearly Explained

في هذا المقطع من قناة Jeff Su، يتم شرح الفرق بين سير العمل العادي ووكلاء الذكاء الاصطناعي، مع التركيز على أن الوكلاء يجب أن يتمكنوا من 'التفكير' و'التنفيذ' (Reason and Act).

شاهد من الدقيقة 05:23 إلى 06:59. لاحظ كيف يوضح أن التحول من سير عمل إلى وكيل ذكي يحدث عندما يحل نموذج اللغة (LLM) محل الإنسان في اتخاذ القرارات، ويشير صراحةً إلى أن إطار عمل ReAct هو الأكثر شيوعًا لتحقيق ذلك.

الصورة التالية تلخص بشكل رائع تطور هذه الفكرة. انتقلنا من نماذج تفكر فقط (Reason Only)، إلى نماذج تتصرف فقط (Act Only)، وصولًا إلى ReAct الذي يجمع بين الاثنين.

مقارنة بين نماذج التفكير فقط، التصرف فقط، وتقنية ReAct
توضح هذه الصورة كيف يدمج إطار عمل ReAct بين التفكير المنطقي (Reasoning Traces) داخل النموذج اللغوي، والتفاعل العملي مع البيئة عبر الإجراءات والملاحظات (Actions/Observations).


3. دورة عمل ReAct: فكرة ← إجراء ← ملاحظة

يعمل وكيل ReAct ضمن حلقة متكررة وبسيطة في مفهومها لكنها قوية جدًا في تطبيقها. تتكون هذه الحلقة من ثلاث خطوات:

  1. فكرة (Thought): يفكر الوكيل في حالته الحالية وما يجب عليه فعله بعد ذلك لتحقيق الهدف. هذا هو "حديثه الداخلي".
  2. إجراء (Action): بناءً على فكرته، يقرر الوكيل استخدام أداة معينة (مثل البحث على الويب، أو استدعاء API).
  3. ملاحظة (Observation): يتلقى الوكيل نتيجة الإجراء الذي قام به. هذه النتيجة قد تكون معلومة جديدة، أو نجاح المهمة، أو حتى رسالة خطأ.

ثم تتكرر الدورة: بناءً على الملاحظة الجديدة، يولد الوكيل فكرة جديدة، والتي تؤدي إلى إجراء جديد، وهكذا، حتى يصل إلى قناعة بأنه يمتلك الإجابة النهائية.

المقال من IBM الذي قرأت منه سابقًا يشرح هذه الدورة باستخدام مثال بسيط وممتاز من حياتنا اليومية.

What is a ReAct Agent? | IBM

دعنا نعد إلى مقال IBM لنفهم آلية عمل حلقة ReAct بشكل أعمق.

اقرأ الآن قسم 'How do ReAct agents work?' وقسم 'ReAct agent loops'. ركز على مثال 'توضيب حقيبة السفر' لفهم كيف نطبق هذه الدورة بشكل طبيعي، ثم لاحظ كيف يتم تكرار حلقة 'فكرة-إجراء-ملاحظة' بشكل متسلسل.

الصورة التالية تبسط هذه الدورة وتوضح تدفق المعلومات:

شرح مرئي لوكلاء ReAct
يوضح هذا المخطط كيف تبدأ العملية بمهمة من المستخدم، ثم يدخل الوكيل في حلقة التفكير (Reasoning) واستخدام الأدوات (Action) للحصول على معلومات من البيئة، ويعود بالنتائج ليصيغ الاستجابة النهائية.


4. تطبيق ReAct: مثال عملي خطوة بخطوة

الآن وبعد أن فهمنا النظرية، دعنا نطبقها على مثال عملي. لنفترض أننا طلبنا من وكيلنا المهمة التالية:

"ما هو الطقس في العاصمة الأردنية عمان، واقترح عليّ نشاطًا مناسبًا بناءً على الطقس."

لنفترض أن وكيلنا يمتلك أداتين: search_weather(city) و find_activities(city, weather_condition).

هكذا سيفكر الوكيل ويتصرف داخليًا باستخدام إطار ReAct:

الدورة الأولى:

  • Thought (فكرة): "المستخدم يريد معرفة الطقس في عمان واقتراح نشاط. يجب أن أبدأ بمعرفة الطقس أولاً. سأستخدم أداة الطقس."
  • Action (إجراء): search_weather(city="عمان")
  • Observation (ملاحظة): "الطقس في عمان: 25 درجة مئوية، غائم جزئيًا."

الدورة الثانية:

  • Thought (فكرة): "حسنًا، الآن أعرف أن الطقس معتدل وغائم جزئيًا. يمكنني الآن استخدام هذه المعلومة لاقتراح نشاط مناسب. سأستخدم أداة البحث عن الأنشطة."
  • Action (إجراء): find_activities(city="عمان", weather_condition="غائم جزئيًا")
  • Observation (ملاحظة): "الأنشطة المقترحة لطقس غائم جزئيًا في عمان: زيارة المدرج الروماني، التجول في وسط البلد، زيارة متحف الأردن."

الدورة الثالثة:

  • Thought (فكرة): "لدي الآن كل المعلومات التي أحتاجها: حالة الطقس وقائمة بالأنشطة المناسبة. يمكنني صياغة الإجابة النهائية للمستخدم."
  • Final Answer (الإجابة النهائية): "الطقس في عمان اليوم معتدل عند 25 درجة مئوية وغائم جزئيًا. بناءً على ذلك، أقترح عليك زيارة المدرج الروماني أو التجول في منطقة وسط البلد."

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

اختبر فهمك!

لنفترض أن لديك وكيل تسوق يمتلك أداتين: search_product(product_name) و check_reviews(product_id). إذا سأله المستخدم: "هل تقييمات هاتف 'SmartPhone X' جيدة؟"، كيف ستبدو أول دورة (فكرة، إجراء، ملاحظة) في منطق ReAct الخاص بالوكيل؟

Show answer

ستكون الدورة الأولى كالتالي:

  • Thought (فكرة): "المستخدم يسأل عن تقييمات منتج معين. لا يمكنني التحقق من التقييمات مباشرة بدون معرفة معرّف المنتج (product ID). لذا، يجب أولاً أن أبحث عن المنتج باستخدام اسمه للحصول على تفاصيله، بما في ذلك معرّفه."
  • Action (إجراء): search_product(product_name="SmartPhone X")
  • Observation (ملاحظة): "تم العثور على المنتج. الاسم: SmartPhone X، السعر: 500 دولار، المعرّف (ID): 12345."

في الدورة التالية، سيستخدم الوكيل product_id=12345 مع أداة check_reviews لإكمال المهمة.

كيف نعلّم الوكيل هذا السلوك؟ (ReAct Prompting)

قد تتساءل: كيف نجعل النموذج اللغوي يتبع هذا النمط؟ نحن نفعل ذلك عبر تقنية تسمى التلقين بنمط ReAct (ReAct Prompting). ببساطة، نحن نعطي تعليمات واضحة للنموذج في بداية المحادثة (في الـ System Prompt) نخبره فيها بأن عليه اتباع نمط Thought, Action, Observation، ونحدد له الأدوات المتاحة.

لنرَ كيف يبدو هذا التلقين في الواقع.

What is a ReAct Agent? | IBM

يقدم هذا الجزء من مقال IBM مثالاً حقيقياً على تلقين ReAct المستخدم في إطار العمل الشهير LangChain. سيوضح لك هذا الهيكل الدقيق الذي يتبعه الوكيل.

اقرأ قسم 'ReAct prompting'. ركز على المثال المقتبس من LangChain في نهاية القسم. لاحظ كيف يتم تعريف الأدوات المتاحة للوكيل، ثم يتم تحديد التنسيق الصارم الذي يجب أن يتبعه: Question, Thought, Action, Action Input, Observation.



خلاصة الدرس

في هذا الدرس، انتقلنا من الوكلاء ذوي المنطق البسيط إلى فهم تقنية متقدمة تجعلهم أكثر ذكاءً وقدرة على التكيف.

أهم النقاط التي تعلمناها:

  • ReAct يدمج التفكير والتنفيذ: هو إطار عمل يجمع بين التفكير المنطقي (Reasoning) والتفاعل مع البيئة عبر الأدوات (Acting).
  • دورة العمل الأساسية: يعمل الوكيل ضمن حلقة متكررة من فكرة ← إجراء ← ملاحظة، مما يسمح له بتقسيم المشاكل المعقدة وحلها خطوة بخطوة.
  • الاستقلالية والديناميكية: بدلاً من اتباع مسار ثابت، يمكن لوكيل ReAct أن يخطط ديناميكيًا لاستخدام أدواته بناءً على متطلبات المهمة.
  • التطبيق عبر التلقين (Prompting): نحن نوجه الوكيل لاتباع هذا السلوك من خلال تعليمات محددة في رسالة النظام (System Prompt).

إن فهمك لـ ReAct هو خطوة هائلة نحو بناء وكلاء أذكياء ومستقلين قادرين على حل مشاكل العالم الحقيقي المعقدة.


ماذا بعد؟

لقد رأينا كيف يتعامل وكيل ReAct مع "المسار السعيد" (Happy Path) حيث تنجح كل الإجراءات. ولكن، ماذا يحدث لو فشلت إحدى الأدوات؟ على سبيل المثال، ماذا لو لم يتمكن search_weather من العثور على المدينة؟

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