What you get
- Deployed EDDI agents in the Open WebUI model dropdown
- Chat Completions with streaming and token usage reporting
- One EDDI conversation per chat, so memory and behavior rules persist across turns
- A stateless variant (a
:statelessmodel id) for single-turn calls such as title generation
How it works in EDDI
- Enable the adapter with
EDDI_OPENAI_COMPAT_ENABLED=trueand set an API key. It is disabled by default. - Deploy an agent in EDDI. It appears in
GET /v1/models. - Point Open WebUI (or an SDK) at
http://<eddi>:7070/v1with the same API key. - Turn on
ENABLE_FORWARD_USER_INFO_HEADERSin Open WebUI. Without it every chat window shares one EDDI conversation. - Pick the agent from the model list and chat.
Configuration
Taken from the EDDI documentation. Placeholders such as your-agent-id are yours to replace.
services:
eddi:
image: labsai/eddi:latest
ports: ["7070:7070"]
environment:
EDDI_OPENAI_COMPAT_ENABLED: "true"
EDDI_OPENAI_COMPAT_API_KEY: "sk-eddi-change-me"
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports: ["3000:8080"]
environment:
OPENAI_API_BASE_URL: http://eddi:7070/v1
OPENAI_API_KEY: "sk-eddi-change-me"
ENABLE_OLLAMA_API: "false"
ENABLE_FORWARD_USER_INFO_HEADERS: "true"curl -H "Authorization: Bearer $EDDI_API_KEY" http://localhost:7070/v1/models
curl -X POST http://localhost:7070/v1/chat/completions \
-H "Authorization: Bearer $EDDI_API_KEY" \
-H "Content-Type: application/json" \
-H "X-OpenWebUI-Chat-Id: chat-1" \
-H "X-OpenWebUI-User-Id: alice" \
-d '{"model":"my-agent-a3f9c1","messages":[{"role":"user","content":"Hello"}]}'Governance
- The API has its own API-key authentication and is off until you enable it. EDDI refuses to start in the one combination that would leave conversation creation open to anyone who can reach the port.
- The agent keeps its own approval gates and its audit trail. A request through /v1 is an ordinary EDDI conversation.
- A shared API key plus user headers delegates identity to Open WebUI as a trusted proxy. Treat the key like any shared secret and rotate it.
Good to know
- Only individual agents appear as models, not multi-agent groups.
- Quick replies and buttons are rendered as Markdown text, not as interactive controls.
- Tool calls are not returned to the client. EDDI runs its tools inside its own pipeline, and tool activity stays visible in the audit ledger.
Related integrations
Configuration and behavior on this page follow the EDDI documentation, checked on 2026-10-14. Field names and defaults can change between releases, so confirm them in the docs for your version.