العمارة متعددة الوكيل
توظف AuroraSOC 16 وكيلًا متخصصًا في الذكاء الاصطناعي تم تنظيمهم في طوبولوجيا المحور والتحدث. تشرح هذه الصفحة القرارات المعمارية وراء هذا التصميم وكيفية تعاون الوكلاء.
لماذا تعدد الوكلاء المتخصصين؟
يعاني وكيل واحد للأغراض العامة من اتساع نطاق العمليات الأمنية. يعتبر:
- يحتاج محلل البرامج الضارة إلى معرفة عميقة بالهندسة العكسية وقواعد YARA وسلوك بيئة العزل (Sandbox)
- يحتاج محلل الامتثال إلى معرفة أطر عمل NIST وISO 27001 وHIPAA وPCI-DSS
- يحتاج متخصص أمان CPS إلى فهم البروتوكولات الصناعية (Modbus، DNP3، OPC UA)
** لا يمكن لأي موجه LLM واحد أن يغطي جميع هذه المجالات بشكل فعال. ** يسمح التخصص بما يلي:
- مطالبات النظام المركزة — يتمتع كل وكيل بشخصية مخصصة يتمتع بخبرة في المجال
- مجموعات الأدوات ذات الصلة — يرى كل وكيل فقط الأدوات ذات الصلة بنطاقه
- الذاكرة المحسنة — يتم ضبط إعدادات الذاكرة المسبقة حسب نوع الوكيل
- قياس مستقل — قياس العوامل الساخنة دون قياس العوامل الباردة
طوبولوجيا المحور والتحدث
المنسق
المنسق هو الوكيل الوحيد الذي يمكنه التواصل مباشرة مع جميع الوكلاء الآخرين. هو - هي:
- يتلقى المهام من المستخدمين أو مسار الأحداث
- تحليل المهمة لتحديد المتخصصين المطلوبين
- الإرساليات تعمل باستخدام HandoffTools (واحدة لكل وكيل متخصص)
- المجاميع تنتج من متخصصين متعددين
- تجميع الرد النهائي
لا يقوم المنسق بإجراء التحليل الأمني الفعلي - فهو منسق.
HandoffTools
يتم عرض كل وكيل متخصص للمنسق باعتباره HandoffTool:
# From aurorasoc/agents/orchestrator/server.py
handoff_tools = []
for agent_type in AgentType:
if agent_type != AgentType.ORCHESTRATOR:
tool = HandoffTool(
agent=agent_type.value,
description=f"Delegate to {agent_type.value} specialist"
)
handoff_tools.append(tool)
وهذا يعني أن برنامج LLM الخاص بـ Orchestrator يرى أدوات مثل:
handoff_security_analyst— "تفويض إلى متخصص في محلل الأمان"handoff_threat_hunter— "مفوض إلى متخصص في صياد التهديدات"handoff_malware_analyst— "تفويض إلى متخصص في محلل البرامج الضارة"- ... (المجموع 15)
اتصال الوكيل: بروتوكول A2A
يتواصل الوكلاء عبر HTTP باستخدام بروتوكول Agent-to-Agent (A2A):
لماذا A2A على استدعاءات الوظائف المباشرة؟
| يقترب | الايجابيات | سلبيات |
|---|---|---|
| استدعاءات الوظائف المباشرة | سريع وبسيط | اقتران محكم، عملية واحدة، بدون تحجيم |
| ** قائمة انتظار الرسائل ** | منفصلة وقابلة للتطوير | معقدة وغير متزامنة ويصعب تصحيحها |
| بروتوكول A2A | بروتوكول قياسي منفصل ولكنه متزامن وقابل للنشر بشكل مستقل | حمل HTTP (الحد الأدنى) |
تم اختيار A2A للأسباب التالية:
- يعمل كل وكيل باعتباره خدمة HTTP مستقلة (حاوية منفصلة)
- يمكن نشر الوكلاء على أجهزة مختلفة للتوسع
- البروتوكول موحد — يمكن لأي وكيل متوافق مع A2A الانضمام
- عمليات التحقق من السلامة وقواطع الدائرة تعمل بشكل طبيعي مع HTTP
الإرسال الموازي
بالنسبة للتحقيقات المعقدة، يرسل المنسق إلى وكلاء متعددين في وقت واحد:
تقوم وظيفة dispatch_parallel() في وحدة الإرسال بإرسال الطلبات بشكل متزامن باستخدام asyncio.gather()، مما يقلل وقت التحقيق بشكل كبير.
نمط مصنع الوكيل
يتم إنشاء جميع الوكلاء بواسطة AuroraAgentFactory:
يتلقى كل وكيل:
- ** موجه نظام متخصص ** من
prompts.py - ThinkTool كأداة أولى (مفروض في الخطوة 1 للاستدلال)
- ** أدوات MCP الخاصة بالمجال ** ذات الصلة بدورها
- TieredAgentMemory مع إعداد مسبق يتوافق مع احتياجات الذاكرة الخاصة به
لماذا مصنع واحد بدلا من أن يقوم كل وكيل ببناء نفسه؟ لأن:
- الاتساق — يتبع جميع الوكلاء نفس نمط البناء
- التكوين — مكان مركزي لتعديل إنشاء الوكيل
- الاختبار — من السهل محاكاة المصنع لاختبارات الوحدة
- المخزون — مصدر واحد للحقيقة لجميع أنواع الوكلاء