دليل شامل لإنشاء سير عمل متعدد الوكلاء متقدم بتقنية الدوران الدوري باستخدام مايكروسوفت أوتو جين

يوضح هذا الدليل كيفية تمكين إطار عمل مايكروسوفت أوتو جين للمطورين من تنظيم سير عمل معقد ومتعدد الوكلاء بأقل قدر من التعليمات البرمجية. من خلال الاستفادة من تجريدات RoundRobinGroupChat و TeamTool في أوتو جين، يمكنك تجميع مساعدين متخصصين بسلاسة، مثل الباحثين، والمتحققين من الحقائق، والنقاد، وملخصي المحتوى، والمحررين، في أداة “بحث معمق” متماسكة. يتولى أوتو جين تعقيدات أخذ الأدوار، وشروط الإنهاء، وإخراج البيانات المتدفقة، مما يسمح لك بالتركيز على تحديد خبرة كل وكيل والمطالبات النظامية بدلاً من ربط عمليات الاستدعاء العكسي أو سلاسل المطالبات اليدوية. سواء كنت تجري بحثًا متعمقًا، أو تتحقق من الحقائق، أو تُحسّن النثر، أو تُدمج أدوات خارجية، يوفر أوتو جين واجهة برمجة تطبيقات موحدة تتدرج من خطوط أنابيب بسيطة تتكون من وكيلين إلى تعاونيات معقدة تتكون من خمسة وكلاء.

تثبيت الحزم اللازمة

نقوم بتثبيت حزمة autogen-agentchat مع دعم Gemini، وامتداد OpenAI للتوافق مع واجهة برمجة التطبيقات، ومكتبة nest_asyncio لتصحيح حلقة الأحداث في دفتر الملاحظات، مما يضمن توفر جميع المكونات اللازمة لتشغيل سير عمل غير متزامن ومتعدد الوكلاء في Colab.

pip install -q autogen-agentchat[gemini] autogen-ext[openai] nest_asyncio

إعداد مفتاح واجهة برمجة تطبيقات Gemini

نقوم باستيراد وتطبيق nest_asyncio لتمكين حلقات الأحداث المتداخلة في بيئات دفتر الملاحظات، ثم نطلب بشكل آمن مفتاح واجهة برمجة تطبيقات Gemini الخاص بك باستخدام getpass ونخزنه في os.environ للوصول إلى عميل النموذج الموثق.

import os, nest_asyncio
from getpass import getpass
nest_asyncio.apply()
os.environ["GEMINI_API_KEY"] = getpass("أدخل مفتاح واجهة برمجة تطبيقات Gemini الخاص بك: ")

تهيئة عميل نموذج OpenAI

نقوم بتهيئة عميل دردشة متوافق مع OpenAI موجه إلى Gemini من Google من خلال تحديد نموذج gemini-1.5-flash-8b، وحقن مفتاح واجهة برمجة تطبيقات Gemini المخزن لديك، وتعيين api_type="google"، مما يمنحك عميل نموذج جاهز للاستخدام للوكلاء التابعين لأوتو جين.

from autogen_ext.models.openai import OpenAIChatCompletionClient
model_client = OpenAIChatCompletionClient(
    model="gemini-1.5-flash-8b",
    api_key=os.environ["GEMINI_API_KEY"],
    api_type="google",
)

تعريف وكلاء مساعدين متخصصين

نقوم بتعريف خمسة وكلاء مساعدين متخصصين، وهم الباحث، والمتحقق من الحقائق، والناقد، وملخص المحتوى، والمحرر، كل منهم مُهيأ برسالة نظام محددة حسب الدور وعميل نموذج Gemini المشترك، مما يمكنهم من جمع المعلومات، والتحقق من الدقة، وانتقاد المحتوى، وتلخيص النتائج، وصقل اللغة داخل سير عمل أوتو جين.

from autogen_agentchat.agents import AssistantAgent
researcher = AssistantAgent(name="Researcher", system_message="جمع وتلخيص المعلومات الواقعية.", model_client=model_client)
factchecker = AssistantAgent(name="FactChecker", system_message="التحقق من الحقائق وذكر المصادر.", model_client=model_client)
critic = AssistantAgent(name="Critic", system_message="انتقاد الوضوح والمنطق.", model_client=model_client)
summarizer = AssistantAgent(name="Summarizer",system_message="تلخيص في ملخص تنفيذي موجز.", model_client=model_client)
editor = AssistantAgent(name="Editor", system_message="صقل اللغة والإشارة إلى APPROVED عند الانتهاء.", model_client=model_client)

