لقد أحدثت النماذج اللغوية الكبيرة (LLMs) ثورة في توليد الأكواد، لكن المخرجات الخام غالبًا ما تحتوي على أخطاء خفية أو أخطاء منطقية. على الرغم من قدرات النماذج الحديثة مثل GPT-4، فإن الاعتماد على التوليد في مسار واحد فقط نادرًا ما يكون كافيًا لأكواد جاهزة للإنتاج. هنا يأتي دور **Microsoft AutoGen**، إطار عمل يمكّن من إنشاء محادثات متعددة الوكلاء حيث يمكن لأدوار الذكاء الاصطناعي المختلفة التفاعل والنقد وتحسين المخرجات. في هذا المقال، سنستكشف كيفية بناء وكيل برمجة ذاتي التصحيح يدمج التحقق بواسطة **المستخدم البشري (HITL)** لضمان نتائج عالية الجودة وموثوقة.
ميزة الوكلاء المتعددين
تفتقر خطوط أنابيب RAG التقليدية أو سلاسل التوجيه البسيطة إلى حلقة التغذية الراجعة الديناميكية اللازمة لحل المشكلات المعقدة. يحل AutoGen هذه المشكلة من خلال تعريف وكلاء بأدوار محددة، مثل المبرمج، والمراجع، ووكيل المستخدم. يقوم المبرمج بتوليد الكود الأولي، ويحلله المراجع بحثًا عن عيوب محتملة، بينما يسهّل وكيل المستخدم التفاعل مع المطور البشري. يسمح هذا النظام البيئي التعاوني للنظام بالتكرار داخليًا حتى يصل إلى مستوى ثقة عالٍ قبل طلب الموافقة البشرية.
تنفيذ فريق الوكلاء
للبدء، تحتاج إلى تثبيت مكتبة pyautogen. يوضح المثال التالي إعدادًا أساسيًا حيث يولّد وكيل البرمجة دالة بلغة بايثون، وينتقدها وكيل المراجعة. نستخدم AutoGenAssistantAgent للأدوار الذكية وUserProxyAgent لواجهة المستخدم البشري.
import autogen
import os
# Configure the API
config_list = [{"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}]
# Define the Coder Agent
coder = autogen.AssistantAgent(
name="Coder",
llm_config={"config_list": config_list, "temperature": 0.1},
system_message="You are a world-class Python developer. Write clean, efficient code. "
"If asked to fix code, provide the full corrected version."
)
# Define the Reviewer Agent
reviewer = autogen.AssistantAgent(
name="Reviewer",
llm_config={"config_list": config_list, "temperature": 0.1},
system_message="You are a senior code reviewer. Critically analyze the code for "
"logic errors, security vulnerabilities, and best practices. "
"If the code is flawed, explain why and ask the Coder to fix it. "
"If it is perfect, say 'APPROVED'."
)
# Define the User Proxy Agent
user_proxy = autogen.UserProxyAgent(
name="user_proxy",
human_input_mode="ALWAYS", # HITL: Always ask human for input
code_execution_config={"work_dir": "coding", "use_docker": False}
)
إضافة التحقق بواسطة المستخدم البشري
تتجلى القوة الحقيقية لهذا البنية في خاصية human_input_mode. من خلال ضبطها على "ALWAYS"، يتوقف النظام عند النقاط الحرجة لطلب ملاحظات بشرية. يضمن هذا أنه بينما يتولى الوكلاء الجزء الأكبر من العمل في التكرار وتصحيح الأخطاء، يحتفظ الإنسان بالسلطة النهائية. على سبيل المثال، إذا وافق المراجع على الكود، سيقدم user_proxy الحل النهائي للمطور. يمكن للمطور بعد ذلك قبوله، أو طلب تغييرات إضافية، أو رفضه بالكامل.
تشغيل المحادثة
إليك كيفية بدء المهمة. نطلب من المبرمج إنشاء دالة بحث ثنائي، وستقوم المحادثة تلقائيًا بالتكرار عبر مراحل البرمجة والمراجعة حتى يتم التوصل إلى إجماع أو يتم تفعيل تدخل بشري.
task = "Create a Python function that performs a binary search on a sorted list of integers."
# Start the chat
user_proxy.initiate_chat(
speaker=coder,
message=task,
max_rounds=5, # Prevent infinite loops
speaker_selection_method="round_robin" # Alternates between Coder and Reviewer
)
اعتبارات عملية وأفضل الممارسات
- إدارة الرموز (Tokens): يمكن أن تكون المحادثات متعددة الوكلاء مكلفة من حيث الرموز. استخدم
max_roundsلتقييد التفاعلات وتأكد من أن التوجيهات موجزة. - تنفيذ الكود: للحصول على موثوقية أعلى، فعّل تنفيذ الكود في
user_proxyأو وكيلمختبرمخصص. يسمح هذا للوكلاء بتشغيل الكود المولد فعليًا وكشف أخطاء وقت التشغيل، وليس فقط مشاكل التحليل الثابت. - السجلات (Logging): قم دائمًا بتسجيل سجل المحادثة. مراجعة سبب رفض وكيل جزءًا من الكود لا تقدر بثمن لضبط توجيهات النظام الخاصة بك.
الخاتمة
يوفر AutoGen أساسًا متينًا للتقدم من مجرد توليد الأكواد البسيط نحو هندسة برمجيات ذكية وتعاونية. من خلال الجمع بين القوة التكرارية لأنظمة الوكلاء المتعددة ودقة التحقق بواسطة المستخدم البشري، يمكن للمطورين بناء وكلاء ليسوا مبدعين فحسب، بل صارمين من الناحية النقدية أيضًا. تقلل هذه الطريقة بشكل كبير العبء عن المطورين البشر، مما يتيح لهم التركيز على البنية المعمارية وحل المشكلات المعقدة بينما يتولى الوكلاء الأعمال الروتينية وتصحيح الأخطاء.