تخطَّ إلى المحتوى
إسنادISNAD
الوكلاء والأدوات

الوكلاء: من حلقة ReAct إلى نظام إنتاجي

ما الذي أضافته ورقة ReAct فعلًا، وكيف تُصمَّم واجهة أداة يفهمها النموذج، وأين توضع حدود التكرار والصلاحيات — ومتى تكون السلسلة الثابتة أفضل من الوكيل.

نُشر 5 دقائق قراءة

الوكيل (Agent) في جوهره نموذج داخل حلقة: يقرّر، يستدعي أداة، يقرأ النتيجة، ثم يعيد التقدير. النمط الذي عمّم هذه الصيغة هو ReAct [1]، وما أثبتته الورقة يستحق دقّة أكبر من الشائع عنها: مزاوجة أثر التفكير بالفعل قلّلت الهلوسة مقارنةً بسلاسل التفكير المعزولة عن أي مصدر خارجي، لأن كل خطوة تفكير تُقيَّد بمعلومة عائدة من العالم بدل أن تتراكم فوق تخمين سابق.

هذه الجملة الأخيرة هي كل الفرق بين وكيل مفيد ووكيل يبني قصرًا من رمل: مصدر التصحيح خارجي.

الحلقة وحدودها

  1. النموذج يقرّر: يقرأ الحالة ويختار الخطوة التالية.
  2. استدعاء أداة: ينفّذ تطبيقك الأداة بوسائطها.
  3. نتيجة الأداة تعود إلى السياق، فيعيد النموذج التقدير — ثم تعود الدورة إلى ١.
  4. الخروج بأحد ثلاثة: جواب نهائي، أو بلوغ حدّ التكرار، أو خطأ غير قابل للتعافي.

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

تصميم الأداة: هنا تُربح المعركة

النموذج لا يرى الكود، يرى الوصف. الوصف الرديء ينتج استدعاءً رديئًا مهما كان النموذج قويًّا.

{
  "name": "search_orders",
  "description": "يبحث في طلبات العميل بحسب رقم الطلب أو بريده. يعيد حتى ٢٠ طلبًا مرتّبة من الأحدث. لا يعيد بيانات الدفع. استخدمه قبل أي إجراء على طلب للتحقق من وجوده.",
  "input_schema": {
    "type": "object",
    "properties": {
      "order_id": { "type": "string", "description": "بصيغة ORD-XXXXX" },
      "email": { "type": "string", "format": "email" },
      "status": { "type": "string", "enum": ["pending", "shipped", "cancelled"] }
    },
    "oneOf": [{ "required": ["order_id"] }, { "required": ["email"] }]
  }
}

قواعد تصمد في الإنتاج:

  • صف متى تُستخدم الأداة ومتى لا تُستخدم، لا وظيفتها فقط.
  • قيّد المدخلات بمخطط صارم: enum بدل نصّ حرّ يمنع نصف الأخطاء قبل وقوعها.
  • أعِد أخطاءً وصفية: «لا يوجد طلب بهذا الرقم — تحقّق من الصيغة ORD-XXXXX» أنفع بكثير من error 404، لأن الوكيل يقرأ الخطأ ليصحّح نفسه.
  • قلّل عدد الأدوات: عشرون أداة متشابهة تربك النموذج أكثر مما تفيده؛ ادمج المتشابه واعرض ما يخصّ السياق الحالي.
  • افصل القراءة عن الكتابة: أدوات القراءة تُنفَّذ بحرّية، وأدوات التغيير تمرّ بموافقة أو بحدّ صارم.

بروتوكول MCP

مع تعدّد الأدوات والمصادر ظهرت حاجة إلى واجهة موحّدة بين النماذج والأنظمة الخارجية بدل تكامل مخصّص لكل مزوّد. هذا ما يقدّمه Model Context Protocol [2]: بروتوكول مفتوح يعرّف كيف يكتشف العميل الأدوات والموارد ويستدعيها. قيمته العملية أن أداتك تُكتب مرة وتُستهلَك من أي عميل يدعم البروتوكول، وأن حدود الصلاحية تُوصَف في مكان واحد.

الحواجز الإلزامية قبل الإنتاج

الحاجز القيمة العملية
حدّ أقصى للتكرار ٥–١٠ دورات ثم توقّف برسالة واضحة
سقف تكلفة للجلسة إيقاف عند تجاوز عدد رموز محدّد
مهلة لكل أداة تمنع تعليق الحلقة على استدعاء بطيء
صلاحيات أقل ما يمكن مفتاح للقراءة فقط ما لم تلزم الكتابة
موافقة بشرية لكل فعل غير قابل للتراجع: دفع، حذف، إرسال
سجلّ كامل كل استدعاء ومدخلاته ونتيجته — بلا هذا لا يمكن تشخيص فشل

