LLM + RAG + Function Calling لا يشكل عميل ذكاء اصطناعي
يصنف الكثير من الناس أي تطبيق يستخدم LLM وRAG واستدعاء الدوال (function calling) على أنه عميل ذكاء اصطناعي (AI agent).
هذا خطأ.
هذه الأدوات تضيف قدرات، لكنها لا تضيف استقلالية. وبدون الاستقلالية، لا يمكنك القول بأن لديك عميلاً.
ينبع هذا الارتباك من خلط الناس بين قدرة النظام وسلوك النظام.
انظر إلى أدوار هذه المكونات:
- تقوم نماذج LLM بتوليد الاستجابات بناءً على السياق، لكنها لا تتحكم في تدفق النظام.
- يقوم RAG بجلب البيانات ذات الصلة؛ فهو يوفر السياق ولكنه لا يتخذ القرارات أو يخطط للخطوات.
- يتيح استدعاء الدوال (function calling) لنموذج LLM طلب إجراءات معينة، ومع ذلك يظل النظام هو من يقرر ماهية الدوال المتاحة ومتى يتم تشغيلها.
حتى عند الجمع بين الثلاثة معاً، لا يزال النظام يفتقر إلى التحكم في تدفق التنفيذ.
في معظم الإعدادات، يتبع التطبيق مساراً (pipeline) محدداً مسبقاً، حيث يقرر الكود البرمجي ما يلي:
- متى يتم استخدام RAG.
- متى يتم استدعاء LLM.
- متى يتم تفعيل دالة ما.
- كيفية إرجاع الاستجابة.
هذا سير عمل محدود؛ حيث يتبع النموذج مساراً ثابتاً ثم يتوقف، ولا يقوم بالتخطيط أو التكرار من تلقاء نفسه.
يعمل عميل الذكاء الاصطناعي (AI agent) بشكل مختلف؛ فهو لا يتبع تسلسلاً ثابتاً، بل يقرر خطوته التالية بناءً على ما يحدث أثناء العملية.
الفرق بسيط:
- النظام غير العميل يتبع سير عمل (workflow).
- النظام العميل يسعى لتحقيق هدف.
يُعرف العميل من خلال سلوكه وليس من خلال أدواته. يجب أن يكون العميل قادراً على:
- اختيار الإجراء التالي.
- اختيار الأدوات ديناميكياً.
- تنفيذ خطوات متعددة في حلقة تكرارية.
- تغيير خطته بناءً على النتائج الجديدة.
- العمل حتى يصل إلى الهدف.
فكر في مسألة المسؤولية.
في تطبيقات LLM، يخبر النظام النموذج بما يجب فعله.
أما في العميل، فيخبر النظام النموذج بالهدف، ويقرر النموذج كيفية الوصول إليه.
يعمل RAG على تحسين السياق، ويُمكّن استدعاء الدوال من تنفيذ الإجراءات، وتوفر نماذج LLM القدرة على الاستنتاج. لكن لا شيء من هذه المكونات بمفرده يمكنه إنشاء عميل.
لا يوجد عميل إلا عندما يتحكم النموذج في تسلسل إجراءاته الخاصة.
المصدر: https://dev.to/rohith_kn/llm-rag-function-calling-is-not-an-ai-agent-5459
