arrow_backالعودة إلى ملاحظات المجال
AI منشور 5 Aug 2026

بناء وكيل ذكاء اصطناعي يعمل بفعالية: قاموس عملي

ما هو وكيل الذكاء الاصطناعي فعلاً، وكيف يختلف عن الروبوت الحواري، والمكونات التي تحتاجها لبناء واحد يعمل.

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

الحلقة الأساسية

كل وكيل، بغض النظر عن كيفية تسويقه، ينفذ بعض نسخة من نفس الحلقة: لاحظ، فكر، تصرف، كرر. بشكل محدد:

  1. يستقبل الوكيل مهمة ("ابحث عن أرخص رحلة إلى لشبونة في الشهر القادم واكتب ملخص بريد إلكتروني").
  2. يستدعي نموذج اللغة الكبير مع المهمة وإضافة وصف للأدوات المتاحة.
  3. يعيد النموذج إجابة نهائية أو استدعاء أداة، مثل search_flights(destination="Lisbon", month="2025-06").
  4. ينفذ الكود تلك الدالة، ويحصل على نتيجة حقيقية، ويعيدها إلى سياق النموذج.
  5. يقرر النموذج ما يفعله بعد ذلك: استدعاء أداة أخرى، طلب توضيح، أو الانتهاء.

عادة ما يطلق على هذا النمط حلقة ReAct (التفكير زائد التصرف)، وهو العمود الفقري لأطر العمل مثل LangChain's agent executors و LlamaIndex agents و OpenAI's function-calling API. يمكنك تنفيذ كل شيء بنفسك في أقل من 100 سطر من Python مع مجرد واجهة برمجية للنموذج و while loop — الأطر تضيف الراحة، وليس السحر.

الأدوات هي ما تجعلها وكيلاً

النموذج بدون أدوات يمكنه فقط التحدث. أعطه دوال ويمكنه التصرف. الأدوات عادة ما تكون دوال Python عادية ملتفة بمخطط يصف اسمها ومعاملتها والغرض منها، حتى يعرف النموذج متى وكيفية استدعاؤها. مثال:

def get_weather(city: str) -> str:
    """Return current weather for a given city."""
    resp = requests.get(f"https://api.weather.example/v1/{city}")
    return resp.json()["summary"]

مع function-calling من OpenAI، تمرر مخطط JSON بجانب هذه الدالة، والنموذج يخرج استدعاء منظم مثل {"name": "get_weather", "arguments": {"city": "Lisbon"}} بدلاً من النص الحر. يحلل الكود ذلك، وينفذ الدالة الحقيقية، ويعيد النتيجة كرسالة جديدة في المحادثة. كرر حتى يكون لدى النموذج معلومات كافية للإجابة.

الذاكرة والحالة

استدعاء واجهة برمجية واحد ليس له ذاكرة تتجاوز نافذة السياق الخاصة به. تحتاج الوكلاء إلى حالة صريحة: قائمة تشغيل للرسائل (سجل المحادثة)، وغالباً مخزن منفصل للحقائق الطويلة الأجل. بالنسبة للمهام القصيرة، قائمة Python من القواميس التي تمثل المحادثة كافية. بالنسبة للوكلاء الذين يحتاجون إلى تذكر الأشياء عبر الجلسات، ستصل إلى قاعدة بيانات متجهة (Chroma أو Pinecone أو Qdrant) لتخزين واسترجاع المعلومات السابقة ذات الصلة عبر التضمينات.

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

مثال عملي بسيط

إليك شكل وكيل عارٍ باستخدام واجهة برمجية OpenAI، بدون إطار عمل:

messages = [{"role": "user", "content": "What's the weather in Lisbon?"}]

while True:
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=messages,
        tools=[weather_tool_schema],
    )
    msg = response.choices[0].message
    if msg.tool_calls:
        for call in msg.tool_calls:
            result = get_weather(**json.loads(call.function.arguments))
            messages.append(msg)
            messages.append({
                "role": "tool",
                "tool_call_id": call.id,
                "content": result,
            })
    else:
        print(msg.content)
        break

هذا وكيل حقيقي وعامل. كل شيء آخر — استراتيجيات التخطيط، التنسيق متعدد الوكلاء، خطوط الاسترجاع — يبني على هذه الحلقة.

حيث تنهار

تفشل الوكلاء بطرق يمكن التنبؤ بها: حلقات استدعاء أداة لا نهائية عندما لا يستطيع النموذج معرفة أنه نجح، معاملات دالة مهلوسة، وتكاليف جامحة من استدعاء الأدوات المكلفة مرة أخرى. احمِ نفسك من الحلقات بحد أقصى للتكرار (قل، 10 خطوات) وسجل كل استدعاء أداة أثناء التطوير. تحقق من الحجج قبل تنفيذ أي شيء يلمس نظاماً حقيقياً — وكيل يمكنه إرسال رسائل بريد إلكترونية أو تشغيل أوامر shell يحتاج إلى نفس معالجة المدخلات التي ستطبقها على الكود الموجه للمستخدم، لأن النموذج هو، في الواقع، مستخدم غير موثوق به يولد هذا المدخل.

أين تذهب بعد ذلك

بمجرد أن تعمل الحلقة، تبدأ المشاكل المثيرة للاهتمام: الاختيار بين تصاميم الوكيل الواحد والمتعدد، تقرير مقدار الاستقلالية التي يجب منحها، واختبار الوكلاء بشكل موثوق عندما يكون الإخراج غير حتمي. تغطي مسارات AI و Python من Korra Studio توليد معزز بالاسترجاع وتصميم الفشائل وأنماط استدعاء الأداة بمزيد من التفاصيل إذا كنت تريد الاستمرار في البناء من هنا.

تمت كتابة هذا المقال بمساعدة الذكاء الاصطناعي، وراجعه ونشره Michal Pilch (CISSP)، Korra Studio.

هل أنت مستعد للمضي قدماً؟

هذه ملاحظة واحدة من قاعدة معارف Korra Studio — المنصة تجمع كل موضوع مع التوجيه الفردي.

ابدأ بالمجانarrow_forward