الـ Tool Calling· الدرس 1 من 7
يعني إيه Tool Calling
في سطر واحد · الـ tool calling هو إنك تدّي الموديل قايمة أدوات يقدر يطلبها، فبدل ما يخمّن الإجابة يقولّك «نادي الأداة دي بالمدخلات دي».
ده اللي بيحوّل الموديل من صندوق بيولّد نص لعقل بيحرّك أنظمة حقيقية — بيجيب داتا حيّة، بيحسب صح، وبيعمل أفعال بره كلامه.
الموديل لوحده بيعرف يتكلّم بس. لمّا تدّيله أدوات، بيبقى زي موظّف قدّامه تليفون وآلة حاسبة: يطلب منك تشغّلهم ويستنى النتيجة.
زي طلبات المطعم: الموديل بيكتب الطلب في ورقة، المطبخ (الكود بتاعك) بينفّذه، والطبق بيرجعله عشان يكمّل.
تسأله «الجو عامل إيه في القاهرة دلوقتي؟» — الموديل ما بيعرفش، بس بيطلب أداة get_weather بمدينة «القاهرة»، وإنت بتشغّلها وترجّعله الرقم.
بتبعت للـ API الرسالة + تعريفات الأدوات. الموديل بيرد بحاجة من اتنين: نص عادي، أو طلب استدعاء أداة — يعني block منظّم فيه اسم الأداة والمدخلات كـ JSON. لاحظ كويس: الموديل بيطلب بس، هو عمره ما بينفّذ أي حاجة بنفسه. الكود بتاعك هو اللي بيستقبل الطلب، يتحقّق من المدخلات، ينفّذ الدالة الحقيقية، ويرجّع النتيجة للموديل في رسالة جديدة عشان يكمّل كلامه بناءً عليها.
🧪 جرّب بنفسك: اكتب ٥ أسئلة مستخدم (مثلًا: «اشرح يعني إيه API»، «رصيدي كام؟»، «اكتبلي قصيدة»، «سعر الدولار دلوقتي؟»، «امسح حسابي»). قرّر لكل سؤال: الموديل يرد بنص ولا محتاج أداة؟ ولو أداة، اسمها إيه ومدخلاتها إيه؟
أشهر غلطة: الاعتقاد إن الموديل «بيشغّل» الأداة بنفسه. لأ — هو بيولّد JSON بيقول عايز إيه، والتنفيذ كله مسؤوليتك. تاني غلطة: تاخد مدخلات الموديل وتحطها في كود التنفيذ من غير تحقّق، كأنها داتا موثوقة — وهي مش كده خالص.
استخدمها لما الموديل محتاج حاجة بره دماغه: داتا حيّة (أسعار، طقس، داتابيز)، حسابات دقيقة، أو أفعال حقيقية (إرسال إيميل، فتح تذكرة).
مش محتاجها لو المطلوب معرفة عامة أو كتابة إبداعية الموديل بيعرفها لوحده — إضافة أدوات هنا بتزوّد تعقيد وتكلفة من غير فايدة.