انتقل إلى المحتوى الرئيسي

نظرة عامة على البنية

تقدم هذه الصفحة نظرة معمقة على بنية AuroraSOC للمطورين الذين يساهمون في المنصة أو يوسعونها. فهم هذه البنية ضروري قبل تعديل أي مكون.

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

يعتمد المكدس الافتراضي في Compose على مسار Python API ومعالجة الأحداث في بايثون. فعّل --profile rust-core فقط عندما تحتاج إلى المسار السريع الاختياري للـ ingest عالي الإنتاجية أو لأحمال عمل التوثيق والتحقق السريع.

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

متى تستخدم هذه الصفحة

استخدم هذه الصفحة قبل أن تقوم بـ:

  • إضافة وكلاء أو أدوات أو أحداث أو تكاملات تخزين جديدة
  • تغيير توجيه الرسائل أو تنفيذ المهام أو سلوك API
  • التخطيط لاختبارات الأداء أو أعمال التقوية للإنتاج

المتطلبات المعرفية المسبقة

الخلفية الموصى بها قبل تعديل البنية:

  • إلمام ببرمجة Python غير المتزامنة مع asyncio وFastAPI وSQLAlchemy
  • فهم أساسي لمجموعات المستهلكين في Redis Streams
  • إلمام بشبكات الحاويات في Compose وأسماء الخدمات
  • معرفة عملية بأساسيات OpenTelemetry وPrometheus

البنية عالية المستوى

في النشر الافتراضي، يكون المسار الفعّال لاستيعاب أحداث الحافة هو MQTT_S --> PY_EDGE --> REDIS_S. تظهر عقدة Rust فقط عندما يتم تمكين --profile rust-core.

هيكل المشروع

AuroraSOC/
├── aurorasoc/ # الواجهة الخلفية الرئيسية ببايثون
│ ├── agents/ # 13 وكيلًا متخصصًا + المنسق + prompts
│ ├── api/ # تطبيق FastAPI
│ ├── config/ # إعدادات Pydantic للأنظمة الفرعية
│ ├── core/ # المصادقة، قاعدة البيانات، التسجيل، التتبع
│ ├── engine/ # محرك SOAR playbooks
│ ├── events/ # Redis Streams وNATS وMQTT consumers
│ ├── workers/ # عمال Redis stream لتنفيذ مهام الوكلاء
│ ├── memory/ # نظام الذاكرة ثلاثي الطبقات
│ ├── models/ # Pydantic domain models + enums
│ ├── services/ # جدولة الخلفية
│ ├── tools/ # أكثر من 50 أداة MCP
│ └── workflows/ # BeeAI AgentWorkflows
├── rust_core/ # المسار السريع الاختياري بلغة Rust
│ └── src/ # التطبيع وsecurity middleware والناشرون
├── dashboard/ # الواجهة الأمامية Next.js 15
│ └── src/ # مكونات React وZustand وعميل API
├── firmware/ # ثلاث منصات firmware
│ ├── esp32s3/ # Zephyr RTOS (C)
│ ├── nrf52840/ # Embassy-rs (Rust)
│ └── stm32/ # Ada SPARK (Ada)
├── infrastructure/ # Docker والمراقبة وإعدادات الوسطاء
├── tests/ # حزمة pytest
├── alembic/ # ترحيلات قاعدة البيانات
└── docs/ # موقع Docusaurus

تفاعلات المكونات

مسار الطلب: التحقيق في الإنذار

تدفق بيانات التشغيل في مسار العامل

يكمل هذا التدفق المسار المرتبط بـ API أعلاه ويركز على سلوك العامل عند الارتباط والربط بين النتائج.

مبادئ التصميم

1. التدهور المتدرج

سلوك التدهور هنا مقصود ويعتمد على وضع التشغيل:

  • تعطل PostgreSQL في وضع dummy -> يمكن لبعض واجهات القراءة المختارة أن تعرض بيانات showcase داخل الذاكرة
  • تعطل PostgreSQL في dry_run أو real -> تفشل القراءات المعتمدة على قاعدة البيانات بوضوح بدلاً من الاستبدال الصامت ببيانات عرض
  • تعطل Redis -> تتراجع بعض آليات الحماية التشغيلية إلى بدائل داخل الذاكرة عندما يكون ذلك مطبقًا صراحةً
  • تعطل pgvector -> تتراجع ذاكرة الوكيل إلى الذاكرة العاملة فقط
  • تعطل وكيل -> تمنع circuit breakers والمهلات الفشل المتسلسل

2. التكوين قبل تعديل الشفرة

كل السلوكيات قابلة للضبط عبر متغيرات البيئة بقيم افتراضية مناسبة. لا تحتاج إلى تعديل الشفرة من أجل:

  • تبديل مزود LLM
  • تغيير المنافذ
  • تغيير سلاسل الاتصال
  • تفعيل أو تعطيل الخصائص
  • تعديل حدود المعدل

