得られるもの
- Open WebUIのモデルのドロップダウンに表示されるデプロイ済みEDDIエージェント
- ストリーミングとトークン使用量の報告に対応した Chat Completions
- チャット1件につきEDDIの会話を1つ割り当てるため、メモリと behavior rules がターンをまたいで保持される
- タイトル生成のような単発の呼び出し向けのステートレス版(
:statelessのモデルID)
EDDIでの仕組み
EDDI_OPENAI_COMPAT_ENABLED=trueでアダプターを有効にし、APIキーを設定します。デフォルトでは無効です。- EDDIでエージェントをデプロイします。エージェントは
GET /v1/modelsに表示されます。 - Open WebUI(またはSDK)を、同じAPIキーを使って
http://<eddi>:7070/v1に向けます。 - Open WebUIで
ENABLE_FORWARD_USER_INFO_HEADERSを有効にします。無効のままだと、すべてのチャットウィンドウが1つのEDDI会話を共有します。 - モデル一覧からエージェントを選んでチャットします。
設定
EDDIのドキュメントに基づいています。your-agent-id のようなプレースホルダーは、ご自身の値に置き換えてください。
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"}]}'ガバナンス
- このAPIには独自のAPIキー認証があり、有効にするまでオフです。ポートに到達できる誰にでも会話の作成を許してしまう組み合わせでは、EDDIは起動を拒否します。
- エージェントは独自の承認ゲートと監査証跡を保ちます。/v1 経由のリクエストも通常のEDDI会話です。
- 共有APIキーとユーザーヘッダーの組み合わせは、信頼するプロキシとしての Open WebUI にIDを委任します。キーは他の共有シークレットと同様に扱い、ローテーションしてください。
知っておくべきこと
- モデルとして表示されるのは個々のエージェントのみで、マルチエージェントのグループは表示されません。
- クイックリプライとボタンは、インタラクティブなコントロールではなく Markdown テキストとして表示されます。
- ツール呼び出しはクライアントには返されません。EDDIはツールを自身のパイプライン内で実行し、ツールの動作は監査台帳で確認できます。
関連するインテグレーション
このページの設定と動作は、2026-10-14に確認したEDDIのドキュメントに基づいています。フィールド名やデフォルト値はリリースによって変わることがあるため、お使いのバージョンのドキュメントで確認してください。