Run 2026-05-13 — Open WebUI Production-Tuning Recherche
Trigger
Nach 2 Tagen VF Open-WebUI Production-Use sind mehrere Settings-Luecken aufgefallen, die wir alle in Schmerz gelernt haben:
ENABLE_API_KEYS=trueist Pflicht aber Default falseENABLE_OLLAMA_API=falsenoetig (sonst 500 auf Admin)WEBUI_SYSTEM_PROMPTENV existiert nicht- SQLite-on-EFS unbrauchbar → RDS Pflicht
- MCP-Streamable-HTTP
pathFeld wird ignoriert - LiteLLM Default
max_tokens=4096cuttet Code-Interpreter - Code-Interpreter-Pfad
/mnt/uploads/, nicht/tmp/
Proaktive Recherche durch die offiziellen Docs (docs.openwebui.com) plus GitHub-Issues, um weitere Luecken VOR dem naechsten Schmerz zu finden.
Ausfuehrung
- Agent:
compound-engineering:research:best-practices-researcher - Quellen: offizielle Open-WebUI-Docs, GitHub-Issues (Top-Reactions), LiteLLM-Docs, AWS-Bedrock-Caching-Doc, Community-Refs (taylorwilsdon-Guide)
- Dauer: ~15 Min, 60 Tool-Calls
- Vollstaendiger Report: findings.md
Wichtigste Korrektur aus vorheriger Recherche
In _index hatte ich /tmp/... als Code-Interpreter-Pfad empfohlen + display(FileLink(...)) als Pflicht. Beides falsch. Offiziell:
- Pfad:
/mnt/uploads/<name>.<ext>— Open-WebUI-File-Browser greift dort automatisch display(FileLink(...))ist Jupyter-Pattern, in Pyodide unnoetig- Korrigiert in vf-sonnet v2.3 (2026-05-13 18:00)
Wichtigste Action-Items (Tier 1, alle umgesetzt)
| # | Action | Status |
|---|---|---|
| 1 | vf-sonnet v2.3: Pfad-Korrektur /mnt/uploads/, FileLink raus | ✅ live |
| 2 | Stack-ENV: DEFAULT_MODEL_PARAMS (max_tokens=8192, function_calling=native fuer ALLE Modelle) | ✅ deployed |
| 3 | Stack-ENV: THREAD_POOL_SIZE=2000, ENABLE_REALTIME_CHAT_SAVE=false, CHAT_RESPONSE_STREAM_DELTA_CHUNK_SIZE=5 | ✅ deployed |
| 4 | Stack-ENV: AIOHTTP_CLIENT_TIMEOUT=600, _TOOL_SERVER=600 (Cloudflare-100s-Falle teilweise mitigated) | ✅ deployed |
| 5 | Stack-ENV: ENABLE_DIRECT_CONNECTIONS=false, USER_PERMISSIONS_WORKSPACE_TOOLS_ACCESS=false (Security) | ✅ deployed |
| 6 | Stack-ENV: LOG_FORMAT=json, AUDIT_LOG_LEVEL=METADATA, ENABLE_AUDIT_STDOUT=true | ✅ deployed |
| 7 | Open WebUI Version verifiziert: v0.9.5 (nicht v0.6.31, Agent-Annahme war veraltet) | ✅ kein Upgrade-Bedarf akut |
Offene Action-Items (Tier 2-3)
- Cloudflare-Tunnel-Side: connectTimeout + tcpKeepAlive in cloudflared-Config hochziehen (Issue #16747 fuer Long-Running-Tool-Calls)
- Prompt-Cache-Verifikation: Outlet-Filter-Function die
cache_read_input_tokenspro Call loggt - Filter-Functions: Audit/Cost-Tracker, PII-Maskierung (DE-IBAN/Telefon/Steuer-ID), Source-Citation-Injector
- RAG: VECTOR_DB=pgvector + Bedrock Titan Embeddings via LiteLLM (spart ~500MB RAM/Worker)
- 2FA fuer Compliance (Issue #1225, 59 Upvotes — Roadmap)
- Cost-Tracking pro User via LiteLLM-success-Callbacks
Weitere wichtige Findings (Details in findings.md)
- Cloudflare-Tunnel-100s-Falle (Issue #16747) — bei langem Sonnet-Reasoning cuttet CF die Stream-Verbindung. Stack-Side teilweise mitigated (AIOHTTP_TIMEOUT=600 + Delta-Chunk-Size=5), Tunnel-Side noch offen.
- Prompt-Caching Mindesttoken 2048 fuer Sonnet 4.5/4.6 — unter Schwelle greift Caching gar nicht. vf-sonnet v2.3 ist bei ~3300 Tokens, sicher drueber.
- Function-Calling Native ist Pflicht — Legacy-Mode invalidiert KV-Cache jede Runde, versteckte Kosten. Global jetzt via DEFAULT_MODEL_PARAMS=
{...,"function_calling":"native"}. - Top-10 GitHub Pain-Points ausgewertet — relevant fuer VF: #16747 (CF-Timeout), #13718 (KB-Loeschung-Bug), #1225 (2FA-Wunsch).
- Custom-Branding lizenzlich begrenzt — bei <50 Usern in 30 Tagen darf „Open WebUI”-Logo nicht entfernt werden ohne Enterprise-License. WEBUI_NAME ist OK (haben wir).
Quellen
Siehe findings.md fuer vollstaendige Quellen-Liste mit Frische-Bewertung. Primaerquellen:
- docs.openwebui.com — offiziell
- github.com/open-webui Issues — Real-World-Bugs
- docs.litellm.ai/docs/completion/prompt_caching — Bedrock-Caching-Integration
- taylorwilsdon/open-webui-tools — Community-Operator-Guide
Follow-Ups
- vf-sonnet v2.3 deployed (Pfad-Korrektur)
- Stack-ENV-Patch deployed (DEFAULT_MODEL_PARAMS + 10 weitere)
- Cloudflare-Tunnel cloudflared-Config: connectTimeout: 600s + tcpKeepAlive: 30s
- Filter-Function „Audit + Cost-Tracker” anlegen, in Admin/Functions
- Filter-Function „PII-Maskierung” anlegen
- Prozess-File open-webui-production-tuning schreiben (= Pattern-Destillat aus diesem Run)
- In 1-2 Wochen: A/B-Vergleich Verhalten vs. heute (vor Patches)