كل ما تحتاجه لتنسيق الذكاء الاصطناعي
يوفر EDDI منصة كاملة جاهزة للإنتاج لبناء ونشر وإدارة وكلاء الذكاء الاصطناعي، بدون كتابة نمط متكرر.

كيف تسير دورة المحادثة
اختر مرحلة لترى ما تفعله وإعداداتها وما تكتبه.
Input
ما الذي يحدث هنا
تصل رسالة من الدردشة أو Slack أو واجهة API أو عميل MCP. يصبح النص الخام أول إدخال في خطوة جديدة داخل Conversation memory. لم تعمل أي مهمة بعد، لذلك تعرض هذه المرحلة خطوة الذاكرة بدل إدخال التدقيق.
قيم توضيحية للمثال
{
"key": "input",
"value": "What is the weather?"
}Parser
ما الذي يحدث هنا
يطبّع الـ parser النص ويبحث عنه في قواميس الوكيل، فيحوّل الكلمات والعبارات إلى تعبيرات دلالية مثل trigger(current_weather). هذا بحث وليس استدعاء نموذج، فالنص نفسه يعطي دائمًا التعبيرات نفسها.
تكتب كل مهمة في المسار إدخالًا واحدًا: موقّعًا بـ HMAC، للإضافة فقط، مع فحص التسلسل.
قيم توضيحية للمثال
{
"words": [
{
"word": "weather",
"expressions": "trigger(current_weather)",
"frequency": 0
}
],
"phrases": [
{
"phrase": "what is the weather",
"expressions": "trigger(current_weather)"
}
]
}{
"id": "0b5e9a0c-6f3d-4b1e-9d57-2c1f8a7e4d10",
"conversationId": "6650f1c2a7b94e0012ab34cd",
"agentId": "support-agent",
"agentVersion": 1,
"userId": "user-4711",
"environment": "production",
"stepIndex": 0,
"taskId": "ai.labs.parser",
"taskType": "expressions",
"taskIndex": 0,
"durationMs": 3,
"input": {
"input": "What is the weather?"
},
"output": {
"expressions": [
"trigger(current_weather)"
]
},
"actions": [],
"cost": 0,
"timestamp": "2026-10-14T09:12:41.208Z",
"hmac": "v4:a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468",
"agentSignature": "MEUCIQDk3x…9fQ==",
"sequence": 0
}Behavior Rules
ما الذي يحدث هنا
Behavior Rules شروط إذا-فإن على التعبيرات وConversation memory. كل قاعدة مطابقة تُصدر إجراءات. التوجيه إعداد وليس كودًا، لذا يسلك المدخل نفسه المسار نفسه في كل مرة.
تكتب كل مهمة في المسار إدخالًا واحدًا: موقّعًا بـ HMAC، للإضافة فقط، مع فحص التسلسل.
قيم توضيحية للمثال
{
"behaviorGroups": [
{
"name": "",
"behaviorRules": [
{
"name": "Ask for City",
"actions": [
"ask_for_city"
],
"conditions": [
{
"type": "inputmatcher",
"configs": {
"expressions": "trigger(current_weather)"
},
"conditions": []
}
]
}
]
}
]
}{
"id": "0b5e9a0c-6f3d-4b1e-9d57-2c1f8a7e4d10",
"conversationId": "6650f1c2a7b94e0012ab34cd",
"agentId": "support-agent",
"agentVersion": 1,
"userId": "user-4711",
"environment": "production",
"stepIndex": 0,
"taskId": "ai.labs.behavior",
"taskType": "behavior_rules",
"taskIndex": 1,
"durationMs": 1,
"input": {
"expressions": [
"trigger(current_weather)"
]
},
"output": {
"behavior_rules:success": [
"Ask for City"
]
},
"actions": [
"ask_for_city"
],
"cost": 0,
"timestamp": "2026-10-14T09:12:41.208Z",
"hmac": "v4:a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468",
"agentSignature": "MEUCIQDk3x…9fQ==",
"sequence": 1
}Tasks
ما الذي يحدث هنا
تستمع المهام (Tasks) إلى الإجراءات: استدعاء LLM أو استدعاء HTTP أو أداة MCP أو بحث في قاعدة معرفة. تكتب كل مهمة إدخال تدقيق موقّعًا بما قرأته وما أنتجته مع تفاصيل النموذج والأدوات.
تكتب كل مهمة في المسار إدخالًا واحدًا: موقّعًا بـ HMAC، للإضافة فقط، مع فحص التسلسل.
قيم توضيحية للمثال
{
"tasks": [
{
"actions": [
"send_message"
],
"id": "simpleChat",
"type": "anthropic",
"description": "Answers weather questions",
"parameters": {
"apiKey": "${vault:anthropic-key}",
"modelName": "claude-sonnet-5-5",
"systemMessage": "You are a helpful assistant",
"addToOutput": "true"
}
}
]
}{
"id": "0b5e9a0c-6f3d-4b1e-9d57-2c1f8a7e4d10",
"conversationId": "6650f1c2a7b94e0012ab34cd",
"agentId": "support-agent",
"agentVersion": 1,
"userId": "user-4711",
"environment": "production",
"stepIndex": 0,
"taskId": "ai.labs.llm",
"taskType": "langchain",
"taskIndex": 2,
"durationMs": 1840,
"input": {
"input": "What is the weather in Vienna?",
"actions": [
"send_message"
]
},
"output": {
"text": "Vienna: 14 °C, light rain."
},
"llmDetail": {
"modelName": "claude-sonnet-5-5",
"inputTokens": 412,
"outputTokens": 18
},
"toolCalls": {
"name": "get_weather",
"args": {
"city": "Vienna"
},
"result": "14 °C, light rain"
},
"actions": [
"send_message"
],
"cost": 0.0016,
"timestamp": "2026-10-14T09:12:41.208Z",
"hmac": "v4:a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468",
"agentSignature": "MEUCIQDk3x…9fQ==",
"sequence": 2
}Output
ما الذي يحدث هنا
تحوّل قوالب Output الإجراءات الصادرة إلى الرد: نص وردود سريعة. يُحفظ الرد في الذاكرة ويُعاد إلى القناة التي جاءت منها الرسالة.
قيم توضيحية للمثال
{
"outputSet": [
{
"action": "ask_for_city",
"timesOccurred": 0,
"outputs": [
{
"valueAlternatives": [
{
"type": "text",
"text": "Which city would you like to know the weather of?"
}
]
}
],
"quickReplies": []
}
]
}{
"key": "output",
"value": [
"Which city would you like to know the weather of?"
]
}Tool boundary
ما الذي يحدث هنا
يعبر كل استدعاء أداة، مهما كان مصدره، الحدّ نفسه. الاستدعاءات المطابقة لنمط toolApprovals تتوقف حتى يقرر إنسان، ويُكتب القرار في السجل كإدخال hitl.approval. تأتي بيانات الاعتماد من الـ vault كمراجع ${vault:keyName}.
تكتب كل مهمة في المسار إدخالًا واحدًا: موقّعًا بـ HMAC، للإضافة فقط، مع فحص التسلسل.
قيم توضيحية للمثال
{
"hitlConfig": {
"toolApprovals": {
"requireApproval": [
"mcp:*",
"delete_*",
"transfer_funds"
],
"exempt": [
"mcp:read_*"
],
"approvalTimeout": "PT30M",
"timeoutPolicy": "AUTO_REJECT",
"pauseReason": "Approval required for {toolNames}"
}
}
}{
"id": "0b5e9a0c-6f3d-4b1e-9d57-2c1f8a7e4d10",
"conversationId": "6650f1c2a7b94e0012ab34cd",
"agentId": "support-agent",
"agentVersion": 1,
"userId": "user-4711",
"environment": "production",
"stepIndex": -1,
"taskId": "hitl.approval",
"taskType": "hitl",
"taskIndex": -1,
"durationMs": 0,
"input": {},
"output": {
"verdict": "APPROVED",
"decidedBy": "slack:U04EXAMPLE",
"automated": false,
"pauseType": "TOOL_CALL",
"toolDecisions": [
{
"callId": "call_01",
"toolName": "transfer_funds",
"verdict": "APPROVED",
"amended": false,
"argsDigest": "sha256:9c1d…e407"
}
]
},
"actions": [],
"cost": 0,
"timestamp": "2026-10-14T09:12:41.208Z",
"hmac": "v4:a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468a3f1c09e5b7d2468",
"agentSignature": "MEUCIQDk3x…9fQ==",
"sequence": 3
}Conversation memory
ما الذي يحدث هنا
تحفظ Conversation memory كل خطوة (input وexpressions وactions وoutput) وخصائص نطاقها الخطوة أو المحادثة أو المستخدم (longTerm). وتُحفظ معها حالة المحادثة (READY أو IN_PROGRESS أو ENDED أو AWAITING_HUMAN أو ERROR).
قيم توضيحية للمثال
{
"conversationState": "READY",
"conversationSteps": [
{
"data": [
{
"key": "input",
"value": "What is the weather?"
},
{
"key": "expressions",
"value": [
"trigger(current_weather)"
]
},
{
"key": "actions",
"value": [
"ask_for_city"
]
},
{
"key": "output",
"value": [
"Which city would you like to know the weather of?"
]
}
]
}
],
"conversationProperties": {
"chosenCity": "Vienna"
}
}المنصة الأساسية
القدرات الأساسية التي تجعل EDDI منصة كاملة لتنسيق الذكاء الاصطناعي.
🖥️ مدير EDDI
واجهة React جاهزة للإنتاج لبناء ونشر ومراقبة الوكلاء بصرياً، مع i18n بـ 11 لغة، تصحيح أخطاء الدردشة المباشرة، ولوحات التدقيق.
⚙️ التكوين-كشفرة
منطق الوكيل هو تكوين JSON، وليس شفرة مجمعة. يكرر مهندسو الموجهات فوراً، بدون حاجة لإعادة التجميع.
🔌 خادم MCP (89 أداة)
تحكم أصلي كامل بالذكاء الاصطناعي عبر بروتوكول سياق النموذج. Claude Desktop و Cursor والعملاء المخصصون يديرون الوكلاء برمجياً.
🔐 الأمان أولاً
بدون eval()، تكامل الخزنة، حماية من اجتياز المسار، OIDC/Keycloak، مساحات عمل لكل مستخدم، مسارات تدقيق مشفرة.
✋ مشاركة بشرية في الحلقة
أوقف دورة مؤقتاً، أو اضبط بوابة على استدعاء أداة، أو اشترط اعتماد مرحلة. تدفقات موافقة مع سياسات مهلة وبطاقات Slack وحالة تصمد أمام الأعطال.
🚀 الأداء
Java 25 Virtual Threads على Quarkus، ملايين الخيوط الخفيفة لأحمال عمل LLM كثيفة الإدخال/الإخراج.
🤖 متعدد الوكلاء
اكتشاف قائم على النية، محادثات مُدارة، وتعاون جماعي مع التصويت ونواتج العمل المشتركة والبشر كأعضاء.
قدرات الذكاء الاصطناعي
ميزات ذكاء اصطناعي متقدمة تجعل وكلاء EDDI أذكى وأسرع وأكثر كفاءة في التكلفة.
🧠 الذاكرة والسياق
ذاكرة مستمرة، توحيد الأحلام، ملخصات متجددة ونوافذ واعية بالرموز. وكلاء يتذكرون.
📚 المعرفة وRAG
ازحف إلى موقع ويب أو ارفع ملفات PDF وWord وExcel وPowerPoint إلى قاعدة معرفة تُحدَّث وفق جدول زمني. 8 مزودي تضمين، و6 مخازن متجهات. استرجاع معرفة مؤسسي جاهز للاستخدام.
📈 تتابع النماذج
توجيه متعدد النماذج محسّن للتكلفة مع استراتيجيات الثقة. تشير عمليات نشر منشورة لهذا النمط إلى خفض تكلفة الاستدلال بنسبة 31 إلى 58% مع الحفاظ على الجودة (الأدلة).
🧭 19 مزود LLM
Claude وGPT وGemini وGrok وDeepSeek وKimi وQwen وGLM وMistral وLlama وغيرها، مستضافة أو محلية. يوضح كتالوج النماذج نقاط قوة كل نموذج وكيفية تشغيله.
⏰ الجدولة والنبضات
مشغلات مجدولة، إيقاظ بالنبضات، دورات أحلام. وكلاء استباقيون يعملون بشكل مستقل.
أدوات الوكيل المدمجة
يأتي EDDI مع 12 أداة جاهزة للاستخدام يمكن للوكلاء استدعاؤها أثناء المحادثات، بدون إعداد خارجي.
التكوين والقابلية للنقل
تكوينات الوكلاء قابلة للنقل والتركيب والمزامنة، انقل الوكلاء بين البيئات دون أي احتكاك.
📤 Import / Export
الوكلاء قابلون للنقل كملفات ZIP مع تنظيف تلقائي للأسرار. الاستيراد يدمج أو يستبدل، بدون تعارضات إصدارات.
🔄 Agent Sync
مزامنة مباشرة بين الخوادم مع مطابقة هيكلية ومقارنة المحتوى واختيار انتقائي للموارد.
📝 Prompt Snippets
كتل بناء تعليمات نظام قابلة لإعادة الاستخدام ومُدارة بالإصدارات. مرجع عبر {{snippets.safety_rules}}.
التميز الهندسي
📊 المراقبة
كل خطوة في خط الأنابيب مسجلة مع مسارات تدقيق غير قابلة للتغيير: الرموز والتكلفة والتوقيت واستدعاءات الأدوات.
🧪 جودة الشفرة
20,000+ اختبار، ناجحة عند كل دمج. فرض تغطية تعليمات تزيد على 90% وتغطية فروع تزيد على 80%. بوابات CodeQL وCheckstyle والمنسّق في CI.
🧩 جاهز للذكاء الاصطناعي
89 أداة MCP، واجهة API متوافقة مع OpenAI، أنماط CRUD قابلة للتنبؤ، واجهات API ذاتية التوثيق. مصمم لوكلاء البرمجة للعمل معه.