يتطور عصر التفاعلات البسيطة من نوع السؤال والإجابة مع النماذج اللغوية الكبيرة (LLMs) بسرعة. مشهد التطوير اليوم يتطلب أنظمة قادرة على الاستدلال، والتصرف، والتحقق. تقف واجهة برمجة تطبيقات Gemini من Google في طليعة هذا التحول، حيث توفر بدائيات قوية تتيح للمطورين بناء سير عمل وكياني (Agentic Workflows). من خلال دمج قدرات استدعاء الدوال مع تنفيذ الأكواد، يمكن للمطورين بناء وكلاء ذكاء اصطناعي لا يولّدون خططًا فحسب، بل ينفذون أيضًا منطقًا معقدًا ويسترجعون بيانات في الوقت الفعلي.
فهم الحلقة الوكيانية (Agentic Loop)
تعمل الأنظمة "الوكيانية" في حلقة: فهي تخطط، وتتصرف، وترصد النتيجة، ثم تعيد التخطيط. في سياق واجهة برمجة تطبيقات Gemini، يتم تنسيق هذه الحلقة من خلال آليتين رئيسيتين:
- استدعاء الدوال: يتيح هذا للنموذج إخراج بيانات JSON منظمة تشير إلى الدوال الخارجية التي يرغب في استدعائها وما هي المعلمات المطلوبة. إنه الجسر بين "عملية التفكير" في النموذج اللغوي الكبير و"طبقة الإجراءات" في تطبيقك.
- تنفيذ الأكواد (بايثون في بيئة معزولة): يمكن لـ Gemini توليد أكواد بايثون وتنفيذها في بيئة معزولة آمنة. هذا أمر حاسم للمهام التي تتطلب دقة رقمية، أو معالجة بيانات، أو تحققًا منطقيًا متعدد الخطوات قد تعجز التوليد النصي البسيط عن التعامل معها بشكل جيد.
الخطوة 1: تعريف الدوال للإجراءات الخارجية
لتتمكن الوكيان (Agent) من التفاعل مع تطبيقك المحدد أو مصادر بياناتك، يجب عليك تعريف توقيعات الدوال (Function Signatures). فكر في وكيل يحتاج إلى التحقق من حالة الطقس وحساب أوقات السفر المثلى.
import google.generativeai as genai
# Define the function signature
def get_weather(location: str):
# This function would normally call an external API
return {"temp_c": 22, "condition": "Sunny"}
def calculate_optimal_time(distance_km: float, speed_kmh: float):
# This function would perform complex logistics calculations
return {"hours": distance_km / speed_kmh}
# Configure the model with available tools
genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel(
'gemini-1.5-pro',
tools=[get_weather, calculate_optimal_time]
)
الخطوة 2: تمكين تنفيذ الأكواد للاستدلال المنطقي
بينما يتعامل استدعاء الدوال مع الإجراءات الخارجية، يتعامل تنفيذ الأكواد مع الحسابات الداخلية. عند استخدام أداة `code_execution`، يمكن لـ Gemini كتابة سكربتات بايثون لحل المسائل الرياضية أو معالجة جداول البيانات المقدمة في الأمر (Prompt).
إليك كيفية تمكين ذلك في إعدادات النموذج الخاص بك:
# Note: In the latest SDK, code execution is often enabled via specific tool settings
# or by utilizing the 'code_execution' capability if available in your region/plan.
model_with_code = genai.GenerativeModel(
'gemini-1.5-pro',
system_instruction="You are a data analysis agent. Use code execution to verify calculations."
)
# The model will now decide to run code if it sees mathematical or data-heavy tasks
response = model_with_code.generate_content("Analyze this dataset and find the top 3 trends.")
print(response.text)
مثال عملي: الوكيل الهجين
تخيل سيناريو يسأل فيه المستخدم: "ما هو أفضل وقت لحجز تذكرة طيران إلى باريس إذا كان لدي 1000 دولار، وما هي حالة الطقس المتوقعة؟"
يعمل الوكيل على النحو التالي:
- التخطيط: يحدد النموذج فرعيّ مهام: التحقق من حالة الطقس (بيانات خارجية) والميزانية (حساب منطقي).
- الإجراء 1: يستدعي الدالة `get_weather("Paris")`.
- الإجراء 2: ينفذ سكربت بايثون لتحديد ما إذا كان مبلغ 1000 دولار يغطي أسعار التذاكر النموذجية بناءً على البيانات التاريخية المقدمة في السياق.
- الملاحظة: يستقبل النموذج بيانات JSON من الدالة والمخرجات من بيئة العزل (Sandbox) الخاصة ببايثون.
- الإجابة النهائية: يدمج النموذج كلا المعلومات في رد متماسك: "حالة الطقس في باريس حاليًا 20 درجة مئوية ومشمس. بميزانيتك البالغة 1000 دولار، يمكنك تأمين تذكرة متوسطة المستوى تغادر يوم الثلاثاء."
أفضل الممارسات للوكلاء المتينين
- وصوف واضحة: توثيق الدوال (Docstrings) الخاص بك هو المصدر الرئيسي للمعلومات للنموذج اللغوي الكبير. كن صريحًا بشأن أنواع المعلمات والنتائج المتوقعة.
- معالجة الأخطاء: التقط دائمًا الاستثناءات داخل استدعاءات الدوال الخاصة بك. أعد رسالة خطأ منظمة إلى النموذج اللغوي الكبير حتى يتمكن من إعادة المحاولة أو إعلام المستخدم.
- تقييد تعقيد بيئة العزل: على الرغم من أن تنفيذ الأكواد في Gemini قوي، إلا أنه من الأفضل إبقاء الأكواد المولدة بسيطة لضمان أوقات تنفيذ أسرع وتسهيل عملية تصحيح الأخطاء.
خاتمة
من خلال الاستفادة من أدوات استدعاء الدوال وتنفيذ الأكواد في واجهة برمجة تطبيقات Gemini، ينتقل المطورون من نطاق الدردشات الثابتة إلى عالم الوكلاء المستقلين. يمكن لهذه الوكلاء إدراك بيئتهم من خلال واجهات برمجة التطبيقات الخارجية والاستدلال حول المشكلات المعقدة عبر الأكواد المعزولة. ومع نضج هذه القدرات، سيصبح القدرة على تنسيق سير العمل متعددة الخطوات التي تستخدم الأدوات متطلبًا قياسيًا لتطبيقات الذكاء الاصطناعي المؤسسية. ابدأ صغيرًا، وحدد أدوات واضحة، ودع النموذج يتولى التنسيق.