استخدام ChatDev ChatChain للتواصل مع الوكيل على watsonx.ai

المؤلفون

Vanna Winland

AI Advocate & Technology Writer

في هذا البرنامج التعليمي، نوضِّح كيفية بناء نظام الذكاء الاصطناعي التعاوني باستخدام إطار العمل ChatDev واستكشاف هيكل اتصالات الوكيل القائم على الأدوار، ChatChain. يستخدم ChatDev وكلاء الذكاء الاصطناعي بأدوار مخصصة لمحاكاة شركة برمجيات افتراضية. يتعاون كل وكيل ذكي مع الآخرين من خلال اتصالات منظمة، باتباع سير عمل متسلسل يستند إلى مراحل دورة حياة تطوير البرمجيات.

لتشغيل هؤلاء الوكلاء، قمنا بدمج واجهة برمجة التطبيقات (API) الخاصة بمنصة ®IBM® watsonx.aiكمحرّك خلفي للنموذج. ومن خلال الاستفادة من تكامل watsonx.ai مع Hugging Face، قمنا بتهيئة الإطار لاستخدام Llama-4-Maverick لإنتاج حل برمجي بسيط. يُعَد هذا المثال أساسًا لاستكشاف ChatChain وآليات الاتصال الداخلية الأخرى للوكلاء التي توجِّه سلوك الوكلاء وصناعة القرار طوال سير العمل. 

بنهاية هذا البرنامج التعليمي، يجب أن تكون قد اكتسبت خبرة عملية في إعداد وتشغيل ChatDev، وفهمًا أوضح حول دور بروتوكولات التواصل في تحقيق تعاون متعدد الوكلاء بشكل فعَّال وموثوق به.

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

التعاون متعدد الوكلاء: وكلاء مستقلون متعددون يتشاركون المعلومات وينسقون فيما بينهم لتحقيق هدف مشترك. قد تختلف مستويات معرفة هؤلاء الوكلاء وقدراتهم ووجهات نظرهم، وغالبًا ما ينطوي تعاونهم على التفاوض والتخطيط والعمل المنسق.

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

بروتوكولات اتصال الوكلاء: معايير أو إطار العمل الذي يحدد كيفية تفاعل وكلاء الذكاء الاصطناعي مع بعضهم من خلال تبادل رسائل البيانات المنظمة. تحكم هذه البروتوكولات تنسيق ودلالات وقواعد الاتصال للوكلاء الذين ينسقون داخل الأنظمة متعددة الوكلاء.

الذكاء الاصطناعي التعاوني في Chatdev

ChatDev هو تنفيذ قائم على الأدوار للذكاء الاصطناعي التعاوني، حيث يتولى الوكلاء الفرديون أدوارًا متخصصة للعمل نحو هدف مشترك. يعكس هذا التصميم مبادئ الذكاء الجماعي -التعاون الفعَّال بشكل أساسي- ويضع ChatDev كمورد قيّم لدراسة هذا المجال وتطويره.

ChatDev هو إطار عمل مفتوح المصدر متعدد الوكلاء تم تطويره بواسطة OpenBMB، وهي مبادرة تعتمد على البحث تركِّز على تطوير أدوات الذكاء الاصطناعي والذكاء العام الاصطناعي (AGI). يستخدم هذا الإطار عملية تطوير البرمجيات كمجال عملي لدراسة وكلاء الذكاء الاصطناعي التعاونيين. يتم تشغيل كل وكيل بواسطة نموذج لغوي كبير (LLM) ويُطلب منه تولي أدوار محددة مثل الرئيس التنفيذي وكبير مسؤولي التكنولوجيا والمصمم والمختبِر والمبرمج.1

