كل وكيل ذكاء اصطناعي هو نموذج يستدعي أدوات بترتيب معين. والسؤال الحقيقي الوحيد هو: من يحدد ذلك الترتيب؟ في الوكيل الحلقي يقرر النموذج أثناء التنفيذ. أما في الوكيل البياني فتحدد أنت المسار مسبقًا، ويملأ النموذج خطواته. معظم النقاشات حول أطر الوكلاء تعود في الحقيقة إلى هذا الاختيار الواحد.
الوكيل الحلقي هو أبسط حل ناجح: أرسل المهمة وقائمة الأدوات إلى النموذج، ونفّذ الأداة التي يطلبها، وأضف النتيجة، ثم كرر حتى يجيب من دون استدعاء أداة. هذا هو نمط ReAct. توفره مباشرة واجهات استخدام الأدوات لدى OpenAI وAnthropic، وVercel AI SDK، ودالة createAgent في LangChain. وهو قادر على نحو لافت؛ فمعظم مساعدات البرمجة ووكلاء البحث تعتمد على هذه الحلقة نفسها.
قوته هي المرونة: لا حاجة إلى معرفة المسار مسبقًا، لذا تناسبه طبيعيًا المهام المفتوحة مثل البحث وتصحيح الأخطاء و«اكتشف سبب فشل هذا الطلب». وضعفه هو الأمر نفسه. عدد الخطوات غير معروف، وكذلك التكلفة وزمن الاستجابة؛ وقد يدور النموذج في حلقة، أو يتجاوز فحصًا، أو يستدعي أداة كنت تفضّل ألا يستخدمها. تضبطه حواجز حول الحلقة: حدّ للخطوات (stopWhen في Vercel AI SDK)، وميزانية للرموز، وقائمة أدوات مسموح بها، والتحقق من الإجابة النهائية.
يحوّل الوكيل البياني العملية إلى عقد وروابط صريحة: تصنيف، واسترجاع، وصياغة مسودة، وتحقق، وسؤال إنسان، وكتابة. يمكن أن تكون كل عقدة استدعاءً للنموذج أو أداة أو شيفرة عادية، ويمكن للروابط أن تتشعب أو تعود عمدًا إلى الوراء: «فشل التحقق، عُد إلى المسودة». الحالة كائن صريح يُحفظ بعد كل عقدة. أشهر مثال هو LangGraph: يضيف نقاط حفظ في Python وTypeScript، فتتوقف العملية إلى حين موافقة بشرية ثم تُستأنف بعد ساعات من الموضع نفسه تمامًا.
قوته هي التحكم. تعرف الخطوات الممكنة وترتيبها والمواضع التي تتطلب موافقة بشرية. يمكن تتبع كل تشغيل عقدةً بعقدة، وتحد بنية الرسم البياني التكلفة، ولا يؤدي الفشل في الخطوة الخامسة إلى إعادة الخطوات الأربع السابقة. والثمن هو التصميم المسبق وحرية أقل: إن لم تلائم المهمة الرسم، فلن يستطيع الوكيل الارتجال للخروج منها.
الوقت حتى النموذج الأولي
المهام المفتوحة
تكلفة وزمن استجابة متوقعان
تصحيح الأخطاء والتتبّع
موافقات بشرية
عمليات طويلة قابلة للاستئناف
كتابات آمنة (أموال وبيانات شخصية)
عرض كجدول
| المعيار | وكيل حلقي | وكيل بياني |
|---|---|---|
| الوقت حتى النموذج الأولي | 5 / 5 | 2 / 5 |
| المهام المفتوحة | 5 / 5 | 2 / 5 |
| تكلفة وزمن استجابة متوقعان | 2 / 5 | 4 / 5 |
| تصحيح الأخطاء والتتبّع | 2 / 5 | 5 / 5 |
| موافقات بشرية | 2 / 5 | 5 / 5 |
| عمليات طويلة قابلة للاستئناف | 1 / 5 | 5 / 5 |
| كتابات آمنة (أموال وبيانات شخصية) | 2 / 5 | 5 / 5 |
عند وضعهما جنبًا إلى جنب، لا يكون السؤال «أيهما أفضل؟» بقدر «أين تقع مهمتك؟»: بين المفتوح والمتكرر، وبين الأخطاء قليلة الكلفة والباهظة. ومن التفاصيل اللافتة أن الحد الفاصل أقل وضوحًا مما يروّج له التسويق. createAgent في LangChain حلقة، لكنه يعمل منذ الإصدار 1.0 على بيئة LangGraph؛ فالحلقة ليست سوى أصغر رسم بياني ممكن.
حجم الفقاعة: عدد استدعاءات النموذج المعتاد لكل مهمة
عرض كقائمة
- استدعاء واحد للنموذج — موجّه واحد وإجابة واحدة: الأعلى قابلية للتوقع والأقل استقلالية. (استدعاء واحد للنموذج)
- وكيل بياني — خطوات وتفرعات مصممة مسبقًا؛ يعمل النموذج داخل كل عقدة. (عدد ثابت من الاستدعاءات)
- رسم بياني بداخله حلقة — عملية ثابتة تتضمن خطوة مفتوحة، مثل البحث. (خطوات ثابتة + حلقة محدودة)
- وكيل حلقي — يختار النموذج كل خطوة تالية حتى ينتهي. (عدد الاستدعاءات حسب قرار النموذج)
قاعدتي العملية: ابدأ بحلقة للاستكشاف والأدوات الداخلية، حيث سيقرأ إنسان النتيجة على أي حال. انتقل إلى رسم بياني عندما تتكرر العملية، أو تمس المال أو بيانات العملاء، أو تتطلب موافقة، أو تتجاوز مدة طلب واحد. غالبًا ما تجمع أفضل أنظمة الإنتاج بينهما: رسم للعملية التجارية وحلقة صغيرة داخل إحدى عقده — كخطوة بحث قد تستدعي البحث عدة مرات قبل تسليم نتيجة منقحة إلى العقدة الحتمية التالية.
أيًا كان اختيارك، فالقواعد واحدة: مدخلات أدوات ذات أنواع محددة، وميزانية صارمة، وسجل لكل خطوة، وعدم الكتابة إلى نظام السجل قبل التحقق. في TypeScript أو Python لا يتطلب ذلك سوى بضع عشرات من الأسطر حول استدعاء النموذج، لكنها ما يفصل العرض التجريبي عن المنتج. إذا أردت إسناد عملية إلى وكيل، فأرسل الخطوات كما ينفذها فريقك اليوم. سأخبرك هل يناسبها وكيل حلقي أو بياني أو رسم بياني بداخله حلقة.
امنح المنتج القادم شخصاً يبقى معه.
هل أنت مستعد للبدء؟ أرسل لي رسالة؛ أنا متاح للبدء الآن والبقاء. عقود طويلة الأمد، لا تسليم خلال أسبوعين. لنتحدث عن مشروعك ومتطلباته وأفضل طريقة للمضي قدماً.