شو يعني استدعاء الدوال (Function Calling)؟ كيف النموذج بيستخدم أدوات خارجية
استدعاء الدوال قدرة النموذج على طلب تشغيل أداة خارجية (بحث، حاسبة، تقويم)؛ النموذج بيطلب والتطبيق بينفّذ — وهي الفكرة اللي حوّلت الشات بوت لوكيل.
شو يعني استدعاء الدوال (Function Calling)؟ كيف النموذج بيستخدم أدوات خارجية
سألت مساعد ذكي: «شو الطقس بغزة اليوم؟» — وردّ عليك بالدرجة الصحيحة. بس لحظة: النموذج معرفته وقفت عند تاريخ تدريبه، وما بيقدر «يطلّ من الشبّاك»! فكيف عرف؟ الجواب: ما عرف — استخدم أداة. الآلية اسمها استدعاء الدوال (Function Calling)، وهي الفكرة اللي حوّلت الشات بوت من «بيحكي» لـ«بيعمل». بهالمقالة رح نفهمها خطوة خطوة.
الجواب المختصر
استدعاء الدوال هو قدرة النموذج على طلب تشغيل أداة خارجية (بحث، طقس، حاسبة، قاعدة بيانات) لما يحتاج معلومة أو فعل ما بيقدر يعمله لحاله. المهم: النموذج بيطلب بس — التطبيق هو اللي بينفّذ. النموذج بيطلّع طلب منظّم (اسم الأداة + المعطيات)، التطبيق بيشغّلها ويرجّعله النتيجة، وبعدين النموذج بيصيغ الجواب بلغة طبيعية.
كيف بتشتغل؟ أربع خطوات
- ① بتسأل: «شو الطقس بغزة اليوم؟»
- ② النموذج بيقرّر: «ما بعرف الطقس الحالي، بس عندي أداة اسمها
getweather». فبيطلّع طلب منظّم:getweather(city="غزة")— مش جواب للمستخدم، بل طلب للتطبيق. - ③ التطبيق بينفّذ: البرنامج (مش النموذج) بينادي خدمة الطقس فعلياً، وبيرجّع النتيجة:
{"temp": 28, "sky": "صافي"}. - ④ النموذج بيصيغ: بياخد البيانات ويحوّلها لجملة طبيعية: «الطقس بغزة اليوم ٢٨ درجة وصافي».
النقطة الجوهرية: النموذج ما بينفّذ إشي — بيطلب بس. التنفيذ الفعلي عند التطبيق. وهاد مهم للأمان (رح نحكي عنه تحت).
ليش هالفكرة مهمة؟
بدونها، النموذج حبيس معرفته وقت التدريب — ما بيعرف الجديد، ما بيقدر يحسب بدقة، وما بيقدر يعمل أي فعل بالعالم. مع استدعاء الدوال، صار يقدر:
- يجيب معلومات حديثة (بحث، أسعار، طقس) — فيتجاوز حدود معرفته.
- يحسب بدقّة (حاسبة حقيقية بدل تخمين رياضي).
- يوصل لبياناتك (قاعدة بيانات شركتك، ملفاتك) — قريب من فكرة RAG.
- ينفّذ أفعال (يبعت إيميل، يضيف موعد، يعدّل ملف).
هالأخيرة بالذات هي اللي خلّت الوكلاء المستقلّين ممكنين: وكيل = نموذج + أدوات + حلقة قرارات.
وين بتلمسه؟
- المساعد الذكي بيجاوبك عن أخبار اليوم (استدعى بحث).
- بتسأله عملية حسابية معقّدة وبيجاوب صح (استدعى حاسبة).
- بتقوله «ضيفلي اجتماع بكرا ٣ العصر» وبينضاف فعلاً (استدعى تقويم).
- أدوات المطوّرين بتقرا وتعدّل ملفات (استدعت نظام الملفات).
وبروتوكول MCP هو معيار حديث بيوحّد كيف النماذج بتوصل لهالأدوات.
نقطة الأمان: القدرة على الفعل = مسؤولية
لما النموذج يقدر يستدعي أدوات بتعمل أفعال حقيقية، بتتغيّر معادلة المخاطر تماماً: غلطة ما بتضل «جملة غلط» — بتصير فعل حصل (إيميل انبعت، ملف انمسح).
عشان هيك:
- الصلاحيات لازم تكون ضيّقة (أقل صلاحية تكفي المهمة).
- الأفعال الخطيرة تستنّى موافقتك.
- وفي خطر إضافي: حقن الأوامر — محتوى خبيث بيخدع النموذج ليستدعي أداة بشكل ضار.
تفاصيل الحماية بمقالة أمان الوكلاء.
أخطاء وسوء فهم شائع
- «النموذج بينفّذ الأداة بنفسه»: لأ — بيطلب بس، والتطبيق بينفّذ. تمييز مهم للأمان.
- «يعني النموذج صار بيعرف كل إشي»: لأ — بيعرف يطلب؛ والنتيجة بتعتمد على الأداة وجودتها. ولو الأداة رجّعت معلومة غلط، بينقلها.
- «استدعاء الدوال = RAG»: مترابطين بس مختلفين: RAG بيجيب مستندات ليجاوب منها؛ استدعاء الدوال أوسع — بيشمل أفعال كمان.
- «ما بيغلط باختيار الأداة»: بيغلط — ممكن يختار أداة غلط أو معطيات غلط، لهيك التصميم الحذر مهم.
خلاصة سريعة
- استدعاء الدوال = النموذج بيطلب تشغيل أداة خارجية لما يحتاج معلومة أو فعل.
- الدورة: تسأل ← بيطلب أداة ← التطبيق بينفّذ ← بيصيغ الجواب.
- النموذج بيطلب، والتطبيق بينفّذ — تمييز جوهري للأمان.
- بيتجاوز حدود معرفته، بيحسب بدقّة، وبيوصل لبياناتك وينفّذ أفعال.
- هي الفكرة اللي حوّلت الشات بوت لوكيل — وبالتالي الصلاحيات والحماية صارت ضرورية.
أسئلة بتوصلنا كتير
- ما معنى Function Calling (استدعاء الدوال)؟ هي قدرة نموذج الذكاء الاصطناعي على طلب تشغيل أداة خارجية (بحث، حاسبة، تقويم، قاعدة بيانات) عندما يحتاج معلومة أو فعلاً لا يستطيع إنجازه بنفسه، ثم صياغة النتيجة بلغة طبيعية.
- هل ينفّذ النموذج الأداة بنفسه؟ لا — النموذج يُصدر طلباً منظّماً (اسم الأداة ومعطياتها) فقط، والتطبيق أو النظام المحيط هو الذي ينفّذ فعلياً ويعيد النتيجة إليه؛ وهذا التمييز مهم لأمان الصلاحيات.
- ما الفرق بين Function Calling و RAG؟ الـ RAG يجلب مستندات ليجيب النموذج منها، أما استدعاء الدوال فأوسع: يشمل جلب معلومات وتنفيذ أفعال حقيقية مثل إرسال رسالة أو إضافة موعد.
- What is Function Calling in Arabic? بالعربي «استدعاء الدوال» — قدرة النموذج على طلب تشغيل أدوات خارجية للحصول على معلومات حديثة أو تنفيذ إجراءات، وهي الأساس الذي حوّل روبوتات الدردشة إلى وكلاء ينجزون مهام.
- كيف يعرف المساعد الذكي أخبار اليوم رغم حدود معرفته؟ لأنه يستدعي أداة بحث لحظة سؤالك فتزوّده بالنتائج، ثم يصوغ منها الجواب — أي أنه لم «يتعلّم» الخبر بل حصل عليه كمعلومة في السياق.
كمّل رحلتك من هون
- ليش بيحتاج أدوات أصلاً؟ حدود المعرفة (Knowledge Cutoff)
- المعيار اللي بيوحّد الأدوات: شو يعني MCP؟
- النتيجة الطبيعية للفكرة: شو يعني الوكيل المستقل؟
- ليش الصلاحيات مهمة؟ أمان الوكلاء المستقلّين
- طريقة تانية للمعلومات: شو يعني RAG؟
- كل وكيل بأدواته: الأنظمة متعددة الوكلاء
- مصطلح مش واضح؟ قاموس «شو يعني؟»
المصادر
- Function calling — توثيق OpenAI للمفهوم
- Model Context Protocol (MCP) — معيار ربط النماذج بالأدوات
- الرسم التوضيحي: من إعداد «شو في AI؟»