بدءًا من إدخال قصير ووصفي من المستخدم، يتعاون هؤلاء الوكلاء لتصميم وتنفيذ واختبار مشروع برمجي كامل بشكل متكرر. يتم تنفيذ كل وكيل كفئة Python تتواصل بشكل تسلسلي باستخدام مطالبات اللغة الطبيعية المنظمة. تتَّبِع هذه المطالبات قوالب محددة مسبقًا تتضمن دور الوكيل والتعليمات الخاصة بالمهمة والسياق ذا الصلة من التفاعلات السابقة. تساعد استراتيجية القالب هذه على ضمان الاستمرارية والترابط من خلال تضمين هوية الدور والذاكرة المشتركة في الموجِّه نفسه.

يعمل فريق ChatDev من الوكلاء المتخصصين معًا لإنشاء حل برمجي بسيط من إدخال مستخدم مكون من سطر واحد يصف فكرتهم. 

إدخال المستخدم: "أنشئ تطبيق قائمة مهام" ← المدير التنفيذي يفوض المهمة إلى المدير التقني ← المدير التقني يكلِّف المطور← المطور يكتب الكود ← المختبِر يتحقق من صحتها

آلية عمل ChatDev

يتم تنسيق تفاعلات الوكلاء بواسطة ChatChain، منطق التنسيق المخصص ضمن إطار عمل ChatDev. يتم التواصل بين الوكلاء من خلال حوار متعدد الجولات، أو نظام تبادل رسائل، حيث يتبادلون رسائل JSON مُنظمة بشكل تسلسلي. تمثِّل هذه الرسائل المخرجات وتحديثات السياق، وتعمل كذاكرة مشتركة مؤقتة، ما يُتيح للوكلاء البناء على مخرجات بعضهم عبر مراحل التطوير.

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

يمكن للمستخدمين مراقبة سير العمل القائم على الوكلاء ومراجعته باستخدام أداة Visualizer من ChatDev، وهي واجهة ويب مبنية على Flask تدعم كلًا من التحليل بعد التنفيذ والمراقبة في الوقت الفعلي. يوفر Visualizer عدة أوضاع، مثل "Log Viewer" لمتابعة تفاعلات الوكلاء في الوقت الفعلي، و"Replay Viewer" لعرض سجلات المحادثات المحفوظة بين الوكلاء، و"ChatChain Viewer" لمراجعة تدفق تنسيق المهام. تُتيح هذه الواجهة التفاعلية للمستخدمين تصحيح الأخطاء، وإجراء التجارب، ودراسة التعاون متعدد الوكلاء ضمن بيئة منظمة عبر المتصفح المحلي.

ملاحظة بشأن توافق النماذج وتباين النتائج

يستخدم هذا البرنامج التعليمي إصدارًا مخصصًا من ChatDev تم تكييفه خصيصًا لواجهة برمجة تطبيقات IBM watsonx.ai. رغم أن الإصدار الأساسي من ChatDev يدعم عدة مزودي نماذج، فإن هذا الإصدار تم تعديله باستخدام نهج عملي يُعرف باسم "vibecoding"، ما يجعله قابلًا للاستخدام، ولكن لم يتم اختباره بشكل شامل في جميع السيناريوهات.

تشمل التعديلات الرئيسية ما يلي:

  • تغليف واجهة API الخاصة بـ IBM watsonx.ai لتتوافق مع واجهة النماذج اللغوية الكبيرة المتوقعة في ChatDev.

  • ضبط القوالب السريعة للعمل مع متطلبات الرمز المميز والتنسيق الخاصة بواجهة برمجة تطبيقات IBM watsonx.ai.

  • تعديل منطق اختيار النموذج لدعم IBM watsonx.ai كخيار خلفي للنموذج.

يوضِّح هذا التنفيذ كيف يمكن توسيع ChatDev لدعم موفري LLM البديلين. لم يتم اختبار موفري النماذج الآخرين (على سبيل المثال، OpenAI وOllama) باستخدام هذا الإصدار المخصص من ChatDev وقد يحتاجون إلى إجراء تعديلات على مستوى الكود.

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

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

الخطوات

الخطوة 1. إعداد البيئة

