مكتبة LangGraph Swarm: تطوير أنظمة متعددة الوكلاء على غرار سرب النحل باستخدام Python

تُعدّ مكتبة LangGraph Multi-Agent Swarm، المكتوبة بلغة بايثون، أداةً قويةً لتنسيق عمل العديد من وكلاء الذكاء الاصطناعي بشكل مترابط يشبه سرب النحل. تبني هذه المكتبة على إطار عمل LangGraph، المُصمم لبناء سير عمل وكلاء قوية وذات حالة ثابتة، لتمكين شكل مُتخصص من هندسة أنظمة متعددة الوكلاء.

آلية عمل سرب LangGraph

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

الميزات الرئيسية

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

هندسة LangGraph Swarm وخصائصه الرئيسية

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

أدوات تسليم التنسيق بين الوكلاء

تتيح أدوات التسليم في LangGraph Swarm لوكيل واحد نقل التحكم إلى آخر عن طريق إصدار “أمر” يُحدث الحالة المُشتركة، ويُغيّر “الوكيل النشط” ويمرر السياق، مثل الرسائل ذات الصلة أو ملخص مخصص. بينما تقوم الأداة الافتراضية بتسليم المحادثة الكاملة وإدراج إشعار، يمكن للمطورين تنفيذ أدوات مخصصة لتصفية السياق، أو إضافة تعليمات، أو إعادة تسمية الإجراء للتأثير على سلوك نموذج اللغة الكبير. على عكس أنماط توجيه الذكاء الاصطناعي الذاتية، يتم تعريف التوجيه في Swarm بشكل صريح: تحدد كل أداة تسليم الوكيل الذي قد يتولى الأمر، مما يضمن تدفقات قابلة للتنبؤ. تدعم هذه الآلية أنماط التعاون، مثل “مخطط الرحلات” الذي يُحيل الأسئلة الطبية إلى “مستشار طبي” أو منسق يُوزع الاستفسارات التقنية والفواتير على خبراء متخصصين. يعتمد على مُوجّه داخلي لتوجيه رسائل المستخدم إلى الوكيل الحالي حتى يحدث تسليم آخر.

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

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

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

التخصيص والتوسعة

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

تكامل النظام البيئي والاعتماديات

تتكامل LangGraph Swarm بشكل وثيق مع LangChain، مستفيدة من مكونات مثل LangSmith للتقييم، وlangchain_openai للوصول إلى النموذج، وLangGraph لميزات التنسيق مثل الاستمرار والتخزين المؤقت. يسمح تصميمها الذي لا يعتمد على نموذج معين بتنسيق الوكلاء عبر أي واجهة خلفية لنموذج اللغة الكبير (OpenAI، أو Hugging Face، أو غيرها)، وهي متوفرة بلغة بايثون (pip install langgraph-swarm) وجافا سكريبت/تايب سكريبت (@langchain/langgraph-swarm)، مما يجعلها مناسبة لبيئات الويب أو الخادمات عديمة الخادم. تُوزّع بموجب ترخيص MIT ومع تطوير نشط، تستمر في الاستفادة من مساهمات المجتمع والتحسينات في نظام LangChain البيئي.

مثال على التنفيذ

فيما يلي إعداد بسيط لسرب مكون من وكيلين:

from langchain_openai import ChatOpenAI
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.prebuilt import create_react_agent
from langgraph_swarm import create_handoff_tool, create_swarm

model = ChatOpenAI(model="gpt-4o")

# الوكيل "أليس": خبير رياضيات
alice = create_react_agent(
    model,
    [lambda a, b: a + b, create_handoff_tool(agent_name="Bob")],
    prompt="أنت أليس، متخصصة في الجمع.",
    name="Alice",
)

# الوكيل "بوب": شخصية قراصنة يُحيل العمليات الحسابية إلى أليس
bob = create_react_agent(
    model,
    [create_handoff_tool(agent_name="Alice", description="أحيل العمليات الحسابية إلى أليس")],
    prompt="أنت بوب، قراصنة مرح.",
    name="Bob",
)

workflow = create_swarm([alice, bob], default_active_agent="Alice")
app = workflow.compile(checkpointer=InMemorySaver())

هنا، تُعالِج أليس عمليات الجمع ويمكنها التسليم إلى بوب، بينما يستجيب بوب بلطف ولكنه يُحيل الأسئلة الرياضية إلى أليس. يضمن InMemorySaver استمرار حالة المحادثة عبر الأدوار.

حالات الاستخدام والتطبيقات

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

في الختام، تُمثل LangGraph Swarm قفزة نحو أنظمة ذكاء اصطناعي تعاونية مُعيارية حقًا. إن هيكلة وكلاء متخصصين متعددين في رسم بياني اتجاهي يحل المهام التي يكافح نموذج واحد للتعامل معها، حيث يتعامل كل وكيل مع خبرته، ثم يُسلم التحكم بسلاسة. يُبقي هذا التصميم الوكلاء الأفراد بسيطين وقابلين للتفسير بينما يُدير السرب بشكل جماعي سير عمل معقدة تتضمن الاستدلال واستخدام الأدوات وصنع القرار. بناءً على LangChain وLangGraph، تستفيد المكتبة من نظام بيئي ناضج من نماذج اللغة الكبيرة والأدوات ومخازن الذاكرة وأدوات التصحيح. يستمر المطورون في التحكم الصريح في تفاعلات الوكيل ومشاركة الحالة، مما يضمن الموثوقية، ومع ذلك لا يزالون يستفيدون من مرونة نماذج اللغة الكبيرة لتحديد وقت استدعاء الأدوات أو التفويض إلى وكيل آخر.

المصدر: MarkTechPost