والحاجز الأهمّ أمني: نتيجة الأداة بيانات لا تعليمات. أظهرت دراسة Greshake وزملائه [3] أن تعليمة مزروعة في صفحة أو مستند يقرأه النظام تكفي لخطف سلوكه دون أن يكتب المستخدم شيئًا. عامِل مخرجات الأدوات كمحتوى غير موثوق دائمًا، ولا تسمح لها بتوسيع صلاحيات الوكيل.

متى لا تحتاج وكيلًا

هذا أهمّ قسم في المقال. الوكيل يُدخل عدم حتمية: المسار يختلف بين تشغيلين، والتكلفة متغيّرة، والتشخيص أصعب.

النمط المسار متى يُختار
خطّ ثابت سؤال ← استرجاع ← توليد إجابة الخطوات معروفة مسبقًا: أرخص وأسرع وقابل للاختبار
وكيل سؤال ← قرار (بحث؟ حساب؟ استعلام؟) ← تنفيذ ← إعادة تقدير المسارات لا تُعدّ مسبقًا وتختلف باختلاف السؤال

ابدأ بالخطّ الثابت. انتقل إلى الوكيل حين تعجز فعلًا عن تعداد المسارات — لا قبلها.

الأخطاء الشائعة

  1. حلقة بلا حدّ تكرار — أول سبب للفواتير المفاجئة.
  2. أدوات كثيرة متداخلة الوظائف.
  3. أخطاء أدوات صامتة أو غامضة، فيعيد الوكيل المحاولة نفسها بلا نهاية.
  4. صلاحيات كتابة واسعة «للتجربة».
  5. معاملة مخرجات الأدوات كتعليمات موثوقة.
  6. غياب القياس: الوكيل لا يُقيَّم بالانطباع بل بمعدّل إنجاز المهمة وعدد خطواتها وتكلفتها.

الأسئلة الشائعة

ما الفرق بين استدعاء الأدوات والوكيل؟

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

كم عدد الأدوات المناسب؟

ابدأ بأقلّ عدد يغطّي المهمة — غالبًا ثلاث إلى سبع. عند التوسّع جمّعها في مجموعات وقدّم للوكيل ما يخصّ سياقه الحالي بدل عرض القائمة كاملة في كل دورة.

هل تعدّد الوكلاء أفضل من وكيل واحد؟

ليس افتراضيًّا. تعدّد الوكلاء يضاعف التكلفة ونقاط الفشل، ويُبرَّر حين تكون المهام منفصلة فعلًا وتحتاج أدوات وصلاحيات مختلفة. جرّب وكيلًا واحدًا بأدوات جيدة الوصف أولًا.

كيف أقيس أداء وكيل؟

بأربعة أرقام على مجموعة سيناريوهات ثابتة: معدّل إنجاز المهمة، متوسط عدد الخطوات، التكلفة لكل مهمة، ومعدّل الأفعال الخاطئة غير القابلة للتراجع. الأخير هو المقياس الأمني الحاسم.

المراجع

  1. Yao, S. et al. ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629
  2. Anthropic. Model Context Protocol — Specification. modelcontextprotocol.io
  3. Greshake, K. et al. Not What You've Signed Up For: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection. arXiv:2302.12173
  4. Wei, J. et al. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903
  5. OWASP. Top 10 for Large Language Model Applications. owasp.org

اقرأ بعده

غلاف مقال: بروتوكول MCP: ماذا يحلّ ولماذا ظهر؟
الوكلاء4 دقائق قراءة

بروتوكول MCP: ماذا يحلّ ولماذا ظهر؟

لماذا احتاجت النماذج بروتوكولًا موحّدًا للأدوات والموارد، وما الذي يعرّفه MCP من خادم وعميل وأدوات، وكيف تقرّر بينه وبين تكامل مخصّص.

اقرأ المقال
غلاف مقال: تعدّد الوكلاء: متى يستحقّ ومتى يضاعف الفشل؟
الوكلاء4 دقائق قراءة

تعدّد الوكلاء: متى يستحقّ ومتى يضاعف الفشل؟

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

اقرأ المقال

نشرة إسناد الأسبوعية

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

النشرة البريدية لم تُفتَح بعد. حتى ذلك الحين، تصلك المقالات كاملةً عبر تغذية RSS.