على الرغم من أن ChatDev مصمم ليكون متعدد الأنظمة الأساسية، فقد يواجه المستخدمون مشكلات خاصة بالنظام الأساسي أثناء الإعداد أو التنفيذ. على سبيل المثال، قد يتطلب PowerShell على نظام التشغيل Windows إجراء تعديلات على أوامر shell المخصصة للأنظمة المستندة إلى نظام التشغيل Unix. يمكن أن تؤثِّر الاختلافات في نظام التشغيل وإصدارات Python وهندسة وحدة المعالجة المركزية أيضًا في الأداء أو السلوك. للمساعدة على ضمان الإعداد السلس وسهولة الاستخدام، يجب على المستخدمين الرجوع إلى وثائق ChatDev الرسمية وأدلة التثبيت لاستكشاف الأخطاء وإصلاحها والحصول على إرشادات خاصة بالبيئة.

مع وضع ذلك في الاعتبار، فلنبدأ بإعداد البيئة لتشغيل التطبيق. يمكنك اتباع هذه الخطوات في ملف Markdown داخل مجلد المشروع على GitHub أو من خلال المتابعة هنا.

  1.  تأكَّد من تثبيت Python 3.11 على نظامك.
    > يمكنك التحقق من إصدار Python الخاص بك باستخدام الأمرpython3 –-version
  2. انسخ مستودع GitHub.
    > للحصول على خطوات تفصيلية حول كيفية استنساخ مستودع، راجِع وثائق GitHub
  3. تأكَّد من أن هيكل المشروع يشبه ما يلي:
tutorials/projects/chatdev_watsonx/ 
   
├── camel/ 
│   ├── model_backend.py  # Unified interface for interacting with multiple AI models 
│   ├── typing.py         # Defines various type classes including supported AI models  
│   ├── configs.py        # Defines the model parameters based on model interface 
│   ├── utils.py          # Various utility functions including model token limit configuration 
│   └── ... 
├── Visualizer/ 
│   └──app.py             # Runs a Flask application in a local web browser to view logs and ChatChain  
├── WareHouse             # Where the generated software is saved  
├── run.py                # Application entry point 
└── chatdev_watsonx.md    # A markdown version of this tutorial

الخطوة 2. الحصول على بيانات اعتماد واجهة برمجة تطبيقات watsonx

  1. سجِّل الدخول إلى watsonx.ai باستخدام حساب ®IBM Cloud الخاص بك.
  2. أنشئ مشروع watsonx.ai. > دوِّن معرِّف المشروع الخاص بك من: المشروع > إدارة > عام > معرِّف المشروع. 
    ستحتاج إلى هذا المعرِّف في هذا البرنامج التعليمي.
  3. أنشئ مثيل خدمة watsonx.ai Runtime (اختَر خطة Lite، وهي مثيل مجاني).
  4. أنشئ مفتاح واجهة برمجة تطبيقات watsonx.
  5. اربط مثيل خدمة watsonx.ai Runtime بالمشروع الذي أنشأته في watsonx.ai.

الخطوة 3. إنشاء بيئة افتراضية

من دليل مشروع البرنامج التعليمي، أنشئ بيئة افتراضية باستخدام Python 3.11:

  python3.11 -m venv venv 
  source venv/bin/activate

الخطوة 4. تثبيت requirements.txt

يؤدي هذا إلى تثبيت تبعيات المشروع.

  pip install -r requirements.txt 

الخطوة 5. تعيين متغيرات البيئة لتكامل LLM

يتم تعيين المتغير لجلسة العمل الطرفية الحالية (سيؤدي إغلاق المحطة إلى إعادة تعيينها).

على الرغم من أن هذا البرنامج التعليمي يستخدم IBM watsonx.ai كنموذج خلفي، إلا أن إطار العمل الأساسي لدعم ChatDev تم تصميمه في الأصل لدعم العديد من مزودي LLM، بما في ذلك OpenAI الافتراضي. لا تزال بعض أجزاء قاعدة التعليمات البرمجية (على سبيل المثال، منطق تحديد النموذج أو الواجهات المشتركة) تُشير إلى المتغير البيئيOPENAI_API_KEY . لمنع أخطاء وقت التشغيل، هناك حاجة إلى قيمة وهمية حتى إذا لم يتم استخدام OpenAI. 

