Skip to content

labsai/EDDI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,239 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

EDDI Banner Image

E.D.D.I — Multi-Agent Orchestration Middleware for Conversational AI

CI CodeQL Codacy Badge Docker Pulls

E.D.D.I (Enhanced Dialog Driven Interface) is a production-grade 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 — all through configuration, not code.

Built with Java 25 and Quarkus. Ships as a Red Hat-certified Docker image. Deploy on Docker, Kubernetes, or OpenShift.

Latest version: 6.0.0-RC1 · Website · Documentation · License: Apache 2.0


✨ Features at a Glance

🤖 Multi-Agent Orchestration

  • 🔀 Intelligent Routing — Direct conversations to different agents based on context, rules, and intent
  • 🗣️ Group Conversations — Multi-agent debates with 5 built-in styles (Round Table, Peer Review, Devil's Advocate, Delphi, Debate)
  • 🪆 Nested Groups — Compose groups of groups for tournament brackets, red-team vs blue-team, and panel reviews
  • 👥 Managed Conversations — Intent-based auto-routing with one conversation per user per intent
  • 🧙 Agent Father — Meta-agent that creates other agents through conversation (ships out of the box)

🧠 LLM Provider Support (12 Providers)

  • 🟢 OpenAI · Anthropic Claude · Google Gemini · Mistral AI
  • ☁️ Azure OpenAI · Amazon Bedrock · Oracle GenAI · Google Vertex AI
  • 🏠 Ollama · Jlama · Hugging Face — Run models locally or in your own cloud
  • 🔗 OpenAI-compatible endpoints — DeepSeek, Cohere, and any compatible API via baseUrl

🔗 Protocol & Interoperability

  • 🧩 MCP Server (48+ tools) — Full EDDI control from Claude Desktop, IDE plugins, or any MCP client
  • 🧩 MCP Client — Connect agents to external MCP tool servers
  • 🤝 A2A Protocol — Agent-to-Agent peer communication with skill discovery and Agent Cards
  • 📋 OpenAPI-to-Agent — Paste an OpenAPI spec, get a fully deployed API-calling agent

🛠️ Built-In AI Agent Tools

  • 🔍 Web Search — DuckDuckGo or Google Custom Search
  • 🧮 Calculator — Sandboxed math parser (no code injection)
  • 🌐 Web Scraper · 📄 PDF Reader — SSRF-protected content extraction
  • ☁️ Weather · 🕐 DateTime · 📊 Data Formatter · 📝 Text Summarizer
  • 🔌 HTTP Calls as Tools — Expose your own APIs as LLM-callable tools with full security sandboxing

📚 RAG (Retrieval-Augmented Generation)

  • 📦 7 Embedding Providers — OpenAI, Ollama, Azure OpenAI, Mistral, Bedrock, Cohere, Vertex AI
  • 🗄️ 5 Vector Stores — pgvector, In-Memory, MongoDB Atlas, Elasticsearch, Qdrant
  • 🌐 httpCall RAG — Zero-infrastructure RAG via any search API
  • 📥 REST Ingestion API — Async document ingestion with status tracking

💭 Memory & Context

  • 💾 Persistent User Memory — Agents remember facts, preferences, and context across conversations
  • 🪟 Token-Aware Windowing — Intelligent context packing with anchored opening steps
  • 📝 Property Extraction — Config-driven slot-filling for structured data capture
  • 🔄 Conversation State — Full history with undo/redo support

📈 Smart Model Cascading

  • 📉 Cost Optimization — Try cheap/fast models first, escalate to powerful models only when needed
  • 📊 4 Confidence Strategies — Structured output, heuristic, judge model, or none
  • 💰 Per-Conversation Budgets — Automatic cost tracking with budget caps

🔐 Enterprise Security

  • 🏦 Secrets Vault — Envelope encryption (PBKDF2 + AES) for API keys, never plaintext in DB
  • 🛡️ SSRF Protection — URL validation blocks private/internal addresses on all tools
  • 🔒 Sandboxed Evaluation — No eval(), no script engines — safe recursive-descent math parser
  • 🔑 OAuth 2.0 / Keycloak — Authentication, authorization, and tenant isolation
  • 📜 Immutable Audit Ledger — Write-once trail with HMAC integrity for EU AI Act compliance
  • 🚫 No Dynamic Code Execution — Custom logic runs in external MCP servers, outside the EDDI perimeter

⚙️ Configuration-Driven Architecture

  • 📄 JSON Configs, Not Code — Agent behavior defined in versioned JSON documents
  • 🔧 Lifecycle Pipeline — Pluggable task pipeline: Input → Parse → Rules → API/LLM → Output
  • 📦 Composable Agents — Agents assembled from reusable, version-controlled workflows and extensions
  • 🧪 Behavior Rules — IF-THEN logic engine for routing, orchestration, and business logic
  • 📤 Import / Export — Agents are portable as ZIP files with secret scrubbing on export

🚀 Cloud-Native & Observable

  • 🐳 One-Command Install — Interactive wizard sets up EDDI + database + starter agent via Docker
  • ☸️ Kubernetes / OpenShift — Kustomize overlays, Helm charts, HPA, PDB, NetworkPolicy
  • 📊 Prometheus & Grafana — Built-in Micrometer instrumentation at /q/metrics
  • 🩺 Health Checks — Liveness & readiness probes at /q/health/live and /q/health/ready
  • 🔄 NATS JetStream — Async event bus for distributed processing
  • Virtual Threads — Java 25 virtual threads for true concurrency, no GIL
  • 🗃️ DB-Agnostic — Choose MongoDB or PostgreSQL, switch with one env var

🖥️ Manager Dashboard & Chat UI

  • 🎨 React 19 Manager UI — Modern admin dashboard for agent building, testing, deployment, and monitoring
  • 💬 Chat Widget — Embeddable React chat UI with SSE streaming and Keycloak auth
  • 🔍 Audit Trail Viewer — Timeline-based compliance and debugging UI
  • 📋 Logs Panel — Live SSE log streaming + searchable history
  • 🔑 Secrets Manager — Write-only UI for vault entries

🏁 Quick Start

The fastest way to get EDDI running is the one-command installer. It sets up EDDI + your choice of database via Docker Compose, deploys the Agent Father starter agent, and walks you through creating your first AI agent.

Linux / macOS / WSL2:

curl -fsSL https://raw.githubusercontent.com/labsai/EDDI/main/install.sh | bash

Windows (PowerShell):

iwr -useb https://raw.githubusercontent.com/labsai/EDDI/main/install.ps1 | iex

Note: If your Antivirus blocks this command as "malicious content", securely download and run it instead:

Invoke-WebRequest -Uri "https://raw.githubusercontent.com/labsai/EDDI/main/install.ps1" -OutFile "install.ps1"
Unblock-File .\install.ps1
.\install.ps1

Requires Docker. The wizard auto-generates a unique vault encryption key for secret management.

🔧 Installer options
bash install.sh --defaults                 # All defaults, no prompts
bash install.sh --db=postgres --with-auth  # PostgreSQL + Keycloak
bash install.sh --full                     # Everything enabled (DB + auth + monitoring)
bash install.sh --local                    # Build Docker image from local source

The --local flag is for contributors testing pre-release builds:

./mvnw package -DskipTests    # Build the Java app
bash install.sh --local        # Build Docker image + start containers

🔄 Updating

The installer creates an eddi CLI wrapper that makes updating easy:

eddi update

This pulls the latest Docker image from the registry and restarts the containers. It works even when the same tag (e.g. 6.0.0-RC1) was re-published — Docker always checks the remote digest for changes.

eddi command not found? The CLI lives at ~/.eddi/eddi (Linux/macOS) or ~/.eddi/eddi.cmd (Windows). Either restart your terminal so the PATH takes effect, or use the full path:

# Linux / macOS
~/.eddi/eddi update

# Windows (PowerShell)
& "$HOME\.eddi\eddi.cmd" update
Manual update (without the CLI)

If the eddi CLI isn't available, run the equivalent docker commands from your install directory (~/.eddi by default):

cd ~/.eddi
docker compose --env-file .env -f docker-compose.yml pull
docker compose --env-file .env -f docker-compose.yml up -d

Adjust the -f flags to match your setup (e.g. add -f docker-compose.auth.yml if using Keycloak).

🐳 Docker Compose (Manual)

If you prefer manual control over Docker Compose:

# Default (EDDI + MongoDB)
docker compose up

# PostgreSQL instead of MongoDB
EDDI_DATASTORE_TYPE=postgres docker compose -f docker-compose.yml -f docker-compose.postgres.yml up

# With Keycloak authentication
docker compose -f docker-compose.yml -f docker-compose.auth.yml up

# With Prometheus + Grafana monitoring
docker compose -f docker-compose.yml -f docker-compose.monitoring.yml up

# Full stack (all overlays)
docker compose -f docker-compose.yml -f docker-compose.auth.yml \
  -f docker-compose.monitoring.yml -f docker-compose.nats.yml up

Available compose overlays: docker-compose.auth.yml (Keycloak), docker-compose.monitoring.yml (Prometheus+Grafana), docker-compose.nats.yml (NATS JetStream), docker-compose.postgres.yml / docker-compose.postgres-only.yml, docker-compose.local.yml (build from source), docker-compose.testing.yml (integration tests).

docker pull labsai/eddi    # Pull latest from Docker Hub

hub.docker.com/r/labsai/eddi


🧩 Quarkus SDK

Building a Quarkus app that talks to EDDI? Use the quarkus-eddi extension:

<dependency>
    <groupId>io.quarkiverse.eddi</groupId>
    <artifactId>quarkus-eddi</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>
@Inject EddiClient eddi;

String answer = eddi.chat("my-agent", "Hello!");

Features: Dev Services (auto-starts EDDI in dev mode), fluent API, SSE streaming, @EddiAgent endpoint wiring, @EddiTool MCP bridge. See the quarkus-eddi README for full docs.


📖 Documentation

Guide Description
Getting Started Setup and first steps
Developer Quickstart Build your first agent in 5 minutes
Architecture Deep dive into EDDI's design and pipeline
LangChain Integration Connecting to 12 LLM providers
Behavior Rules Configuring agent routing logic
HTTP Calls External API integration
RAG Knowledge base retrieval setup
MCP Server 48+ tools for AI-assisted agent management
A2A Protocol Agent-to-Agent peer communication
Group Conversations Multi-agent debate orchestration
User Memory Cross-conversation fact retention
Model Cascading Cost-optimized multi-model routing
Security SSRF protection, sandboxing, and hardening
Secrets Vault Envelope encryption for sensitive data
Audit Ledger EU AI Act-compliant audit trail
Kubernetes Deploy with Kustomize or Helm
Red Hat OpenShift Certified container, automated release
Agent Father Deep Dive How the meta-agent works
Full Documentation Complete documentation site

🏗️ Development

Prerequisites

  • Java 25
  • Maven 3.9+ (bundled via mvnw wrapper)
  • MongoDB ≥ 6.0 or PostgreSQL

Run Locally

./mvnw compile quarkus:dev

Then open http://localhost:7070.

💡 Secrets Vault: To use the secrets vault (storing API keys encrypted), set the master key before starting:

# Linux/macOS
export EDDI_VAULT_MASTER_KEY=my-dev-passphrase

# Windows (PowerShell)
$env:EDDI_VAULT_MASTER_KEY = "my-dev-passphrase"

# Or in a .env file (already in .gitignore)
echo "EDDI_VAULT_MASTER_KEY=my-dev-passphrase" > .env

Without this, the vault is disabled and secret management returns HTTP 503. Any passphrase works for local development. See Secrets Vault for production setup.

Build & Docker

# Build app + Docker image
./mvnw clean package '-Dquarkus.container-image.build=true'

# Build without container (for install.sh --local)
./mvnw package -DskipTests

# Generate third-party licenses (Red Hat certification)
./mvnw package -Plicense-gen -DskipTests

☸️ Kubernetes

# Quickstart (one-file deployment)
kubectl apply -f https://raw.githubusercontent.com/labsai/EDDI/main/k8s/quickstart.yaml

# Kustomize overlays
kubectl apply -k k8s/overlays/mongodb/     # MongoDB backend
kubectl apply -k k8s/overlays/postgres/    # PostgreSQL backend

# Helm
helm install eddi ./helm/eddi --namespace eddi --create-namespace

Includes overlays for auth (Keycloak), monitoring (Prometheus/Grafana), NATS messaging, Ingress, and production hardening (HPA, PDB, NetworkPolicy). See the Kubernetes Guide for details.


🤝 Contributing

We welcome contributions! Please read our Contributing Guide for details on setting up your development environment, code style, commit conventions, and the pull request process.

Every PR is automatically checked by CI (build + tests), CodeQL (security), dependency review, and AI-powered code review.

🔒 Security

Please report security vulnerabilities privately — see our Security Policy.

📜 Code of Conduct

This project follows the Contributor Covenant Code of Conduct.

About

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.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors