مبني للتوسع
يعمل EDDI على Java 25 مع Quarkus، مستفيداً من Virtual Threads (Project Loom) للتزامن الضخم في عمليات الإدخال/الإخراج. على عكس حلقات أحداث Node.js، توفر Virtual Threads توازياً حقيقياً متعدد الخيوط مع الحد الأدنى من الحمل.
لماذا تهم الخيوط الافتراضية لوكلاء الذكاء الاصطناعي
وكلاء الذكاء الاصطناعي الحديثون مقيدون بشكل أساسي بعمليات الإدخال/الإخراج.
تحل الخيوط الافتراضية في Java هذه المشكلة بأناقة.
أبرز نقاط الأداء
- Virtual Threads: ملايين الخيوط الخفيفة لاستدعاءات LLM المتزامنة
- بيئة تشغيل Quarkus: Java سحابي أصلي مع إعادة تحميل ساخن في وضع التطوير، محسّن للحاويات. يقدم Quarkus إنتاجية أعلى بكثير وبدء تشغيل أسرع من حزم JVM التقليدية، مع بصمة ذاكرة أصغر
- تجمعات اتصال متوافقة مع Loom: تجمع اتصالات Agroal يتجنب اختناقات ThreadLocal التي يمكن أن تؤثر على تجمعات الاتصال التقليدية تحت أحمال الخيوط الافتراضية
- NATS JetStream: توسع أفقي مع بنية مدفوعة بالأحداث
- قاعدة بيانات مزدوجة: MongoDB أو PostgreSQL، تبديل بمتغير بيئة واحد. صورة Docker واحدة لكليهما
- بث SSE: استجابات محادثة فورية وتغذية مناقشات جماعية وبث سجلات مباشر عبر Server-Sent Events
- تثبيت بأمر واحد: معالج تفاعلي ينشر EDDI + قاعدة البيانات + وكيل بداية عبر Docker Compose
- معتمد من Red Hat: شهادة حاوية مع فحوصات تمهيدية آلية في CI/CD
الأداء في السياق
لا توجد بيئة تشغيل تفوز في كل سيناريو. يمكن لـ Node.js أن يتفوق على Java في سيناريوهات توجيه محددة جداً قائمة على الإدخال/الإخراج الخالص، بينما يتصدر Java باستمرار في أحمال العمل التي تتضمن مهام كثيفة المعالجة، وهو بالضبط ما يتطلبه وكلاء الذكاء الاصطناعي. ينفذ الوكلاء الحديثون مزيجاً معقداً من إدخال/إخراج ضخم (استدعاءات LLM API، استعلامات المتجهات) وحوسبة مكثفة (تحويل البيانات، منطق التوجيه، معالجة التضمينات، تقييم الثقة). ملف أحمال العمل المختلطة هذا هو بالضبط حيث تقدم الخيوط الافتراضية على Quarkus أقوى ميزاتها.
بنية EDDI محسّنة عمداً لهذا الواقع: Quarkus مع الخيوط الافتراضية لطبقة تنسيق الوكلاء كثيفة الإدخال/الإخراج، مع تجمعات اتصال متوافقة مع Loom (Agroal) تتجنب مشاكل تنافس ThreadLocal التي تُلاحظ مع مكتبات التجميع التقليدية تحت تزامن عالٍ للخيوط الافتراضية.