export OPENAI_API_KEY="your_openai_api_key_or_dummy_value" 
export WATSONX_URL="https://us-south.ml.cloud.ibm.com" 
export WATSONX_APIKEY="your_watsonx_api_key" 
export WATSONX_PROJECT_ID="your_watsonx_project_id"

الخطوة 6. (اختياري) تشغيل تطبيق Visualizer لواجهة ChatDev

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

لتشغيل Visualizer، عليك أولًا تثبيت Flask:

pip install flask

 

ثم شغِّل التطبيق: 

python visualizer/app.py

 

بمجرد التشغيل، افتح متصفحًا وانتقِل إلى: https://127.0.0.1:8000/

الخطوة 7. (اختياري) تكوين LLM

ملاحظة: يستخدم هذا البرنامج التعليمي إصدارًا من ChatDev تم تهيئته مسبقًا لاستخدام واجهة برمجة تطبيقات IBM watsonx.ai كخلفية للنموذج. لا يلزم إجراء إعداد إضافي أو تغييرات على تكوين النموذج حتى يعمل البرنامج التعليمي بشكل صحيح. أثناء التخصيص، يمكن أن يؤدي تعديل تكوينات LLM إلى مخرجات غير مكتملة وغير صحيحة ومتنوعة.

تم بناء ChatDev على إطار عمل CAMEL، الذي يُدير أدوار الوكيل ومهامه وتفاعلاته مع نماذج اللغة. يستخدم التنفيذ الأصلي واجهة برمجة تطبيقات OpenAI كواجهة خلفية نموذجية للتفاعل مع نماذج ChatGPT مثل GPT-4 ويستخدم GPT-3.5-turbo بشكل افتراضي. تم تصميم المشروع مفتوح المصدر أيضًا لدعم نماذج متعددة لمزودي LLM من خلال واجهة نموذج موحَّدة.

تجاوَز هذه الخطوة إذا كنت تخطط لاستخدام تكوين IBM watsonx.ai الافتراضي. لإجراء التجارب، يمكن تعديل نوع النموذج والمَعلمات وحدود الرموز المميزة للعمل مع واجهة برمجة التطبيقات IBM watsonx.ai.

  • نوع النموذج

لتجربة أنواع نماذج مختلفة، حدِّث إدخالWATSONX فيModelType التعداد فيcamel/typing.py

# camel/typing.py 

class ModelType(Enum):
WATSONX = "meta-llama/llama-4-maverick-17b-128e-instruct-fp8" # Model identifier used by the Watsonx APIThe model parameters can be configured within camel/configs.py under the WatsonxConfig data class.

 

  • مَعلمات النماذج

يمكن تكوين مَعلمات النموذج فيcamel/configs.py  ضمن  فئة البياناتWatsonxConfig .

# camel/configs.py 
 
@dataclass(frozen=True) 
class WatsonxConfig: 
     """Defines the parameters for generating completions using watsonx.ai models.""" 
   
     temperature: float = 0.3 
     top_k: int = 100 
     top_p: float = 0.0

 

  • حد الرموز المميزة

يمكن تكوين حد الرموز المميز للنموذج فيcamel/utils.py (.zip)

# camel/utils.py 
 
def get_model_token_limit(model: ModelType) -> int: 
     if model == ModelType.WATSONX: 
         return 128000  # Token limit for Watsonx.ai models

الخطوة 8. تشغيل البرنامج النصي لإنشاء التطبيق

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

يأخذ البرنامج النصي الوسيطات التالية:

  • –-task وصف الحل البرمجي المطلوب:

  • –-name : اسم التطبيق أو المشروع

  • –-model : نماذج الذكاء الاصطناعي التي سيتم استخدامها (يجب ضبطها علىWATSONX هذا البرنامج التعليمي)

مثال على النص:

python3 run.py --task "Build a simple website using Flask for a local bookstore called 'Turn the Page'. The website should include a homepage, an about page, and a product page. " --name "bookstore-site" --model "WATSONX"

ملاحظة: على الرغم من أن بنية ChatDev قابلة للتوسيع، إلا أن هذا البرنامج التعليمي لا يعمل بشكل موثوق به إلا معWATSONX . يتطلب توسيعه لاستخدام مزودي النماذج اللغوية الكبيرة الأخرى تعديل واجهةcamel/model_backend.py ومنطق التكوين ذي الصلة.

مثال على الناتج

يتم حفظ المنتج النهائي لمنتجات البرمجيات في مجلدWareHouse ضمن دليل فرعي اسمه على اسم المشروع واسم مجموعة افتراضية وطابع زمني.

قد يبدو الناتج النموذجي كما يلي:

├── WareHouse/ 
└── bookstore-site_DefaultOrganization_20250506162935/ 
     ├── templates/      # Web page templates 
     │   └── about.html 
     │   └── index.html 
     │   └── products.html 
     ├── manual.md      # The project’s README with instructions to run the software 
     ├── main.py        #The main application file for the website 
     ├── requirements.txt          # Project dependencies 
     ├── ChatChainConfig.json      # System design for collaborative agent workflows 
     ├── RoleConfig.json       # System prompts for agent roles 
     ├── PhaseConfig.json      # System prompts for phases 
     └── bookstore-site_DefaultOrganization_20250506162935.log  # Log of the agent dialogue

قد يختلف الناتج من مرة لأخرى بسبب الطبيعة الاحتمالية لأدوات الذكاء الاصطناعي التوليدي.

يحتوي هذا الدليل على مشروع برمجي كامل تم إنشاؤه بواسطة وكلاء الذكاء الاصطناعي. إلى جانب رمز التطبيق والوثائق، ستجد ملفات التكوين التي تحدِّد:

  • أدوار الوكيل (RoleConfig.json)

  • مراحل التطوير (PhaseConfig.json)

  • سير عمل الوكيل (ChatChainConfig.json)

  • سجل حوارات يمكن إعادة تشغيله في تطبيق Visualizer بإطار ChatDev.

لتشغيل التطبيق، اتَّبِع الإرشادات الواردة فيmanual.md (.zip)

لقطة شاشة تُظهر شاشة "Chatdev"

كيف يتعامل ChatDev مع اتصالات الوكلاء

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

غالبًا ما تستخدم الأنظمة متعددة الوكلاء بروتوكولات اتصال الوكيل (ACPs)، والتي توفِّر معايير لاتصال الوكيل بالوكيل من خلال استخدام آليات الاتصال الداخلية مثل لغات اتصال الوكيل (ACLs)، مثل KQML أو FIPA-ACL. وهذه تحدِّد "الأفعال التواصلية" القياسية (على سبيل المثال، الإبلاغ، والطلب، والاستفسار) لتمكين الحوار المنظم والتنسيق في البيئات الديناميكية.

ومع ذلك، فإن ChatDev يتخذ نهجًا مختلفًا. فهو يحقق التوافق بين الوكلاء من خلال ChatChain، وهو آلية تواصل تنظِّم سير عمل تنسيق الوكلاء. يُدير ChatChain تدفقًا متزامنًا للمعلومات بين الوكلاء عبر جميع مراحل عملية تطوير البرمجيات. رغم أنه لا يعتمد على قوائم التحكم في الوصول (ACLs) الرسمية، يُتيح ChatChain تبادلًا شبيهًا بالبروتوكولات من خلال استخدام قواعد مُحسَّنة للنماذج اللغوية الكبيرة (LLMs).

