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

ما هو الوكيل في الواقع

روبوت الدردشة (Chatbot) التقليدي هو دالة تعمل لمرة واحدة (single-shot function). تكتب مطالبة (prompt)، فيتوقع النموذج الرموز (tokens) التالية ويعيد كتلة من النص، ثم يتوقف. هو لا يتحقق مما إذا كانت إجابته دقيقة، ولا يتأكد مما إذا كان رابط الويب يعمل أو ما إذا كانت العملية الحسابية صحيحة. إنه يعطيك أفضل تخمين لديه في محاولة واحدة ثم يصمت.

أما الوكيل، فيقوم بتفكيك هذه المحاولة الواحدة إلى دورة متكررة. لا يزال النموذج يولد النص، ولكنه يعمل الآن داخل حلقة محكومة حيث يمكنه التأثير في العالم الخارجي والتفاعل مع ما يحدث.

تبدو الدورة كالتالي:

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

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

ReAct: دورة التفكير-الفعل-الملاحظة

الطريقة الأكثر شيوعًا لتنفيذ هذه الحلقة هي نمط ReAct، والذي يرمز إلى Reason (التفكير) + Act (الفعل). في كل دورة عبر الحلقة، يمر النموذج بثلاث مراحل متميزة.

أولاً، ينتج النموذج تفكيرًا (Thought). حيث يتأمل في الوضع الحالي، ويذكر نفسه بالهدف الأصلي ويقرر ما يحتاج إلى معرفته بعد ذلك. ثانيًا، يختار إجراءً (Action). قد يكون هذا بحثًا على الويب، أو استعلامًا في قاعدة بيانات، أو استدعاءً لآلة حاسبة، أو طلبًا لقراءة ملف. ثالثًا، يتلقى ملاحظة (Observation). يقوم النظام بتنفيذ الإجراء خارج النموذج ويغذي النتيجة الخام مرة أخرى في سجل المحادثة. ثم يبدأ النموذج الحلقة التالية، مستخدمًا تلك الملاحظة الجديدة كواقع جديد له.

لننظر في مثال بسيط. لنفترض أنك طلبت من وكيل أن يخبرك ما إذا كانت ستمطر غدًا في مدينة أوستن. قد يفكر النموذج: "أحتاج إلى توقعات الطقس في أوستن". يكون إجراءه هو استدعاء weather API مع اسم المدينة. تعود الملاحظة كبيانات JSON خام: قراءة لدرجة الحرارة واحتمالية هطول الأمطار. يفكر النموذج مرة أخرى: "تظهر التوقعات احتمال هطول أمطار بنسبة سبعين بالمائة"، ويكون إجراءه النهائي هو صياغة ذلك في إجابة باللغة الإنجليزية البسيطة لك.

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

ما تحتاجه لبناء حلقة موثوقة

يتطلب تشغيل هذا النمط في بيئة الإنتاج (production) أكثر من مجرد مطالبة ذكية. أنت بحاجة إلى ثلاثة ضوابط عملية.

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

تولَّ تنفيذ الكود بنفسك. نموذج اللغة لا يشغل الأدوات. هو فقط يقترح الإجراءات، عادةً عن طريق إخراج نص مهيكل أو JSON يحدد اسم الأداة ويوفر المعلمات (parameters). يجب أن يقوم الكود الخاص بك بـ