إنشاء فريق الدردشة الدورية

نقوم باستيراد فئة RoundRobinGroupChat بالإضافة إلى شرطين للإنهاء، ثم نُنشئ قاعدة إيقاف تعمل بعد 20 رسالة إجمالية أو عندما يذكر وكيل المحرر “APPROVED”. أخيرًا، نقوم بإنشاء فريق دوري من خمسة وكلاء متخصصين مع منطق الإنهاء المُدمج هذا، مما يمكنهم من الدوران عبر البحث، والتحقق من الحقائق، والانتقاد، والتلخيص، والتحرير حتى يتم استيفاء أحد شروط الإيقاف.

from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.conditions import MaxMessageTermination, TextMentionTermination
max_msgs = MaxMessageTermination(max_messages=20)
text_term = TextMentionTermination(text="APPROVED", sources=["Editor"])
termination = max_msgs | text_term
team = RoundRobinGroupChat(
    participants=[researcher, factchecker, critic, summarizer, editor],
    termination_condition=termination
)

إنشاء أداة فريق البحث المعمق

نقوم بتغليف فريق RoundRobinGroupChat الخاص بنا في أداة فريق تسمى “بحث معمق” مع وصف واضح للبشر، مما يُعبئ سير العمل بأكمله متعدد الوكلاء في أداة قابلة للاستدعاء يمكن للوكلاء الآخرين استدعاءها بسلاسة.

from autogen_agentchat.tools import TeamTool
deepdive_tool = TeamTool(team=team, name="DeepDive", description="بحث معمق تعاوني متعدد الوكلاء")

إنشاء وكيل المضيف

نقوم بإنشاء وكيل مساعد “مضيف” مُهيأ بعميل نموذج Gemini المشترك، ونمنحه أداة فريق البحث المعمق لتنظيم البحث المتعمق، ونُهيئه برسالة نظام تُبلغه بقدرته على استدعاء سير عمل البحث المعمق متعدد الوكلاء.

host = AssistantAgent(
    name="Host", model_client=model_client, tools=[deepdive_tool], system_message="لديك حق الوصول إلى أداة بحث معمق للبحث المتعمق."
)

تشغيل سير العمل

أخيرًا، نقوم بتعريف دالة run_deepdive غير المتزامنة التي تخبر وكيل المضيف بتنفيذ أداة فريق البحث المعمق حول موضوع معين، وتطبع النتيجة الشاملة، ثم تغلق عميل النموذج؛ ثم تقوم بانتزاع حلقة asyncio الموجودة في Colab وتشغيل البرنامج المساعد حتى اكتماله لتنفيذ سلس ومتزامن.

import asyncio
async def run_deepdive(topic: str):
    result = await host.run(task=f"بحث معمق حول: {topic}")
    print("نتيجة البحث المعمق:n", result)
    await model_client.close()
topic = "تأثير بروتوكول سياق النموذج على الذكاء الاصطناعي الوكيلي"
loop = asyncio.get_event_loop()
loop.run_until_complete(run_deepdive(topic))

الخلاصة

باختصار، فإن دمج Google Gemini عبر عميل OpenAI المتوافق مع أوتو جين وتغليف فريقنا متعدد الوكلاء كأداة فريق قابلة للاستدعاء يمنحنا نموذجًا قويًا لإنشاء سير عمل معياري وقابل لإعادة الاستخدام للغاية. يُسهل أوتو جين إدارة حلقة الأحداث (مع nest_asyncio)، والاستجابات المتدفقة، ومنطق الإنهاء، مما يسمح لنا بالتكرار بسرعة على أدوار الوكيل والتنظيم العام. يُحسّن هذا النمط المتقدم تطوير أنظمة الذكاء الاصطناعي التعاونية ويضع الأساس للتوسع في خطوط أنابيب الاسترجاع، والمحليات الديناميكية، أو استراتيجيات التنفيذ الشرطي.

المصدر: MarkTechPost