Home
Login

إطار عمل تعليمي خفيف الوزن لتنسيق الوكلاء المتعددين تم تطويره بواسطة OpenAI، ويركز على تنسيق الوكلاء وتنفيذهم.

MITPython 20.0kopenaiswarm Last Updated: 2025-03-11

سرب أوبن إيه آي - مقدمة تفصيلية لإطار عمل تنسيق الوكلاء المتعددين

نظرة عامة على المشروع

سرب أوبن إيه آي هو إطار عمل تعليمي لاستكشاف تنسيق الوكلاء المتعددين الخفيف الوزن والمريح. يتم إدارة هذا المشروع من قبل فريق حلول أوبن إيه آي، ويهدف إلى تزويد المطورين بأداة بسيطة ومرنة وقابلة للتحكم لبناء أنظمة وكلاء متعددة.

تحديث مهم: تم استبدال سرب الآن بحزمة تطوير البرامج (SDK) للوكلاء من أوبن إيه آي، وهي نسخة جاهزة للإنتاج من سرب. يوصي فريق أوبن إيه آي بنقل جميع حالات الاستخدام الإنتاجي إلى حزمة تطوير البرامج (SDK) للوكلاء.

الميزات الأساسية

1. فلسفة التصميم

  • خفيف الوزن: يركز على البساطة وسهولة الاستخدام
  • قابل للتحكم بدرجة عالية: يوفر آليات تحكم دقيقة في الوكلاء
  • سهل الاختبار: يدعم عمليات اختبار وتصحيح بسيطة
  • موجه نحو التعليم: كمورد تعليمي لتعلم تنسيق الوكلاء المتعددين

2. المفاهيم المجردة الأساسية

يحقق سرب تنسيق الوكلاء من خلال مفهومين مجردين أساسيين:

الوكيل (Agent)

  • يحتوي على تعليمات وأدوات
  • يمكنه تسليم المحادثة إلى وكيل آخر في أي وقت
  • يدعم التعليمات الديناميكية ومتغيرات السياق

عمليات التسليم (Handoffs)

  • آلية انتقال سلسة بين الوكلاء
  • يدعم شبكات الوكلاء المعقدة وسير العمل
  • يحافظ على استمرارية المحادثة

التثبيت والاستخدام الأساسي

متطلبات النظام

  • بايثون 3.10+

طريقة التثبيت

pip install git+ssh://git@github.com/openai/swarm.git
# أو
pip install git+https://github.com/openai/swarm.git

مثال أساسي

from swarm import Swarm, Agent

client = Swarm()

def transfer_to_agent_b():
    return agent_b

agent_a = Agent(
    name="Agent A",
    instructions="You are a helpful agent.",
    functions=[transfer_to_agent_b],
)

agent_b = Agent(
    name="Agent B",
    instructions="Only speak in Haikus.",
)

response = client.run(
    agent=agent_a,
    messages=[{"role": "user", "content": "I want to talk to agent B."}],
)

print(response.messages[-1]["content"])

مثال على الإخراج:

Hope glimmers brightly,
New paths converge gracefully,
What can I assist?

البنية التقنية

آلية تشغيل العميل

تنفيذ الدالة client.run() في سرب الحلقة التالية:

  1. الحصول على استجابة كاملة من الوكيل الحالي
  2. تنفيذ استدعاءات الأدوات وإضافة النتائج
  3. تبديل الوكلاء عند الضرورة
  4. تحديث متغيرات السياق
  5. إرجاع النتائج إذا لم تكن هناك استدعاءات دالة جديدة

تكوين المعلمات

المعلمة النوع الوصف القيمة الافتراضية
agent Agent الوكيل (الأولي) المراد استدعاؤه (إلزامي)
messages List قائمة كائنات الرسائل (إلزامي)
context_variables dict متغيرات السياق {}
max_turns int الحد الأقصى لعدد الدورات float("inf")
model_override str تجاوز النموذج None
execute_tools bool ما إذا كان سيتم تنفيذ الأدوات True
stream bool ما إذا كان سيتم تمكين الاستجابة المتدفقة False
debug bool ما إذا كان سيتم تمكين سجلات التصحيح False

تكوين الوكيل

حقول فئة الوكيل

الحقل النوع الوصف القيمة الافتراضية
name str اسم الوكيل "Agent"
model str النموذج المستخدم "gpt-4o"
instructions str أو دالة تعليمات الوكيل "You are a helpful agent."
functions List قائمة الدوال القابلة للاستدعاء []
tool_choice str استراتيجية اختيار الأدوات None

مثال على التعليمات الديناميكية

def instructions(context_variables):
    user_name = context_variables["user_name"]
    return f"Help the user, {user_name}, do whatever they want."

agent = Agent(instructions=instructions)

response = client.run(
    agent=agent,
    messages=[{"role":"user", "content": "Hi!"}],
    context_variables={"user_name":"John"}
)

آلية استدعاء الدالة

