by labsai
Multi-agent orchestration middleware that coordinates between users, AI agents (LLMs), and business systems. It provides intelligent routing, conversation management, and API orchestration for building sophisticated AI-powered applications.
# Add to your Claude Code skills
git clone https://github.com/labsai/EDDI
E.D.D.I (Enhanced Dialog Driven Interface) is a multi-agent orchestration middleware that coordinates between users, AI agents (LLMs), and business systems. It provides intelligent routing, conversation management, and API orchestration for building sophisticated AI-powered applications.
What EDDI Does:
Developed in Java using Quarkus, it is lean, RESTful, scalable, and cloud-native. It comes as Docker container and can be orchestrated with Kubernetes or Openshift. The Docker image has been certified by IBM/Red Hat.
Latest stable version: 5.6.0
License: Apache License 2.0
Project website: here
Documentation: here
EDDI Dashboard:

EDDI Chat:

EDDI Manager:

E.D.D.I is a high performance middleware orchestration service for conversational AI. Unlike standalone chatbots or LLMs, EDDI acts as an intelligent layer between your application and backend AI services (OpenAI, Claude, Gemini, etc.), providing sophisticated conversation management, configurable behavior rules, and API orchestration.
Built with Java and Quarkus, EDDI is designed for cloud-native environments (Docker, Kubernetes, OpenShift), offering fast startup times, low memory footprint, and horizontal scalability. It manages conversations through a unique Lifecycle Pipeline architecture, where bot behavior is defined through composable, version-controlled JSON configurations rather than hard-coded logic.
Key architectural features:
IConversationMemoryNotable features include:
EDDI includes built-in tools that AI agents can invoke autonomously during conversations:
| Tool | Description | |------|-------------| | Calculator | Safe expression evaluator (no code injection; recursive-descent parser) | | DateTime | Get current date, time, and timezone conversions | | Web Search | Search the web via DuckDuckGo or Google Custom Search | | Weather | Get weather information (requires OpenWeatherMap API key) | | Data Formatter | Format and convert data (JSON, CSV, XML) | | Web Scraper | Extract content from web pages (SSRF-protected) | | Text Summarizer | Summarize long text content | | PDF Reader | Extract text from PDF URLs (SSRF-protected, http/https only) | | HTTP Calls | Execute pre-configured API calls (see below) |
In addition to built-in tools, EDDI allows you to expose your own HTTP call configurations as tools for AI agents. This provides a crucial security layer: instead of allowing agents to make arbitrary HTTP requests, they can only invoke APIs that have been explicitly configured and whitelisted in your httpcalls configuration.
Benefits:
See HTTP Calls for configuration details.
All tool invocations (both built-in and HTTP call tools) are routed through a unified Tool Execution Service that provides:
These controls are driven by your langchain.json configuration:
{
"enableRateLimiting": true,
"defaultRateLimit": 100,
"toolRateLimits": { "websearch": 30 },
"enableToolCaching": true,
"enableCostTracking": true,
"maxBudgetPerConversation": 5.0
}
See the LangChain Tools Guide and Security for details.
Technical specifications:
./mvnw compile quarkus:dev
Note: If running locally inside an IDE you need lombok to be enabled (otherwise you will get compile errors complaining about missing constructors). Either download as plugin (e.g. inside Intellij) or follow instructions here https://projectlombok.org/
./mvnw clean package '-Dquarkus.container-image.build=true'
docker pull labsai/eddi
https://hub.docker.com/r/labsai/eddi
For production, launch standalone mongodb and then start an eddi instance as defined in the docker-compose file
docker-compose up
For development, use
docker-compose -f docker-compose.yml -f docker-compose.local.yml up
For integration testing run
./integration-tests.sh
or
docker-compose -f docker-compose.yml -f docker-compose.local.yml -f docker-compose.testing.yml -p ci up -d
<eddi-instance>/q/metrics
Liveness endpoint:
<eddi-instance>/q/health/live
Readiness endpoint:
<eddi-instance>/q/health/ready
No comments yet. Be the first to share your thoughts!