يُعَد بروتوكول A2A، أو Agent2Agent، معيارًا مفتوحًا يُتيح الاتصال المنظم بين وكلاء الذكاء الاصطناعي والعملاء والأدوات. في هذا البرنامج التعليمي، يمكنك بناء نظام وكيل حيث يعالج عميل الدردشة استفسارات المستخدم ويرسلها إلى وكيل ذكاء اصطناعي يعمل على خادم متوافق مع A2A.
تطبِّق معظم تطبيقات الذكاء الاصطناعي الوكيل اتصالات مخصصة بين العناصر (على سبيل المثال، ChatChain من ChatDev)، ما يجعل من الصعب إعادة استخدام الوكيل نفسه عبر التطبيقات المختلفة أو دمج الأدوات الخارجية. يمنع هذا النقص في التوحيد القياسي قابلية التشغيل البيني ويَحُدّ من تطوير النظام البنائي الأوسع للوكلاء.
يعمل A2A على حل هذا القيد عبر فصل طبقة التواصل عن منطق الوكيل من خلال بروتوكول موحَّد يعتمد على HTTP وJSON-RPC 2.0 وServer-Sent Events (SSE). يسمح هذا الفصل للوكلاء بالتعاون مع الوكلاء الآخرين، وخدمة طلبات العملاء، والوصول إلى الأدوات الخارجية دون الحاجة إلى كود تكامل مخصص.
يدعم A2A البنى اللامركزية التي تسمح للفرق بتطوير أنظمة الذكاء الاصطناعي الخاصة بهم بشكل تدريجي دون كسر كود العميل. يمكن للفرق تحديث الأدوات أو تبديل النماذج أو تعديل سلوك الوكيل مع الحفاظ على واجهة متسقة عبر عمليات سير العمل المعقدة.
يتبادل الوكلاء المعلومات في الرسائل المنظمة بتنسيق JSON-RPC التي تتضمن البيانات الوصفية التي تُثري تفاعلات الوكيل بوضوح واتساق. يعرض كل خادم A2A بطاقة الوكيل في نقطة نهاية معروفة (.well-known/agent-card.json) التي تَصِف قدرات الوكيل كبيانات JSON منظمة. وبالتالي، فإنه يسمح للعملاء باكتشاف ما يمكن للوكيل القيام به ديناميكيًا، على غرار الطريقة التي تَصِف بها الوثائق نقاط النهاية المتاحة.
تابِع الخطوات لبناء وتشغيل نظام وكلاء A2A، واكتسب خبرة عملية في:
ملاحظة: إذا كنت قد عملت مع ACP (بروتوكول اتصال الوكيل)، فيمكنك التعرُّف على أوجه التشابه. انضم ACP، الذي تم تطويره في الأصل بواسطة BeeAI من IBM، إلى Google A2A تحت مؤسسة Linux. تستخدم BeeAI الآن محولات A2A (A2AServer وA2AAgent) لتوفير اتصال متوافق مع A2A. يعمل A2A أيضًا جنبًا إلى جنب مع MCP (بروتوكول سياق النموذج) لتمكين الوكلاء من التفاعل مع مصادر البيانات وأدواتها، ما يؤدي إلى إنشاء النظام البنائي.
يوضِّح هذا المشروع كيف يُتيح A2A الفصل النظيف بين واجهة العميل ومنطق الوكيل.
يتَّبع سير العمل هذا التسلسل:
يوضح سير العمل هذا نمطًا قابلًا لإعادة الاستخدام ينطبق على حالات الاستخدام التي تتطلب اتصالًا منظمًا بين العميل والوكيل مثل روبوت المحادثة وأنظمة الأتمتة ووكلاء دعم العملاء ومساعدي البحث مع تنسيق الأدوات.
يستخدم هذا المشروع وكيل ذكاء اصطناعي واحد مع قدرات أدوات متعددة. في الأنظمة الأكثر تعقيدًا، يمكنك نشر عدة وكلاء متخصصين، يركِّز كل منهم على مجالات أو مهام محددة.
RequirementAgent (BeeAI): وكيل إعلاني يعمل على اختيار وتنسيق أدوات متعددة بشكل ديناميكي استنادًا إلى طلب المستخدم. ويستخدم:
خادم A2A (
2. إعداد الوكيل: إنشاء وكيل المتطلبات مع الأدوات والذاكرة للتعامل مع دورة حياة الوكيل.
3. تكوين الخادم: يعرض العميل من خلال نقاط نهاية HTTP المتوافقة مع A2A
يعمل الخادم تلقائيًا على عرض AgentCard على المسار /.well-known/agent-card.json، والذي يصف قدرات الوكيل ويساعد على التحقق من إعدادات الوكيل.
عميل A2A (
إعداد الاتصال: إنشاء محول عميل A2A
يتم تمرير حقل
تبادل الرسائل: إرسال مطالبات غير متزامنة ومعالجة الاستجابات:
يتم تمرير حقل
فيما يلي متطلبات النظام لتشغيل هذا المشروع:
قبل أن تبدأ، إليك نظرة عامة على الأدوات المطلوبة لهذا المشروع:
يستخدم هذا المشروع Ollama كمزوِّد نموذج لوكيل الذكاء الاصطناعي. اتَّبِع هذه الخطوات لإعداد Ollama:
ملاحظة: يمكنك استخدام أي نموذج متوافق مع Ollama من خلال تعيين متغير البيئة
لتشغيل هذا المشروع، استنساخ مستودع GitHub باستخدام https://github.com/IBM/ibmdotcom-tutorials.git كعنوان URL ل HTTPS. للحصول على خطوات مفصلة حول كيفية استنساخ مستودع، راجع وثائقGitHub.
يمكن العثور على هذا البرنامج التعليمي داخل دليل المشروعات الخاص بالمستودع.
داخل المحطة الطرفية، انتقِل إلى دليل هذا البرنامج التعليمي:
يتطلب هذا المشروع تشغيل برنامجين نصيين بلغة Python منفصلين في وقت واحد، أحدهما للخادم والآخر للعميل. تحتاج إلى فتح نافذتين أو علامات تبويب طرفيتين.
احتفِظ بالمحطة الطرفية الحالية مفتوحة، ثم افتح المحطة الطرفية الثانية وتأكَّد من توجيه كِلا المحطتين الطرفيتين إلى دليل المشروع الصحيح (
هل تستخدم IDE؟
إذا كنت تستخدم IDE مثل Visual Studio Code، يمكنك استخدام ميزة Split Terminal لإدارة عدة محطات طرفية جنبًا إلى جنب.
بخلاف ذلك، افتَح نافذتّي محطتين طرفيتين مستقلتين ووجِّه كل واحدة إلى دليل المشروع.
تساعد البيئات الافتراضية في الحفاظ على التبعيات منفصلة وصيانتها. للحفاظ على تبعيات الخادم والعميل منفصلة، أنشئ بيئة افتراضية لكل عنصر.
للخادم:
انتقل إلى دليل
إنشاء بيئة افتراضية باستخدام Python 3.11:
تنشيط البيئة الافتراضية:
ملاحظة لمستخدمي Windows: استخدِم venv\Scripts\activate لتنشيط البيئة الافتراضية.
للعميل:
انتقل إلى دليل
إنشاء بيئة افتراضية وتنشيطها:
قم بتثبيت التبعيات المطلوبة لكل عنصر عن طريق تشغيل هذه التعليمات البرمجية في كل محطة طرفية:
يمكنك تشغيل
في المحطة الطرفية الأولى، ابدأ بتشغيل خادم وكيل A2A:
يجب أن ترى:
يستمع الخادم الآن إلى الطلبات الواردة من تطبيق العميل، وهو جاهز لدعم الاتصال من وكيل إلى وكيل.
في المحطة الطرفية الأخرى، ابدأ بتشغيل وكيل A2A:
من المفترض أن يطلب منك ذلك إدخال البيانات:
اكتب رسالة في محطة العميل واضغط على
في محطة الخادم الطرفية، يمكنك رؤية سجلات بروتوكول A2A التي تعرض الاتصال مع إشعارات الدفع:
يسترد الطلب الأول بطاقة AgentCard التي تصف القدرات. يرسل الطلب الثاني رسالتك كملف
ملاحظة: المخرجات من النماذج اللغوية الكبيرة احتمالية ويمكن أن تختلف في كل مرة تقوم فيها بتشغيل سير العمل، حتى مع المدخلات نفسها.
جرّب أنواعًا مختلفة من الاستعلامات لاختبار أدوات الوكيل المختلفة:
انتقِل إلى https://0.0.0.0:9999/.well-known/agent-card.json في متصفحك لعرض
يصف مستند JSON هذا:
تُتيح بطاقة AgentCard هذه لأي عميل متوافق مع A2A اكتشاف الوكيل والتفاعل معه دون معرفة مسبقة بتفاصيل تنفيذه.
في هذا البرنامج التعليمي، قمتَ ببناء نظام دردشة باستخدام خادم متوافق مع A2A الذي يعرض واجهة منظمة للاتصال بين العميل والوكيل. من خلال فصل طبقة المراسلة عن المنطق الداخلي، يمكِّن بروتوكول Agent2Agent الفرق من تحديث قدرات الوكيل أو تبديل النماذج أو تعديل تكوينات الأداة دون تغيير التعليمات البرمجية للعميل. تُعَد هذه المرونة ذات قيمة خاصة عند تنسيق المهام المطلوبة للإدخال أو تتبُّع حالة المهمة أو التعامل مع كل عملية كوحدة عمل منفصلة.
يعمل A2A من خلال تحديد تنسيق رسالة مشترك يمكن لأي مكون متوافق فهمه، ما يسمح للوكلاء المستقلين بالتعاون مع وكلاء آخرين. تحدِّد مواصفة البروتوكول كيفية هيكلة الرسائل بصيغة JSON-RPC وإثرائها بالبيانات الوصفية لضمان الاتساق والوضوح في جميع التفاعلات.
يعتمد هذا البرنامج التعليمي على الأمثلة الأساسية المقدَّمة من مستودع عينات A2A. للمزيد من المعلومات حول التنفيذ الأصلي، راجِع الملف التمهيدي في المستودع، والذي يوفر المزيد من السياق والأمثلة لبناء أنظمة متوافقة مع A2A.
في عمليات النشر الواقعية، يمكن لخوادم A2A تنفيذ آليات مصادقة لتأمين نقاط نهاية الوكلاء، واستخدام أحداث مرسلة من الخادم (SSE) لبث الاستجابات، والتوسع للتعامل مع سير العمل الإنتاجي. من خلال اتباع سير العمل هذا، رأيت كيف يمكن لعميل سطر الأوامر التفاعل مع وكيل ذكاء اصطناعي عبر بروتوكول موحَّد، ما يمكِّن الوكيل من تنسيق أدوات متعددة وتقديم استجابات سياقية. يوضِّح هذا النهج قوة A2A لتمكين أنظمة ذكاء اصطناعي قابلة للصيانة والتوسع ومرنة.
عند الانتهاء من تجربة النظام، اتَّبِع هذه الخطوات لإيقاف تشغيل جميع العناصر قيد التشغيل بشكل سلس:
في كل نافذة طرفية، اضغط على Ctrl+C لإيقاف العملية الجارية.
ستظهر لك مخرجات مثل:
إذا أصبح الخادم غير مستجيب أو توقف عند إيقاف التشغيل، فيمكنك إيقافه بالقوة:
ابحث عن معرِّف العملية (PID):
حدِّد معرِّف PID للعملية التي تحاول إيقافها.
إنهاء العملية:
كرِّر هذه العملية لكل خادم إذا لزم الأمر.
أحسنت. لقد نجحت في تشغيل نظام دردشة كامل متوافق مع A2A.
يمكنك إنشاء مساعدين ووكلاء ذكاء اصطناعي ووكلاء أقوياء يعملون على أتمتة مهام سير العمل والعمليات باستخدام الذكاء الاصطناعي التوليدي ونشرها وإدارتها.
يمكنك بناء مستقبل عملك باستخدام حلول الذكاء الاصطناعي الجديرة بالثقة.
تساعد خدمات IBM Consulting AI في إعادة تصور طريقة عمل الشركات باستخدام حلول الذكاء الاصطناعي من أجل النهوض بأعمالها.