استدعاء الدالة الأساسي

def greet(context_variables, language):
    user_name = context_variables["user_name"]
    greeting = "Hola" if language.lower() == "spanish" else "Hello"
    print(f"{greeting}, {user_name}!")
    return "Done"

agent = Agent(functions=[greet])

تسليم الوكيل

sales_agent = Agent(name="Sales Agent")

def transfer_to_sales():
    return sales_agent

agent = Agent(functions=[transfer_to_sales])

إرجاع نتائج معقدة

def talk_to_sales():
    print("Hello, World!")
    return Result(
        value="Done",
        agent=sales_agent,
        context_variables={"department": "sales"}
    )

مشاريع نموذجية

يوفر سرب العديد من المشاريع النموذجية التي تعرض سيناريوهات تطبيق مختلفة:

1. basic - مثال أساسي

يوضح الاستخدام الأساسي للإعداد واستدعاء الدالة والتسليم ومتغيرات السياق

2. triage_agent - وكيل الفرز

إعداد فرز بسيط، يقوم بإعادة توجيه الطلبات إلى الوكيل المناسب

3. weather_agent - وكيل الطقس

يعرض مثالًا بسيطًا لاستدعاء الدالة

4. airline - خدمة عملاء الخطوط الجوية

إعداد وكلاء متعددين، يتعامل مع أنواع مختلفة من طلبات خدمة العملاء لشركة الطيران

5. support_bot - روبوت الدعم

يتضمن وكيل واجهة مستخدم ووكيل مركز مساعدة مع أدوات متعددة

6. personal_shopper - مساعد التسوق الشخصي

مساعد تسوق شخصي يساعد في معالجة طلبات البيع والاسترجاع

المعالجة المتدفقة

يدعم سرب الاستجابات المتدفقة، باستخدام نفس الأحداث الموجودة في واجهة برمجة تطبيقات إكمال الدردشة:

stream = client.run(agent, messages, stream=True)
for chunk in stream:
    print(chunk)

أنواع الأحداث الجديدة:

  • {"delim":"start"} و {"delim":"end"} - وضع علامة على بداية ونهاية معالجة الوكيل لرسالة واحدة
  • {"response": Response} - إرجاع كائن الاستجابة الكامل في نهاية التدفق

الاختبار والتقييم

اختبار التطوير

استخدم run_demo_loop للاختبار من سطر الأوامر:

from swarm.repl import run_demo_loop

run_demo_loop(agent, stream=True)

اقتراحات التقييم

  • يشجع المشروع المطورين على إحضار مجموعات التقييم الخاصة بهم
  • يتم توفير مراجع التقييم في أمثلة airline و weather_agent و triage_agent
  • يدعم مقاييس اختبار الأداء المخصصة

الاختلافات مع منتجات أوبن إيه آي الأخرى

مقارنة مع واجهة برمجة تطبيقات المساعدين

  • واجهة برمجة تطبيقات المساعدين: توفر سلاسل رسائل مُدارة بالكامل وإدارة الذاكرة المضمنة
  • سرب: يعمل بالكامل على جانب العميل، تصميم عديم الحالة، أكثر ملاءمة للتعلم والتجريب

الخصائص التقنية

  • مبني على واجهة برمجة تطبيقات إكمال الدردشة
  • لا يتم حفظ الحالة بين الاستدعاءات
  • تنفيذ عميل خفيف الوزن
  • يركز على التعليم وأغراض التعلم

سيناريوهات التطبيق

سرب مناسب بشكل خاص للحالات التالية:

  • السيناريوهات التي تتطلب معالجة عدد كبير من الوظائف والتعليمات المستقلة
  • المهام المعقدة التي يصعب ترميزها في مطالبة واحدة
  • تعلم مفاهيم تنسيق الوكلاء المتعددين
  • تطوير النماذج الأولية السريع والتجريب

حالة المشروع

ملاحظة: على الرغم من أن سرب قد تم استبداله بحزمة تطوير البرامج (SDK) للوكلاء من أوبن إيه آي، إلا أنه لا يزال موردًا تعليميًا ممتازًا لمساعدة المطورين على فهم المفاهيم الأساسية وتنفيذ أنظمة الوكلاء المتعددين. بالنسبة لبيئات الإنتاج، يوصى بالانتقال إلى حزمة تطوير البرامج (SDK) الرسمية للوكلاء.

ملخص

يوفر سرب أوبن إيه آي إطار عمل بسيطًا وقويًا لتعلم وتطوير أنظمة الوكلاء المتعددين. من خلال المفهومين الأساسيين للوكيل والتسليم، يمكن للمطورين بناء سير عمل معقد للذكاء الاصطناعي مع الحفاظ على قابلية قراءة التعليمات البرمجية وسهولة صيانتها. على الرغم من استبداله بحزمة تطوير البرامج (SDK) الجديدة، إلا أن فلسفة تصميمه وقيمته التعليمية لا تزال مهمة.

Star History Chart