عن المشروع

هذا مركز بروتوكول (Hub) للدردشة الجماعية تم تنفيذه وفقاً لـ «معيار بروتوكول توسعة AG-UI v1.0»، ومكتوب باستخدام ASP.NET Core Minimal API في بيئة C# / .NET 10. يقوم بتحويل «الدردشة الجماعية» إلى طبقة بروتوكول يمكن للتطبيقات الخارجية الوصول إليها، حيث تتبع دورة حياة المجموعات والأعضاء، وتوزيع الرسائل، والاشتراكات، والتدفقات الآنية مجموعة موحدة من الأحداث وأكواد الخطأ، بينما يشارك وكلاء الذكاء الاصطناعي (AI Agents) كأعضاء في المجموعة. قدرات البروتوكول - دورة حياة المجموعة: الإنشاء، التحديث، والحل، بما يقابل GROUP_CREATED / GROUP_UPDATED / GROUP_DISBANDED. - إدارة الأعضاء: الانضمام، الإزالة، المغادرة الطوعية، وتغيير الأدوار والبيانات (GROUP_MEMBER_*). - توزيع الرسائل: يتم بث رسائل المستخدمين عبر ثلاثية TEXT_MESSAGE_START/CONTENT/END، مع توفير ثلاثة نطاقات للرؤية (الكل، المذكورون، الخاص)، ودعم سحب الرسائل، إشعارات القراءة، وحالة «جاري الكتابة». - آلية الاشتراك: GROUP_SUBSCRIBE / GROUP_UNSUBSCRIBE / GROUP_SUBSCRIBE_ACK / GROUP_STATE_SNAPSHOT. - النقل المزدوج: اتصال WebSocket كامل الازدواج (/ws) وتدفق SSE أحادي الاتجاه (/sse) مع ميزة الحفاظ على الاتصال (Heartbeat)؛ ويمكن لـ SSE الاشتراك وإلغاء الاشتراك ديناميكياً عبر واجهات HTTP. - قواعد تفعيل الوكيل (القسم 6 من البروتوكول): التفعيل عبر الإشارة (Mention)، الاستماع الكامل، تفعيل الكلمات المفتاحية، والتفعيل السياقي (يقرر النموذج التحدث بناءً على السياق). - تغطية واجهة HTTP الصاعدة: تشمل إنشاء المجموعات، اكتشاف/دخول مركز معرفة خدمة العملاء، التوليد التلقائي لأسماء المجموعات، إضافة/حذف الأعضاء، إرسال الرسائل، رفع وتنزيل المرفقات، السحب، القراءة، اتخاذ القرار بالتفاعل البشري، واللقطات وقوائم الأعضاء؛ مع إرجاع موحد لـ code + message، وربط رموز الحالة بـ 403/404/409/400. تقوم واجهات الكتابة بتغطية حقول الهوية في جسم الطلب بناءً على الرمز المميز (Token)، بينما تتحقق واجهات القراءة من كون المتصل عضواً في المجموعة. الوكلاء والذاكرة - تعتمد AguiGroupChat.Agents على Microsoft Agent Framework لتنفيذ IAgentGateway: يتوفر مزود mock جاهز للاستخدام، أو يمكن تكوين نقاط نهاية متوافقة مع OpenAI (مثل Ollama / vLLM / Azure OpenAI / DeepSeek). عند التفعيل، يتم ضخ أحداث نصية انسيابية، ويتم توزيع استدعاءات الدوال عبر TOOL_CALL_START. - التفاعل البشري (HITL): يمكن تمييز الأدوات بـ ApprovalRequiredAIFunction لتتطلب موافقة؛ حيث يتوقف تشغيل النموذج عند الاستدعاء، ويتم بث بطاقة تفاعل AGENT_INTERACTION_REQUEST في الدردشة، ولا يمكن إلا للمُفعّل الموافقة أو الرفض، وبعد القرار يتم استئناف الجلسة. - ذاكرة RAG الدلالية: يقوم MemoryContextProvider بحقن سياق الاسترجاع، وتُخزن المتجهات في pgvector، ويمكن أن تمر الـ embedding عبر نقاط نهاية HTTP أو نموذج محلي LLamaSharp (مثل bge-m3)؛ تدعم قاعدة المعرفة تقسيم المستندات واسترجاعها، مع خيارات قابلة للتعديل لنطاق الذاكرة، TopK، وعتبة التشابه. - أنواع محاكاة الذاكرة البشرية: يمكن تكوين كل موظف رقمي بخمسة إعدادات مسبقة للذاكرة وأنماط نبرة الصوت، وفي حال عدم التكوين يتم اتباع الإعدادات العالمية للمنصة لضمان التوافق. - مجموعة الأدوات المدمجة تشمل: الحاسبة، تحويل الوحدات، استرجاع ذاكرة المجموعة، وقراءة المرفقات، بينما تكون أدوات web_search / read_url مغلقة افتراضياً. - فهم الصور: يتم توجيه الردود التي تحتوي على مرفقات صور إلى نموذج بصري، وتُمرر الصور كمحتوى متعدد الوسائط بتنسيق base64. - جسر وضع التفكير: تمر محتويات REASONING_MESSAGE_CONTENT من الخدمات الخارجية عبر قناة مستقلة، لتقوم الواجهة الأمامية برسم كتل تفكير قابلة للطي. التطبيقات والميزات الموسعة - إدارة المستخدمين: التسجيل، تسجيل الدخول/الخروج، تغيير كلمة المرور، وصيانة البيانات، مع استخدام PBKDF2 لتشفير كلمات المرور ورموز الجلسات، ودعم مصادقة الرموز في WS/SSE؛ وتتضمن واجهة الدخول معالجة لمنع تعداد أسماء المستخدمين وتحديد معدل الفشل. - نظام RBAC على مستوى المنصة: أربعة مستويات (SuperAdmin / Admin / Operator / User)، يمكن تفعيلها عبر قائمة تكوين أو منحها من قبل المسؤول الخارق؛ بالإضافة إلى مجموعات المستخدمين والتفويض حسب المجموعة للتحكم في رؤية الموظفين الرقميين والمهارات. - مكتبة المهارات: تنقسم إلى أربعة أنواع (prompt / shell / http / dotnet)، ولا يمكن إلا لمسؤول النظام إضافة أو تعديل المهارات ذات القدرة التنفيذية؛ وتدعم توليد تعريفات المهارات وتشغيلها التجريبي باستخدام اللغة الطبيعية. - تنسيق المؤسسة بنقرة واحدة: إدخال متطلبات بجملة واحدة لتوليد خطة وظائف انسيابية عبر SSE، ومعاينة الهيكل التنظيمي والمهارات وعلاقات التعيين قبل الحفظ، مع إمكانية إنشاء المجموعات تزامناً مع ذلك. - الدردشة الفردية ومركز معرفة خدمة العملاء: إمكانية إنشاء دردشات ثنائية خاصة للموظفين الرقميين؛ وفي مركز معرفة خدمة العملاء، يدخل المستخدمون العاديون كمشاركين مع عزل الجلسات عن بعضها. - بحث عالمي يشمل الرسائل، الذاكرة الدلالية، واسترجاع قاعدة المعرفة، مع تصفية النتائج حسب صلاحيات الرؤية. - قدرات الامتثال للمؤسسات تشمل: وكيل الروابط، تصدير/استيراد البيانات، تكوين النماذج في وقت التشغيل، سجلات التدقيق، وإلغاء الحسابات. النشر وشكل المشروع - يوفر أربعة طرق للتشغيل: عرض ويب (Web Demo)، مركز بروتوكول فقط (Protocol Hub)، سطح مكتب ويندوز (WPF + WebView2)، وسطح مكتب عابر للمنصات (Avalonia)؛ وتدعم نسخة سطح المكتب تشغيل مثيلات متعددة تشترك في نفس عملية الخلفية. - خيارات الاستمرارية: لقطات ملف JSON واحد أو قواعد بيانات postgres / mysql / sqlite؛ ويمكن تشغيل postgres(pgvector) + Ollama مدمج + Web بنقرة واحدة عبر docker compose، مع تفعيل الذاكرة الدلالية افتراضياً. - يتضمن SDK للوصول الخارجي (AguiClient + AguiRealtimeClient، يدعم net8.0/net10.0)، عملاء تجريبيين، اختبارات وحدة واختبارات شاملة (E2E)، وسكريبتات أتمتة المتصفح باستخدام Playwright.