الذكاء الاصطناعي

ما هو استدعاء الدوال (Function Calling) في الذكاء الاصطناعي؟

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

نُشر في 4 مايو 2026· 4 دقائق قراءة

استدعاء الدوال (Function Calling) هو آلية تتيح لنموذج الذكاء الاصطناعي أن يطلب تنفيذ قطعة كود محددة — مثل send_email أو check_inventory — مع القيم التي يحدّدها بنفسه، بحيث يستطيع النموذج تشغيل إجراء حقيقي بدل الاكتفاء بوصفه نصياً. فبدون هذه الآلية، لا يستطيع النموذج اللغوي سوى إنتاج كلمات: يمكنه أن يخبرك بما يُحتمل أن تكون عليه حالة طلبك بناءً على أنماط من بيانات تدريبه، لكن لا وسيلة لديه للتحقق فعلياً. أما مع استدعاء الدوال، فيستطيع النموذج القول "استدعِ الدالة lookup_order برقم الطلب 4471"، ويحصل على إجابة حقيقية من نظامك، ثم يجيب المستخدم بناءً على تلك البيانات الفعلية.

كيف يعمل استدعاء الدوال فعلياً؟

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

كيف يبدو استدعاء دالة في الواقع؟

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

لماذا يُعدّ استدعاء الدوال الآلية التي تحوّل الشات بوت إلى وكيل؟

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

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

النموذج هو من يقرر متى يستدعي دالة، لكن المطوّر هو من يحدّد ما هي الدوال الموجودة أصلاً وما الذي يُسمح لها بفعله بالضبط — وهذا الحد الفاصل هو ضابط الأمان الحقيقي. لا يستطيع النموذج اختراع دالة جديدة أو الوصول إلى ما هو خارج القائمة التي أُعطيت له؛ كل ما يستطيعه هو طلب تنفيذ إجراءات محددة وجاهزة اختارها المطوّر لإتاحتها، كل واحدة منها مُقيَّدة بمهمة محددة ومدخلاتها وحدودها الخاصة. مثلاً، دالة lookup_order المصمّمة جيداً لا تستطيع سوى قراءة بيانات الطلب — لا يمكن خداعها لحذف سجلات أو تحويل أموال، لأن هذه القدرة ببساطة غير موجودة في الكود خلفها. لهذا يُعدّ تصميم قائمة الدوال بنفس أهمية النموذج ذاته: فالدوال الواسعة وغير المحددة بدقة تخلق مخاطر، بينما الدوال الضيقة والمحددة جيداً تُبقي حرية تصرّف النموذج ضمن حدود اختارها المطوّر صراحةً.

الفرق الجوهري

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

هل استدعاء الدوال هو نفسه الـ API؟

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

أسئلة شائعة

ما هو استدعاء الدوال في الذكاء الاصطناعي بعبارة بسيطة؟

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

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

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

هل يمكن لنموذج الذكاء الاصطناعي استدعاء أي دالة يريدها؟

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

لماذا يهم استدعاء الدوال لشات بوت الأعمال؟

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

كيف يساعدك PyMaster

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