3. فصل المسؤوليات

لكل وحدة مسؤولية واحدة:

  • agents/ إنشاء الوكلاء وتكوينهم
  • tools/ تكامل الأنظمة الخارجية
  • events/ نقل الرسائل
  • memory/ حفظ المعرفة
  • engine/ تنفيذ playbooks
  • core/ الاهتمامات المشتركة مثل auth وlogging وtracing

4. Event Sourcing Lite

رغم أن AuroraSOC ليس نظامًا قائمًا بالكامل على event sourcing، فإنه يسجل تغيرات الحالة في Redis Streams بما يوفر:

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

مصفوفة الفشل والاسترداد

وضع الفشلإشارة الاكتشافالسلوك الفوريإستراتيجية الاسترداد
تعطل نقطة A2Aprobe عند البدء + خطأ dispatchبدء متدهور مع circuit breakerاستعادة الخدمة وإعادة فتح breaker بنجاح
تعطل PostgreSQLفشل health checks أو الاستعلاماتAPI يعيد استجابات متدهورة لبعض الواجهاتاستعادة DB وإعادة المحاولات اللازمة
ازدياد تأخر Redis streamsمؤشرات lag وretry وdead-letterازدياد زمن التحقيقزيادة عدد العمال وفحص المعالجات البطيئة
عدم تطابق correlationارتفاع aurora_agent_results_unmatched_totalقد تنتهي futures بمهلةالتحقق من correlation IDs وبنية payload
تعارض منفذ metricsتحذير عند بدء العاملالعامل يكمل من دون منفذ metrics محليتغيير AGENT_TASK_WORKER_METRICS_PORT وإعادة التشغيل

اعتبارات الأداء

المسار الحساس للزمن

أكثر المسارات حساسية للزمن هو:

  1. نشر المهمة من API
  2. استهلاك العامل للمهمة وتوزيعها
  3. نشر النتيجة وربطها
  4. استجابة API أو بث WebSocket

المؤشرات التي يجب مراقبتها:

  • aurora_agent_task_worker_task_duration_ms
  • aurora_agent_result_correlation_latency_ms
  • aurora_agent_result_futures_pending

مفاتيح تحسين الإنتاجية

المفتاحالموقعالتأثير
REDIS_BATCH_SIZEالعامل والمستهلكونإنتاجية أعلى مع احتمال زيادة التقطع
REDIS_BLOCK_MSمستهلكو الـ streamsتقليل overhead مع تأثير على سرعة الاستجابة
عدد نسخ العاملالنشر أو composeموازاة أعلى لمعالجة المهام
مهلات A2Aطبقة dispatchتمنع التعليق الطويل أثناء الأعطال الجزئية

صفحات ذات صلة

مصفوفة قرارات مجموعة التكنولوجيا

المكونالتكنولوجياسبب الاختيارالبدائل المدروسة
إطار AIBeeAIدعم أصلي لـ A2A وMCPLangChain, CrewAI, AutoGen
APIFastAPIغير متزامن وآمن نوعيًا ويدعم OpenAPIDjango, Flask, Express
ORMSQLAlchemy 2.0ناضج وغير متزامن وآمن نوعيًاTortoise ORM, Prisma
ناقل الأحداثRedis Streamsزمن انتقال منخفض ومجموعات مستهلكينKafka, RabbitMQ
الاتحادNATS JetStreamخفيف الوزن مع استمراريةKafka, Pulsar
نقل IoTMQTT v5معيار صناعي ويدعم QoSAMQP, CoAP
البحث المتجهيpgvectorبساطة قاعدة واحدة وفهارس HNSWQdrant, Pinecone, Weaviate, Milvus
المحرك الأساسيRust (اختياري)مسار سريع للتطبيع والتوثيقGo, C++
الواجهة الأماميةNext.js 15SSR وReact وTurbopackNuxt, SvelteKit
البرامج الثابتةC/Rust/Adaمزايا خاصة بكل منصةMicroPython, Arduino
قاعدة البياناتPostgreSQL 16JSONB واعتمادية وتوسعاتMySQL, MongoDB
التتبعOpenTelemetryمعيار محايد عن المزودJaeger, Zipkin

خريطة المنافذ

المنفذالخدمةالبروتوكول
8000FastAPIHTTP/WS
8080Rust Core Engine (ملف اختياري)HTTP
3000Next.js DashboardHTTP
5432PostgreSQL + pgvectorTCP
6379RedisTCP
4222NATSTCP
1883MQTTTCP
4317OTLP gRPCgRPC
9000-9016A2A AgentsHTTP
9090PrometheusHTTP
3001GrafanaHTTP