تعتمد اتصالات الوكلاء في ChatDev على:

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

  • تنسيقات الرسائل المنظمة: يتواصل الوكلاء من خلال رسائل JSON منظمة تقوم بترميز المخرجات وتحديثات السياق. يُتيح ذلك تبادل البيانات المتسق وإمكانية التتبُّع طوال سير العمل.

  • تهيئة الدور: تتم تهيئة كل وكيل بتوجيه يعزز الدور المُسند إليه، بما في ذلك المسؤوليات، والأهداف، والتوقعات السلوكية - وهي استراتيجية أساسية لإزالة الهلوسة التواصلية.

تشكِّل هذه الآليات معًا إطار عمل اتصال خفيف الوزن وقابل للتطوير يسمح لـ ChatDev بإنشاء برامج بشكل تعاوني من موجِّه واحد من المستخدم. ويوضِّح هذا كيف يمكن للتعاون المنظم القائم على LLM تحفيز سير العمل التقليدي متعدد الوكلاء.

ChatChain

ChatChain هي آلية الاتصال الأساسية في ChatDev، وتعمل على تنظيم تسلسل تفاعلات الوكيل طوال سير عمل تطوير البرنامج. وهي تنظم التعاون في شكل عملية تكرارية تشبه السلسلة وتتألف من مراحل متميزة، لكل منها أهداف محددة وأنماط اتصال خاصة بها.

خلال كل مرحلة، تبدأ ChatChain حوارًا ثنائي الوكيل بين وكيلين محددي الدور (على سبيل المثال، بين CEO وCTO، أو بين Programmer وReviewer). يعمل أحدهما عادةً كمدرب، والآخر مساعد. هذه التبادلات المنظمة ومتعددة الجوانب تبسِّط عملية صناعة القرار التعاونية مع الحفاظ على الوضوح في الأدوار والمسؤوليات المحددة. تتضمن الموجِّهات الخاصة بكل مرحلة تعليمات المهمة المحددة وهوية الدور والسياق ذي الصلة لتوجيه التفاعل.

يتبع سير العمل الشامل لـ ChatDev نموذج الشلال المعدل، وهو منهجية هندسة برمجيات تقليدية تقسم المهام إلى ثلاث مراحل متتالية: التصميم والبرمجة والاختبار. تنقسم مرحلة البرمجة والاختبار أيضًا إلى مهام فرعية لتعكس عملية تطوير تكرارية.

بشكل افتراضي، تقسِّم ChatChain سير العمل إلى الخطوات التلقائية المرتبة التالية:

  1. تحليل الطلب: تحديد هيكل التطبيق والمكونات الرئيسية. 

  2. اختيار اللغة: تحديد لغة البرمجة التي سيتم استخدامها لإنشاء البرنامج وتشغيله.

  3. البرمجة: يكتب الوكلاء الكود لإنشاء التطبيق.

  4. CodeCompleteAll: إكمال التعليمات البرمجية بما في ذلك الوظائف أو الفئات المفقودة.

  5. CodeReview: مراجعة وتعديل التعليمات البرمجية للوظائف.

  6. الاختبار: تشغيل البرنامج وتعديل الكود بناءً على تقرير الاختبار.

  7. EnvironmentDoc: توثيق البيئة.

  8. الدليل: توثيق وكتابة دليل للتطبيق.

يتم تعريف كل مرحلة بواسطة كائن تكوين يحدِّد السمات التي تحدِّد سلوكه وخصائصه. على سبيل المثال، تؤدي سمةneed_reflect إلى انعكاس post-phase حيث يقوم الوكلاء بتحليل نتائج التفاعل السابق وتحسينها.

لقطة شاشة توضح مخطط Chatchain

التوجيه التأسيسي

لتوجيه الاتصال المناسب بين الوكلاء، يستخدم ChatDev التوجيه التأسيسي كاستراتيجية تهيئة للوكيل قبل كل جولة من المهام الفرعية. التوجيه التأسيسي هو أسلوب في هندسة التوجيه يُستخدم لإدراج الأدوار والأهداف والمسؤوليات لتعزيز التواصل الفعَّال بين الوكلاء.

دعونا نلقِ نظرة على مثال يوضح كيف يوجِّه التوجيه التأسيسي وكيلين لبدء مهمة فرعية، ومواصلة تنفيذها، ثم إنهائها. 

