Skip to content
🚀 EDDI 6.5.0

19 LLM providers, knowledge bases that crawl your site and read your files, and conversations that follow compatible agent versionsWhat's new

Managed Cloud Get Started
All integrations
Channels/v1

Open WebUI

EDDI serves an OpenAI-compatible /v1 API that presents deployed agents as models, so Open WebUI, the OpenAI SDKs, LangChain and LiteLLM can talk to them.

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 :stateless model id) for single-turn calls such as title generation

How it works in EDDI

  1. Enable the adapter with EDDI_OPENAI_COMPAT_ENABLED=true and set an API key. It is disabled by default.
  2. Deploy an agent in EDDI. It appears in GET /v1/models.
  3. Point Open WebUI (or an SDK) at http://<eddi>:7070/v1 with the same API key.
  4. Turn on ENABLE_FORWARD_USER_INFO_HEADERS in Open WebUI. Without it every chat window shares one EDDI conversation.
  5. 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.

docker-compose.yml (excerpt)A production-shaped compose excerpt from the EDDI docs. Change the example API key.
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"
Check the endpointVerify the endpoint from the shell. Set EDDI_API_KEY to the same value as in the compose file.
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.