ما هو Function Calling؟ النموذج لا يشغّل الأداة بنفسه: كيف يحجز ChatGPT وClaude موعدًا أو يقرأ الطقس

تسأل ChatGPT: «كم الحرارة الآن في باريس؟» فيجيبك برقم حيّ، مع أن النموذج لا يعرف الطقس. السرّ ليس أنه تعلّم الطقس، بل أنه طلب من برنامج آخر أن يبحث عنه.

التعريف قبل الشرح

Function Calling (أو Tool Use) أن يكتب النموذج، بدل الجواب النصي، طلبًا منظّمًا يعني «شغّل الأداة الفلانية بهذه المعطيات». ينفّذ الطلب تطبيق، ثم يعيد إليه النتيجة ليصوغ الجواب. النموذج لا يضغط الأزرار بنفسه.

كيف تجري الدورة؟ بمثال الطقس

تستخدم وثائق OpenAI المثال نفسه:

  1. تعرّف الأداة للنموذجاسمها get_weather ولها معطى واحد هو المدينة، وتُرسل مع سؤال المستخدم.
  2. يطلب النموذج الاستدعاءلا يجيب بنص بل بطلب فيه المدينة «Paris».
  3. ينفّذ التطبيقيستعلم من خدمة الطقس ويحصل مثلًا على 25 درجة مئوية.
  4. تعود النتيجة إلى النموذجمع السؤال الأصلي وطلب الاستدعاء، فيكتب الجواب الأخير.

tool: get_weather(location)
model → tool_call: get_weather(location="Paris")
app   → tool_output: {"temperature": "25", "unit": "C"}
model → "It's about 25°C in Paris right now."

اختصار توضيحي منا وليس صيغة API حرفية. وبعد كل ذلك يبقى النموذج هو الذي يكتب الجملة الأخيرة.

من ينفّذ الأداة فعلًا؟

تفرّق وثائق Anthropic بين نوعين بحسب مكان تنفيذ الكود:

النوع أين ينفّذ؟ أمثلة
أدوات العميل داخل تطبيقك، وتعيد النتيجة بنفسك دالة تعرّفها أنت، وأدوات bash وtext_editor
أدوات الخادم على بنية Anthropic، وترى النتيجة مباشرة web_search وweb_fetch وcode_execution

وتقدّم OpenAI «أدوات الدوال» المعرّفة بمخطط JSON، و«الأدوات المخصصة» التي تقبل نصًا حرًّا. ويذكر دليلها أن GPT-6 Astra وGPT-6.1 Sol يتطلبان واجهة Responses API لاستدعاء الأدوات.

عدّاد ضغط في ورشة
الأداة تعطي النموذج قراءة لا يملكها — الصورتان: Shixart1985 (ويكيميديا كومنز، CC BY 2.0)

ماذا لو لم يكفِ السؤال لتشغيل الأداة؟

تقول وثائق Anthropic إن Claude يقرر في كل دور هل يستدعي أداة أم يجيب مباشرة بحسب وصف الأداة والطلب. وإن كان المعطى الناقص (كالمدينة في سؤال الطقس) غير مذكور، فإن Opus أرجح أن يسألك عنه، بينما قد يخمّن Sonnet قيمة معقولة. وتنبّه إلى أن هذا غير مضمون.

من هنا تفهم أخطاء الوكلاء: الأداة التي تُوصف بغموض أو تُعطى معطيات ناقصة تنتج أفعالًا خاطئة. صياغة الوصف جزء من العمل.

أين تراه كمستخدم؟

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

وما الذي يكلّفه؟

تدخل تعريفات الأدوات في عدد رموز الإدخال، بحسب Anthropic، وقد تكلف أدوات الخادم رسومًا إضافية، كالبحث على الويب الذي يُحاسَب على كل عملية بحث. وتتيح OpenAI «بحث الأدوات» (tool_search) لتأجيل تحميل الأدوات النادرة حين تكثر الأدوات، وهو مدعوم في gpt-5.4 وما بعده.

هل Function Calling هو نفسه MCP؟

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

هل النموذج يرى نتيجة الأداة؟

نعم، يعيد التطبيق إليه النتيجة، ثم يكتب النموذج الجواب النهائي بناءً عليها.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.

زر الذهاب إلى الأعلى