Open WebUI fuer Vibe Factory

Aktive Pilot-Instanz von Open WebUI v0.9.5 gehostet fuer VF unter https://vf-chat.agenticventures.de. Sprint 1 live seit 2026-05-12.

Stack

Browser (Andre/Christoph/Marvin)
  -> Cloudflare Edge (vf-chat.agenticventures.de)
  -> Cloudflare Tunnel (db84013f-...)
  -> AWS Fargate Task (av-production / eu-central-1, x86 1 vCPU/3 GB)
      |- open-webui (v0.9.5, Python+Node, Port 8080)
      |- litellm (Bedrock-Bridge, Port 4000 intern)
      `- cloudflared (Sidecar, Tunnel-Connector)

  -> AWS Bedrock eu-central-1 (Claude 4.x via eu-CRIS-Profile)
  -> AWS S3 (File-Uploads, KMS-encrypted)
  -> AWS RDS PostgreSQL 17.9 t4g.micro Single-AZ (webui-DB, seit 2026-05-14)
  -> AWS EFS-Volume (NUR noch BertModel-Cache + sentence-transformers, KEINE DB-Files mehr)
  -> mcp-vf.agenticventures.de (separater Stack, Papierkram + TicketPAY + M365)

Pattern-Source: open-webui-fargate-bedrock

Verfuegbare Modelle

Stand 2026-05-18: drei Persona-Custom-Models statt einem Allrounder. User waehlen je nach Aufgabe.

Custom ModelPersonaTool-WhitelistSichtbar fuer
vf-juliaJulia (Buchhaltung)Papierkram-Vollzugriff + TicketPAY + SharePoint-Files + Code-Interpreter + Web-Searchaktuell alle (TODO: auf Group buchhaltung restricten)
vf-novaNova (Design)SharePoint (Excel/PowerPoint/Files) + Replicate (FLUX) + Web-Search + Code-Interpreter, KEIN Papierkramalle
vf-cosmoCosmo (Projektmanagement)SharePoint (Mail-Drafts, Kalender, Files) + TicketPAY (Event-Status) + Web-Search + Code-Interpreter, KEIN Papierkram + KEIN Replicatealle

Hidden Models (Admin-View only):

  • vf-sonnet — der alte Allrounder, archiviert. Chat-Historien bleiben verlinkt.
  • vf-haiku-backend, vf-opus-backend — Backend-Routing-Models fuer Welle-1-Klassifikator (kein User-Picker).
  • claude-sonnet-4-6, arena-model — Base + Open-WebUI-Tester, fuer normale User nicht waehlbar.

Bedrock-Pricing (EU-CRIS):

  • Sonnet 4.6 — 16.50/M Output
  • Haiku 4.5 — 5/M
  • Opus 4.6 — 75/M (4.7 noch nicht im Account-Access)

Cost (Stand 2026-05-17, post RDS-Migration)

KomponenteEUR/Mo
Fargate-Task (1 vCPU/3 GB x86, 3 Container)35 €
RDS PostgreSQL t4g.micro Single-AZ + 20 GB GP3 + 7d Backup14 €
EFS-Volume + Backup (nur noch fuer BertModel-Cache)2 €
S3-Uploads + KMS + CloudWatch Logs7 €
Open WebUI-Stack Fix-Cost~58 €
Plus mcp-vf-hosted (separater Stack)9 €
Gesamt Fix~67 €/Mo
Bedrock-API (variabel, mit Prompt-Caching + Modell-Mix)30-150 €/Mo

Pricing fuer VF

Self-Cost-Konditionen (siehe p1):

  • Hosting at-cost weiterverrechnet
  • Bedrock 1:1 Pass-Through
  • Sunset 2026-08-31, dann Review
  • Sprint 2-4 Custom-Development separat (Stundensatz)

MCP-Tool-Konfiguration (Stand 2026-05-15)

16 Core-Tools in Open-WebUI function_name_filter_list — Sonnet 4.6 sieht nur die fuer 80% der Anfragen relevanten Tools, nicht alle 139. Fuer den Rest gibt es das search_tools(query, namespace?, detail?) Meta-Tool das on-demand Schemas liefert.

Core-Liste: papierkram_get_info, papierkram_list_invoices, papierkram_list_vouchers, papierkram_list_companies, papierkram_monatsabschluss, papierkram_offene_posten, papierkram_kunde_uebersicht, ticketpay_list_events, ticketpay_event_bilanz, sharepoint_list_sites, sharepoint_search_files, sharepoint_list_messages, sharepoint_search_messages, sharepoint_create_draft, sharepoint_send_mail, search_tools

Hintergrund: 139 Tools total fuehren bei Bedrock Sonnet 4.6 zu ListTools ohne darauffolgende CallToolRequest-Events (verifikziert 2026-05-15, CloudWatch). 16 Tools: 4 parallele Tool-Calls problemlos.

Admin-API: Whitelist aendern via POST https://vf-chat.agenticventures.de/api/v1/configs/tool_servers mit Admin-Key aus aws secretsmanager get-secret-value --secret-id tmp/owui-admin-key.

Bekannte Issues

  1. SQLite-EFS-Lock-ContentionRESOLVED 2026-05-14 durch RDS-PostgreSQL-Migration (Phase 6). MVCC eliminiert Lock-Block, parallele Reads ohne UI-Hangs. UVICORN_WORKERS=1 ist jetzt der Stand (Multi-Worker triggert peewee_migrate Race-Condition).
  2. Opus-4.7 nicht im Bedrock-Account aktiviert — Marvin muss in Bedrock Console → Model Access den Haken setzen
  3. System-Prompt nur in vf-sonnet Custom Model — wenn User claude-sonnet-4-6 nackt waehlt, kein Date-Context
  4. App-Name-Suffix „(Open WebUI)” — hardcoded in v0.9.5-Build, Whitelabel-Removal ist Enterprise-Feature (paywall). Header-Titel + Browser-Tab zeigen weiter „VF Chat (Open WebUI)“. Workaround nur via Custom-Image-Build.

Cost-Audit 2026-05-18 — Patches pending deploy

Cost-Audit (_index) hat zwei strukturelle Treffer entdeckt: Cache-Hit-Rate nur 17% (statt 70%+) wegen {{CURRENT_TIME}}-Cache-Killer im System-Prompt, plus Klassifikator-Routing-Decisions silent. Stack-Edits in open-webui-vf-stack.ts und prompts/vf-sonnet.txt committed. Spar-Potenzial gesamt ~$320-380/Mo. Deploy + System-Prompt-Update in OWUI Custom-Model pending — siehe active-work. Pattern: bedrock-llm-cost-audit-checkliste.

Branding (Stand 2026-05-18 v2)

VF-Icon ist ueber alle 17 Static-Asset-Pfade (Backend + Build) ausgeliefert. Mechanismus: ENTRYPOINT-Wrapper im CDK-Stack curlet WEBUI_FAVICON_URL beim Container-Start in jeden Pfad. Pfad-Liste in open-webui-vf-stack.ts rund um die entryPoint-Override des owui-Containers.

Aktuelles VF-Icon: 256×256 PNG von Webflow-CDN (siehe README). MD5 c8d32f3ac6eb7f000c2bfd9e6905c1b8.

Folgekunden-Pattern: pro Tenant WEBUI_FAVICON_URL setzen + Stack-Redeploy = ~5 Min.

Phase-1-Update 2026-05-19 — Anti-Slop-Block in vf-nova

  • Anti-Slop-Block in vf-nova System Prompt deployed (44176 chars nach Patch, +3634 Delta zu v2.x). Source-of-Truth: ~/source/apps/open-webui-vf/prompts/vf-nova.txt. Push via POST /api/v1/models/model/update?id=vf-nova mit Admin-Key + Mozilla-User-Agent (Cloudflare 1010 sonst).
  • Inhalt: sieben Cardinal Sins (Indigo-Hex-Blocklist #6366f1 etc. fuer alle Layers inkl Background-Mesh/Radial-Gradient/Glow, Forbidden-Gradients purple→blue / blue→cyan / indigo→pink, Emoji-Feature-Icons-Verbot, Filler-Copy-Verbot, Invented-Metrics-Verbot, Sans-on-Serif-Mismatch, Rounded-Card-with-Left-Border-Accent) plus Image-Gen-Negativ-Prompt-Snippet fuer Replicate-Calls. Adapted from nexu-io/open-design craft/anti-ai-slop.md (Apache 2.0).
  • Smoke-Test 2026-05-19 17:55-18:05 CEST via Bedrock-CLI direkt: Verifikation in _index. v3.0 hatte Indigo-Hex #8b5cf6 als Background-Layer durchgehen lassen → v3.0.1-Patch geschaerft, re-getestet, clean.
  • Plan-Kontext: 2026-05-19-design-stack-julian.
  • Native Image-Gen via Replicate — als Phase 1.2 geplant, beim Live-Check verworfen. OWUI 0.9.5 supportet als IMAGE_GENERATION_ENGINE nur openai/automatic1111/comfyui/gemini, kein Replicate. Image-Gen erfolgt weiter via Tool-Use; vollwertig nach Sprint 2 (mcp-replicate-hosted, sprint-2-replicate-hosted).

[KORREKTUR 2026-05-17] Capability-File-Sync mit Stack-Realitaet

Die Issue-Liste sagte bis 2026-05-17 noch „SQLite-EFS-Lock-Contention offen, RDS-Migration als Phase 6 ausstehend”. Tatsaechlich war RDS bereits am 2026-05-14 deployed (Stack-Code in ~/source/apps/open-webui-vf/infra/lib/open-webui-vf-stack.ts Zeilen 215-256, sprint-2-master-plan.md Zeile 9 als done markiert). Capability-File war out-of-sync mit Production.

Konsequenz fuers Audit _index: Memory & State 4/10 → 7/10, Aggregat 6.6 → 7.0. Korrigiert in correction-2026-05-17.

Operations

  • Live-Health-URL: https://vf-chat.agenticventures.de/api/config (auth-frei, JSON)
  • Logs: CloudWatch Log-Group /aws/ecs/default/open-webui-vf, Streams open-webui/*, litellm/*, cloudflared/*
  • Dashboard: open-webui-vf in CloudWatch
  • Restart bei Hang: aws ecs stop-task --cluster default --task <arn> — ECS startet automatisch neuen Task
  • Deploy: cd ~/source/apps/open-webui-vf/infra && npx cdk deploy --profile av-production
  • Stack-Code: ~/source/apps/open-webui-vf/infra/lib/open-webui-vf-stack.ts

Sicherheit

  • TaskRole hat Bedrock-Invoke + S3-RW + EFS-Mount, kein anderes AWS-Access
  • Egress-only Security Group, einziger Public-Eingang ist cloudflared-Tunnel
  • KMS-Keys fuer S3 + Secrets
  • Open WebUI enable_signup: false, enable_api_keys: true (fuer Admin-Automation)
  • ENABLE_FORWARD_USER_INFO_HEADERS: true an MCPs (Per-User-Audit)

Cross-Refs