> For the complete documentation index, see [llms.txt](https://docs.labs.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.labs.ai/readme.md).

# E.D.D.I Documentation

Multi-Agent Orchestration Middleware for Conversational AI — coordinate multiple AI agents, business systems, and conversation flows through configuration, not code.

Welcome to the official documentation for **E.D.D.I** (Enhanced Dialog Driven Interface) — open-source multi-agent orchestration middleware for conversational AI.

[![Version](https://img.shields.io/github/v/release/labsai/EDDI?label=version\&color=blue)](https://github.com/labsai/EDDI/releases) · License: Apache 2.0 · [GitHub](https://github.com/labsai/EDDI) · [Website](https://eddi.labs.ai/)

***

## What Is EDDI?

EDDI coordinates between users, AI agents (LLMs), and business systems. It provides intelligent routing, conversation management, and API orchestration — all through **versioned JSON configurations**, not code.

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

***

## Start Here

| Guide                                                                      | Description                                              |
| -------------------------------------------------------------------------- | -------------------------------------------------------- |
| [**Getting Started**](/getting-started/getting-started.md)                 | Install EDDI and create your first agent                 |
| [**Developer Quickstart**](/getting-started/developer-quickstart.md)       | Build a complete agent step by step through the REST API |
| [**Manager Dashboard**](/getting-started/agent-manager-gui.md)             | A tour of the admin UI, including the Platform Operator  |
| [**Architecture Overview**](/architecture-and-concepts/architecture.md)    | The lifecycle pipeline and the configuration model       |
| [**Putting It All Together**](/getting-started/putting-it-all-together.md) | A worked example: a hotel booking agent                  |

***

## Key Capabilities

### Multi-Agent Orchestration

* **19 LLM Providers** — OpenAI, Anthropic, Google Gemini, Mistral AI, Azure OpenAI, Amazon Bedrock, Oracle GenAI, Vertex AI, Ollama, Jlama, Hugging Face, xAI, DeepSeek, Kimi, Qwen, GLM, MiniMax, OpenRouter, Groq, plus any OpenAI-compatible endpoint
* [**Group Conversations**](/conversations-and-orchestration/group-conversations.md) — Multi-agent debates, voting, shared artifacts, and standing teams across 7 discussion styles (Round Table, Peer Review, Devil's Advocate, Delphi, Debate, Task Force, Negotiation)
* [**Managed Agents**](/conversations-and-orchestration/managed-agents.md) — Intent-based auto-routing with one conversation per user per intent
* [**Model Cascading**](/agent-configuration/model-cascade.md) — Cost-optimized multi-model routing with confidence-based escalation
* [**Platform Operator**](/getting-started/agent-manager-gui.md) — An opt-in agent that inspects and operates the deployment through an allow-list of EDDI's own REST endpoints, including creating other agents; every write it makes pauses for human approval. An admin activates it at `/manage/operator`; the form-based wizard at `/manage/agents/wizard` is the alternative for creating agents

### Protocols & Interoperability

* [**MCP Server**](/protocols-and-integration/mcp-server.md) — 80+ tools for managing agents and holding conversations from Claude Desktop, IDE plugins, or any MCP client
* [**MCP Client**](/protocols-and-integration/mcp-client.md) — Point an agent at somebody else's MCP server, including stdio servers via a bridge sidecar
* [**A2A Protocol**](/protocols-and-integration/a2a-protocol.md) — Agent-to-Agent peer communication with skill discovery
* [**Connections**](/protocols-and-integration/connections.md) — One credential model for every outbound call: static keys, HTTP Basic, OAuth service accounts, and per-end-user OAuth
* [**OpenAI-Compatible API**](/protocols-and-integration/open-webui-integration.md) — Deployed agents presented as OpenAI models for Open WebUI and OpenAI SDK clients
* **SSE Streaming** — Token-by-token responses, including most tool-enabled turns (a single-chunk fallback applies to cascade agents, providers without a streaming builder, and a few other configurations), plus a live `tool_call` event so clients can show "Using {tool}…" while the turn is still running

### LLMs, Knowledge & Memory

* [**LLM Integration**](/agent-configuration/langchain.md) — Connect any of 19 providers with agent mode and tool calling
* [**RAG**](/agent-configuration/rag.md) — 8 embedding providers, 6 vector stores, plus zero-infrastructure httpCall RAG
* [**Persistent User Memory**](/architecture-and-concepts/user-memory.md) — Agents remember facts across conversations
* [**Properties**](/architecture-and-concepts/properties.md) — Config-driven slot-filling and importance extraction

### Security & Compliance

* [**Secrets Vault**](/security-and-compliance/secrets-vault.md) — Envelope encryption (AES-256-GCM + PBKDF2) for API keys
* [**Security**](/security-and-compliance/security.md) — SSRF-safe outbound HTTP, a sandboxed math parser instead of script evaluation, Keycloak (OIDC) authentication
* [**Audit Ledger**](/security-and-compliance/audit-ledger.md) — Append-only record of every pipeline task, signed with HMAC-SHA256 for tamper detection; supports the record-keeping described in [EU AI Act Compliance](/security-and-compliance/eu-ai-act-compliance.md)
* [**Human-in-the-Loop**](/conversations-and-orchestration/hitl.md) — Turn-level and per-tool-call approval gates with timeout policies, plus Slack and MCP approval surfaces

***

## Agent Configuration

Build agent behavior by composing these extensions:

| Extension             | Purpose                                              | Guide                                                          |
| --------------------- | ---------------------------------------------------- | -------------------------------------------------------------- |
| **Behavior Rules**    | Decision-making logic — IF conditions THEN actions   | [→ Guide](/agent-configuration/behavior-rules.md)              |
| **HTTP Calls**        | Call external REST APIs with templated requests      | [→ Guide](/agent-configuration/httpcalls.md)                   |
| **LLM Integration**   | Chat, agent mode, tool calling with any provider     | [→ Guide](/agent-configuration/langchain.md)                   |
| **Output**            | Define what the agent says, with alternatives        | [→ Guide](/agent-configuration/output-configuration.md)        |
| **Output Templating** | Dynamic responses using Qute templates               | [→ Guide](/agent-configuration/output-templating.md)           |
| **Properties**        | Extract and store structured data from conversations | [→ Guide](/architecture-and-concepts/properties.md)            |
| **Semantic Parser**   | Map user input to expressions via dictionaries       | [→ Guide](/agent-configuration/semantic-parser.md)             |
| **Context**           | Inject external data from your application           | [→ Guide](/agent-configuration/passing-context-information.md) |

***

## Deployment & Operations

| Topic                   | Guide                                                                             |
| ----------------------- | --------------------------------------------------------------------------------- |
| Configuration Reference | [→ Guide](/deployment-and-infrastructure/configuration-reference.md)              |
| Docker                  | [→ Guide](/deployment-and-infrastructure/docker.md)                               |
| Kubernetes & Helm       | [→ Guide](/deployment-and-infrastructure/kubernetes.md)                           |
| Red Hat & OpenShift     | [→ Guide](/deployment-and-infrastructure/redhat-openshift.md)                     |
| AWS + MongoDB Atlas     | [→ Guide](/deployment-and-infrastructure/setup-eddi-on-aws-with-mongodb-atlas.md) |
| Metrics & Monitoring    | [→ Guide](/deployment-and-infrastructure/metrics.md)                              |
| Log Administration      | [→ Guide](/deployment-and-infrastructure/log-administration.md)                   |
| Release & Versioning    | [→ Guide](/deployment-and-infrastructure/release-versioning.md)                   |

***

## Quick Start

All options need [Docker](https://docs.docker.com/get-docker/).

**Recommended: the installer.** An interactive wizard that sets up EDDI and a database with Docker Compose, generates a vault encryption key, and installs an `eddi` command for updates.

```bash
# Linux / macOS / WSL2
curl -fsSL https://raw.githubusercontent.com/labsai/EDDI/main/install.sh | bash
```

```powershell
# Windows (PowerShell)
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/labsai/EDDI/main/install.ps1" -OutFile "install.ps1"
Unblock-File .\install.ps1
.\install.ps1
```

**Without the installer:** download the Compose file into an empty directory and start it. It runs EDDI and MongoDB with authentication off, bound to `127.0.0.1` so they are reachable from this machine only. The secrets vault stays disabled until you set `EDDI_VAULT_MASTER_KEY` (for example in a `.env` file next to the Compose file) — set it before storing any API key.

```bash
curl -fsSLO https://raw.githubusercontent.com/labsai/EDDI/main/docker-compose.yml
docker compose up -d
```

Then open <http://localhost:7070>. A first visit lands on a chooser between the **Manager** (`/manage`) and the **Workforce** workspace (`/workforce`); the Chat UI is at `/chat`. A fresh install has no agents: create one with the Platform Operator or the agent wizard in the Manager.

See [**Getting Started**](/getting-started/getting-started.md) for every setup option, including PostgreSQL, Keycloak authentication and Kubernetes.

***

## Browse All Documentation

See the full [**Table of Contents**](https://github.com/labsai/EDDI/tree/main/docs/SUMMARY.md) for the complete documentation index.

**Have a question?** Check the [**FAQs**](/reference/how-to....md) for common setup and configuration answers.
