Alles was Sie brauchen, um KI zu orchestrieren
EDDI bietet eine vollständige, produktionsreife Plattform zum Erstellen, Deployen und Verwalten von KI-Agents, ohne Boilerplate zu schreiben.

Wie ein Konversations-Turn abläuft
Wählen Sie eine Stufe, um zu sehen, was sie tut, wie sie konfiguriert ist und was sie schreibt.
Input
Was hier passiert
Eine Nachricht kommt aus dem Chat, Slack, der API oder einem MCP-Client an. Der Rohtext wird der erste Eintrag eines neuen Schritts in der Conversation memory. Es lief noch kein Task, daher zeigt diese Stufe den Memory-Schritt statt eines Audit-Eintrags.
Beispielwerte zur Veranschaulichung
{
"key": "input",
"value": "What is the weather?"
}Parser
Was hier passiert
Der Parser normalisiert den Text und schlägt ihn in den Wörterbüchern des Agents nach. Aus Wörtern und Phrasen werden semantische Ausdrücke wie trigger(current_weather). Das ist ein Nachschlagen, kein Modellaufruf: Derselbe Text ergibt immer dieselben Ausdrücke.
Jeder Pipeline-Task schreibt einen Eintrag: HMAC-signiert, nur anhängend, mit Sequenzprüfung.
Beispielwerte zur Veranschaulichung
{
"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
Was hier passiert
Behavior Rules sind WENN-DANN-Bedingungen über den Ausdrücken und der Conversation memory. Jede passende Regel löst Aktionen aus. Das Routing ist Konfiguration statt Code, daher nimmt dieselbe Eingabe jedes Mal denselben Weg.
Jeder Pipeline-Task schreibt einen Eintrag: HMAC-signiert, nur anhängend, mit Sequenzprüfung.
Beispielwerte zur Veranschaulichung
{
"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
Was hier passiert
Tasks reagieren auf Aktionen: ein LLM-Aufruf, ein HTTP-Aufruf, ein MCP-Tool oder eine Wissensdatenbank-Abfrage. Jeder Task schreibt einen signierten Audit-Eintrag mit dem, was er gelesen und erzeugt hat, samt Modell- und Tool-Details.
Jeder Pipeline-Task schreibt einen Eintrag: HMAC-signiert, nur anhängend, mit Sequenzprüfung.
Beispielwerte zur Veranschaulichung
{
"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
Was hier passiert
Output-Vorlagen machen aus den ausgelösten Aktionen die Antwort: Text und Quick Replies. Die Antwort wird im Memory gespeichert und an den Kanal zurückgegeben, aus dem die Nachricht kam.
Beispielwerte zur Veranschaulichung
{
"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
Was hier passiert
Jeder Tool-Aufruf überquert unabhängig von seiner Quelle dieselbe Grenze. Aufrufe, die zu einem toolApprovals-Muster passen, pausieren, bis ein Mensch entscheidet. Die Entscheidung landet als hitl.approval-Eintrag im Ledger. Zugangsdaten kommen als ${vault:keyName}-Referenzen aus dem Vault.
Jeder Pipeline-Task schreibt einen Eintrag: HMAC-signiert, nur anhängend, mit Sequenzprüfung.
Beispielwerte zur Veranschaulichung
{
"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
Was hier passiert
Die Conversation memory hält jeden Schritt (input, expressions, actions, output) und Properties mit Geltungsbereich Schritt, Gespräch oder Nutzer (longTerm). Der Gesprächsstatus (READY, IN_PROGRESS, ENDED, AWAITING_HUMAN oder ERROR) wird mitgespeichert.
Beispielwerte zur Veranschaulichung
{
"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"
}
}Kernplattform
Die wesentlichen Fähigkeiten, die EDDI zu einer vollständigen KI-Orchestrierungsplattform machen.
🖥️ EDDI Manager
Eine produktionsreife React-UI zum Erstellen, Deployen und Überwachen von Agents, mit 11-Locale-i18n, Live-Chat-Debugging und Audit-Dashboards.
⚙️ Config-as-Code
Agent-Logik ist JSON-Konfiguration, kein kompilierter Code. Prompt-Engineers iterieren sofort, kein Redeployment nötig.
🔌 MCP Server (84 Tools)
Vollständige KI-native Steuerung via Model Context Protocol. Claude Desktop, Cursor und benutzerdefinierte Clients verwalten Agents programmgesteuert.
🔐 Security-First
Kein eval(), Vault-Integration, Path-Traversal-Schutz, OIDC/Keycloak, Workspaces pro Benutzer, kryptografische Audit-Trails.
✋ Human-in-the-Loop
Turn pausieren, einzelne Tool-Aufrufe freigeben lassen oder Diskussionsphasen abzeichnen. Freigabe-Workflows mit Timeout-Richtlinien, Slack-Karten und neustartsicherem Zustand.
🚀 Performance
Enterprise-Runtime mit Millionen leichtgewichtiger Threads für I/O-gebundene LLM-Workloads.
🤖 Multi-Agent
Intent-basierte Discovery, verwaltete Konversationen und Gruppenzusammenarbeit mit Abstimmungen, gemeinsamen Artefakten und Menschen als Mitgliedern.
KI-Fähigkeiten
Erweiterte KI-Funktionen, die EDDI-Agenten intelligenter, schneller und kosteneffizienter machen.
🧠 Gedächtnis & Kontext
Persistentes Gedächtnis, Dream-Konsolidierung, rollende Zusammenfassungen und token-bewusstes Fensterung. Agenten, die sich erinnern.
📚 Wissen & RAG
Crawlen Sie eine Website oder laden Sie PDF-, Word-, Excel- und PowerPoint-Dateien in eine Wissensdatenbank, die nach Zeitplan aktualisiert wird. 8 Embedding-Provider, 6 Vektorspeicher. Enterprise-Wissensabruf sofort einsatzbereit.
📈 Modell-Kaskadierung
Kostenoptimiertes Multi-Modell-Routing mit Konfidenzstrategien. Veröffentlichte Einsätze dieses Musters berichten 31 bis 58% niedrigere Inferenzkosten bei gleichbleibender Qualität (Belege).
🧭 19 LLM-Anbieter
Claude, GPT, Gemini, Grok, DeepSeek, Kimi, Qwen, GLM, Mistral, Llama und mehr, gehostet oder lokal. Der Modellkatalog zeigt, wofür sich jedes Modell eignet und wie Sie es betreiben.
⏰ Zeitplanung & Heartbeats
Cron-Trigger, Heartbeat-Aufweckungen, Dream-Zyklen. Proaktive Agenten, die eigenständig handeln.
Integrierte Agent-Tools
EDDI wird mit 12 sofort einsatzbereiten Tools ausgeliefert, die Agents während Gesprächen aufrufen können, ohne externe Einrichtung.
Config & Portabilität
Agent-Konfigurationen sind portabel, kombinierbar und sync-bereit, verschieben Sie Agents zwischen Umgebungen ohne Reibungsverluste.
📤 Import / Export
Agents als ZIP-Dateien portierbar mit automatischer Secret-Bereinigung. Import führt zusammen oder überschreibt, keine Versionskonflikte.
🔄 Agent Sync
Live-Synchronisierung zwischen Instanzen mit strukturellem Abgleich, Inhaltsdiff und selektiver Ressourcenauswahl.
📝 Prompt Snippets
Wiederverwendbare, versionierte System-Prompt-Bausteine. Referenz als {{snippets.safety_rules}}.
Engineering-Exzellenz
📊 Observability
Jeder Pipeline-Schritt wird mit unveränderlichen Audit-Trails protokolliert, Tokens, Kosten, Timing und Tool-Aufrufe.
🧪 Code-Qualität
20.000+ Tests, grün bei jedem Merge. >90% Instruction- und >80% Branch-Coverage erzwungen. CodeQL-, Checkstyle- und Formatter-Gates im CI.
🧩 AI-Ready
84 MCP-Tools, eine OpenAI-kompatible API, vorhersagbare CRUD-Patterns, selbstdokumentierende APIs. Für Coding-Agents entwickelt.