مثال على التوجيه التأسيسي في ChatDev

قبل كل مهمة فرعية، يتلقى كل وكيل موجِّهات كمَعلمات تحدِّد التعليمات والخصائص والمسؤوليات والأهداف الخاصة بالدور. ومن الأمثلة على ذلك:assistant_role_prompt وuser_role_prompt. تحدِّد هذه المَعلمات الأدوار والمسؤوليات المحددة لكل وكيل مشارك في المحادثة، استنادًا إلى سياق المهمة.

فيما يلي موجِّهات دور النظام استنادًا إلى أدوار الوكيل للمدرب والمساعد في مرحلة LanguageChoose:

// RoleConfig.json 
 

   "Chief Executive Officer": [ 
     "{chatdev_prompt}", 
     "You are Chief Executive Officer. Now, we are both working at ChatDev and we 
     share a common interest in collaborating to successfully complete a task 
     assigned by a new customer.", 
     "Your main responsibilities include being an active decision-maker on users' 
     demands and other key policy issues, leader, manager, and executor. Your 
     decision-making role involves high-level decisions about policy and strategy; 
     and your communicator role can involve speaking to the organization's 
     management and employees.", 
     "Here is a new customer's task: {task}.", 
     "To complete the task, I will give you one or more instructions, and you 
     must help me to write a specific solution that appropriately solves the 
     requested instruction based on your expertise and my needs." 
   ], 
   "Chief Technology Officer": [ 
     "{chatdev_prompt}", 
     "You are Chief Technology Officer. we are both working at ChatDev. We share 
     a common interest in collaborating to successfully complete a task assigned 
     by a new customer.", 
     "You are very familiar to information technology. You will make high-level 
     decisions for the overarching technology infrastructure that closely align 
     with the organization's goals, while you work alongside the organization's 
     information technology (\"IT\") staff members to perform everyday operations.", 
     "Here is a new customer's task: {task}.", 
     "To complete the task, You must write a response that appropriately solves 
     the requested instruction based on your expertise and customer's needs." 
   ],

 

يعمل هذان الموجِّهان على تهيئة سلوك الوكيل المطلوب من خلال وصف دوره وخبرته ومسؤولياته. وتعمل استراتيجية التوجيه أيضًا على توجيه سلوك واستجابات الأدوار المعنية أثناء التفاعلات من خلال إعطاء تعليمات مخصصة حول كيفية إكمال المهمة الموكلة.

يتم توجيه اتصال الوكيل بشكل فعَّال من خلال إرشادات دقيقة للمساعدة على ضمان أن كلا الدورين لديهما توقعات واضحة ويمكنهما التعاون بشكل فعَّال.

إزالة الهلوسة التواصلية

لمعالجة احتمالية حدوث هلوسات في البرمجة (مثل توليد كود غير مكتمل أو غير صحيح)، يستخدم ChatDev نمط تواصل يُعرَف باسم "إزالة الهلوسة التواصلية". وهذا النمط ضروري لهيكلة المحادثة أثناء عملية مراجعة الكود.

تتضمن عملية مراجعة الكود مرحلتين،CodeReviewComment وCodeReviewModification يُجري وكيلا مراجعة الكود والمبرمج عدة تكرارات بين هاتين المرحلتين إلى أن تتوقف التعديلات بين جولتين متتاليتين، أو بعد مرور 10 جولات. دعونا نلقِ نظرة على مثال لإزالة الهلوسة التواصلية من سجل أحد المشاريع.

مثال على إزالة الهلوسة التواصلية في ChatDev

في هذا المثال، يكتشف وكيل Code Review خطأً في ناتج وكيل ويُبلغ عنه، مع تقديم اقتراح لتصحيح المشكلة في الكود المصدر. يقوم وكيل Programmer بعد ذلك بتصحيح مخرجاته الأصلية بناءً على تلك التعليقات.

في ما يلي جزء من مخرجات وكيل Code Review أثناء تكرار مرحلةCodeReviewComment :

/* bookstore-site_DefaultOrganization_20250506162935.log */ 
... 
 
## Step 7: Highest Priority Comment 
A high-priority comment is that the templates directory needs to be created, and 
the HTML files should be placed inside it for the application to find and render 
them correctly. Without this setup, running `app.py` will result in a 
`TemplateNotFound` error because Flask looks for templates in a `templates` 
folder by default. 
 
## Step 8: Instructions for Fixing 
To fix this, create a new directory named `templates` in the same directory 
where `app.py`

 

يستجيب وكيل Programmer بالكود المصحَّح خلالCodeReviewModification :

/* bookstore-site_DefaultOrganization_20250506162935.log */ 
 
Here is the list of your developed codes: main.py, index.html, about.html, products.html. 
 
### main.py 
```python 
... 
 
### templates/index.html 
 
```html 
<!-- 
Homepage template for Turn the Page bookstore website. 
Provides navigation links to other pages. 
--> 
... 
 
</html> 
### templates/about.html 
```html 
<!--  About page template for Turn the Page bookstore website. 
Provides information about the bookstore and navigation links. --> 
… 
</html>

 

يستمر Code Reviewer وProgrammer في تحسين الكود لمدة تصل إلى 10 تكرارات أو حتى يتم التوصل إلى إجماع بعد مرحلتين متتاليتين متطابقتين من التعديل.

يساعد نمط إزالة الهلوسة من الاتصالات على ضمان دقة الكود النهائي واكتماله ومواءمته مع المتطلبات المقصودة من خلال التحسين التكراري، مع تسهيل إنجاز المهام الفرعية بفاعلية.

الخاتمة

في هذا البرنامج التعليمي، نستكشف كيف يُتيح ChatDev الذكاء الاصطناعي التعاوني من خلال محاكاة شركة برمجيات افتراضية مكوّنة من وكلاء ذكاء اصطناعي قائمين على الأدوار. باستخدام واجهة برمجة تطبيقات IBM watsonx.ai كنموذج خلفي، يوجِّه ChatDev الوكلاء خلال دورة حياة تطوير البرمجيات من خلال تواصل منظم يجمع بين اللغة الطبيعية ولغة البرمجة.

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

بفضل أدوات التصور المدمجة لمراقبة وإعادة التشغيل تفاعلات الوكلاء، يوفر ChatDev منصة قوية لدراسة سير العمل وديناميكيات العمل الجماعي القائمة على النموذج اللغوي الكبير. ويوضِّح الإمكانات الحقيقية للذكاء الاصطناعي التعاوني في إنشاء البرامج وغير ذلك.

حلول ذات صلة
وكلاء الذكاء الاصطناعي للأعمال

يمكنك إنشاء مساعدين ووكلاء ذكاء اصطناعي ووكلاء أقوياء يعملون على أتمتة مهام سير العمل والعمليات باستخدام الذكاء الاصطناعي التوليدي ونشرها وإدارتها.

    استكشف watsonx Orchestrate
    حلول وكلاء الذكاء الاصطناعي من IBM

    يمكنك بناء مستقبل عملك باستخدام حلول الذكاء الاصطناعي الجديرة بالثقة.

    استكشف حلول وكلاء الذكاء الاصطناعي
    خدمات الذكاء الاصطناعي لدى IBM Consulting

    تساعد خدمات IBM Consulting AI في إعادة تصور طريقة عمل الشركات باستخدام حلول الذكاء الاصطناعي من أجل النهوض بأعمالها.

    استكشف خدمات الذكاء الاصطناعي
    اتخِذ الخطوة التالية

    سواء اخترت تخصيص التطبيقات والمهارات المُعدّة مسبقًا أو إنشاء خدمات مخصصة مستندة إلى وكلاء ونشرها باستخدام استوديو الذكاء الاصطناعي، فإن منصة IBM watsonx تُلبي احتياجاتك.

    استكشف watsonx Orchestrate استكشف watsonx.ai