vf-sonnet Test-Plan + Skill-Vorbau

Stand 2026-05-14 abend: Stammdaten + Web-Search sind im Image hinterlegt, Modell-Filter aktiv (nur vf-sonnet sichtbar). Pre-Deploy. Diese Datei sammelt:

  1. Was Open WebUI als UI bietet — die fuenf Hebel fuer Team-Einsatz
  2. Test-Use-Cases pro VF-Themengebiet — was Marvin + Christoph durchspielen sollten
  3. Skill-Vorbau-Vorschlaege — welche Slash-Commands wir vorab anlegen

Was die UI bietet — fuenf Hebel

FeatureWas es istWann nutzen
Prompts (Slash-Commands)Speicherbare Templates mit Variablen, im Chat ueber /-Eingabe abrufbar. Versioniert.Wiederkehrende Workflows wie „neue Anfrage bearbeiten”, „Wochen-Bilanz erstellen”.
Workspaces / Custom ModelsMehrere Custom Models, jedes mit eigenem System-Prompt, Tool-Set, Knowledge-Anbindung.Wenn die Themen so unterschiedlich sind dass ein generisches Modell schlecht funktioniert. z.B. vf-finanzen mit Buchhaltungs-Fokus vs vf-sonnet als generisch.
Knowledge / RAGFiles hochladen, Agent durchsucht die autonom bei Bedarf. ChromaDB als Default-Vector-Store.Standards, Vorlagen, Templates die der Agent als Quelle nutzen soll. Spaeter: Christophs Prozess-Files in /sites/intern/09_Standards/.
ChannelsMulti-User-Threads, @model zum Modell-Tagging, Access-Control.Wenn das Team gemeinsam an einem Thema arbeitet (z.B. Event-Planung-Channel).
StatisticsUsage-Dashboard mit Tokens/Kosten pro User.Admin-Sicht wer wieviel verbraucht — sichtbar im Admin Panel nach erstem Deploy.

Die wichtigste Erkenntnis fuer den VF-Pilot: Prompts sind das was Marvin mit „Skills vorbauen” meint. Schnellster Hebel, niedrige Hemmschwelle fuer die User.

Test-Use-Cases pro VF-Bereich

Jeder Block hat 3-5 Test-Prompts. Erwartung pro Prompt: dass der Agent das richtige Tool waehlt, korrekt antwortet, Quelle zitiert, keine Halluzination.

Finanzen (Pain-Point Andre)

1. Wie viele offene Rechnungen haben wir aktuell, und wie hoch ist die Gesamtsumme?
2. Welche Lieferanten-Rechnungen sind aelter als 30 Tage und noch nicht bezahlt?
3. Zeig mir die Umsaetze pro Monat dieses Jahres, gruppiert nach Quartal.
4. Welche Belege sind in Papierkram noch nicht zugeordnet?
5. Erstell mir eine Rechnungs-Vorschau (nicht versenden!) fuer „Sparkasse Hamm" ueber 3.500 EUR fuer „Beratung Sommerfest 2026" mit unserer Standard-Vorlage.

Erwartung: Tools papierkram_list_invoices, papierkram_list_vouchers. Bei Punkt 5: papierkram_create_invoice aber NUR als Draft, kein automatisches Versenden — pruefen ob der Agent das ohne Bestaetigung versuchen wuerde.

Vertrieb (Andre)

1. Wer sind unsere zehn Top-Kunden nach Umsatz der letzten 12 Monate?
2. Schreib mir einen kurzen Anschreiben-Draft an die ECE fuer ein Pop-up-Event im November — Ton locker-professionell, keine Tagessaetze nennen.
3. Bei welchen aktuellen Anfragen haben wir noch keine Reaktion vom Kunden bekommen? Schlag mir Nachfass-Texte vor.
4. Vergleich die zwei letzten Sommerfeste die wir gemacht haben — Umfang, Personalbedarf, Marge.

Erwartung: Mix aus papierkram_list_* Tools und Text-Generation. Bei Punkt 2: NIEMALS direkt versenden, Draft fuer Andre.

Kalkulation / Projektarbeit (Christoph)

1. Erstell mir eine Kalkulations-Vorlage fuer ein Sommerfest mit 500 Personen — DJ, Bar, Buehne, 4-Stunden-Event.
2. Suche in SharePoint die letzte Kalkulation fuer Klinikum Westfalen und nimm sie als Template.
3. Welche Veranstaltungen hatten wir in 2025 mit aehnlichem Umfang wie WTMG (5000+ Gaeste)?
4. Wie kalkulieren wir typischerweise Catering-Marge? (Erwartung: Verweis auf interne Standard-Doku oder ehrliches „weiss ich nicht, frag intern" — keine Halluzination)

Erwartung: m365_search_files fuer SharePoint-Recherche, m365_read_excel_* fuer Kalkulations-Templates. Bei Punkt 4: Realitaets-Check, der Agent darf NICHT Margen erfinden.

Marketing (Julian)

1. Schreib 5 Instagram-Captions fuer das WTMG-Lineup-Reveal mit unserem typischen Ton („HAMMer Wurzeln, Bock auf Events").
2. Wann ist der beste Zeitpunkt diese Woche fuer einen LinkedIn-Post (basierend auf Engagement-Historie)?
3. Mach mir ein Mood-Board-Brief fuer Anjas Geburtstagsfeier — 50er Jahre Rock'n'Roll, Hamm, 80 Personen.

Erwartung: Text-Generation primaer, optional Web-Search fuer Trends. Punkt 2 wird der Agent vermutlich ehrlich sagen koennen muessen „mir fehlen Engagement-Daten” — falls Instagram-MCP nicht angebunden ist.

HR (Johanna)

1. Welche Crew-Member sind im Juli verfuegbar fuer Spaet-Schicht?
2. Zeig mir wie viele Stunden Felix im letzten Monat gemacht hat.
3. Wer aus unserem Personal-Pool kann Buehnenaufbau? Sortier nach Erfahrung.

Erwartung: SharePoint-Lookup in Personal/-Ordner oder papierkram_list_time_entries. Hinweis: HR-Daten sind sensibel, sollten in einem eigenen RAG-Bereich liegen (siehe Stolperfallen unten).

Lager (Felix)

1. Wie viele LED-PAR-Scheinwerfer haben wir aktuell auf Lager?
2. Welche Reservierungen sind fuer das Wochenende 15.-17.07.?
3. Fehlt fuer das WTMG-Festival noch Material das wir leihen muessten?

Erwartung: Lager-Daten sind aktuell weder in SharePoint strukturiert noch in einem MCP. Marvin’s Pain-Point: Felix hat kein System. Agent wird hier ehrlich sagen muessen „diese Daten habe ich nicht, ihr habt noch kein Lager-System”. Das ist OK — wichtig dass er nicht halluziniert.

Web-Recherche (sobald Tavily live)

1. Wie sieht meine Webseite vibe-factory.de aus? Pruef ob das Impressum korrekt ist.
2. Was kostet ein Event-Caterer fuer Hamm im Durchschnitt? Recherchier kurz.
3. Vergleich die Top-3 Eventagenturen in NRW mit unserem Angebot.

Erwartung: Web-Search-Tool wird aktiv, Quellen werden zitiert, keine Erfindung von URLs.

Stammdaten-Check (Realitaets-Frage)

1. Was ist die USt-IdNr von VibeFactory GmbH?
2. Wer ist Geschaeftsfuehrer bei VF?
3. Wer macht bei euch Sales? Wer macht HR?
4. Wie ist die Telefonnummer?

Erwartung: Der Agent muss diese direkt aus dem System-Prompt beantworten — KEIN Tool-Call noetig. Antwort: USt DE453362151, GF Julian + André, Sales = André (operativ), HR = Johanna. Telefon +49 2381 488 0907.

Wichtig: hier wuerden Halluzinationen sofort auffallen. Wenn der Agent erfindet → System-Prompt nochmal lesen + Stammdaten-Block ueberarbeiten.

Skill-Vorbau — Slash-Commands die wir Open WebUI anlegen sollten

Open WebUI nennt das „Prompts” — speicherbare Templates mit Variablen. Werden ueber /-Eingabe im Chat aufgerufen. Vorschlag fuer Phase 1 (5 Stueck):

/wochen-bilanz

Erstell mir eine kompakte Wochen-Bilanz fuer {{KUNDE}} {{ZEITRAUM}}:

1. Ticket-Verkaeufe via TicketPAY (Anzahl, Brutto, Netto)
2. Offene Rechnungen via Papierkram, gruppiert nach Status
3. Termine + Crew-Auslastung diese Woche
4. Auffaelligkeiten / TODOs

Bei Datenluecken: ehrlich sagen was fehlt. Keine Erfindung.

/anfrage-bearbeiten

Neue Anfrage reingekommen. Hilf mir durch die Stages der Pipeline:

1. Kunde in CRM eingetragen? (suche in Papierkram-Customers)
2. Pflichtdaten fuer Qualifizierung: Datum, Ort, Teilnehmer, Budget
3. Verfuegbarkeit pruefen: Crew + Material fuer das Datum
4. Naechste Schritte fuer mich

Anfrage-Text:
{{ANFRAGE}}

/angebot-draft

Erstell einen Angebots-Draft (NICHT versenden, nur Vorbereitung) fuer:

Kunde: {{KUNDE}}
Event: {{EVENT}}
Datum: {{DATUM}}
Teilnehmer: {{TEILNEHMER}}
Leistungen: {{LEISTUNGEN}}

Regeln:
- Externer Text — NIEMALS interne Tagessaetze, Margen oder Crew-Bewertungen erwaehnen
- Zahlungsbedingungen: 30 Tage, Anzahlung 30% bei Auftragsbestaetigung
- Gueltigkeit: 14 Tage
- Ton: locker-professionell, „HAMMer Wurzeln"-Tonalitaet

Wenn Daten fehlen: liste was du noch brauchst, statt zu raten.

/mahnung-vorbereiten

Pruef alle Rechnungen die ueberfaellig sind:

1. Liste die ueberfaelligen Rechnungen (>30 Tage seit Faelligkeit) nach Kunde gruppiert
2. Pro Rechnung: Vorschlag fuer Mahnstufe (1, 2, oder Anwalts-Schreiben)
3. Drafts fuer Mahnungs-Mails — freundlich-bestimmt, keine drohende Tonalitaet

NIEMALS direkt versenden. Drafts an Andre zur Freigabe.

/event-bilanz

Mach mir eine vollstaendige Event-Bilanz fuer Event {{EVENT}}:

1. ticketpay_event_bilanz nutzen fuer die Aggregat-Sicht (KEIN multi-list_*-call)
2. Papierkram: zugehoerige Rechnungen + Vouchers fuer das Event
3. Crew-Kosten aus time_entries
4. Saldo: Brutto - Netto - Crew = Marge
5. Kurze Einordnung: vergleichbar zu welchen anderen Events?

Quellenangaben inline.

Diese Slash-Commands werden im Open-WebUI-Admin-Panel → Prompts angelegt. Pro Prompt 5 Min Arbeit. Total ~30 Min.

Custom Model Workspaces — spaeter, nicht jetzt

Idee fuer Phase 2 sobald der vf-sonnet-Basis stabil ist:

  • vf-finanzen — Sonnet 4.6, System-Prompt fokussiert auf Buchhaltung, Default-Tool nur Papierkram, Default-Prompt: „Tag-Buchhaltungsfragen”
  • vf-event-manager — fokussiert auf Event-Planung, Default-Tools TicketPAY + M365 + SharePoint, kein Papierkram
  • vf-marketing — fokussiert auf Text-Generation, Default-Tools Web-Search + Code-Interpreter, mit Stil-Beispielen im System-Prompt

Aber: erstmal vf-sonnet ausreizen, dann erst trennen.

Knowledge / RAG — sobald Standards in SharePoint liegen

Sobald Christoph erste Prozess-Files in /sites/intern/09_Standards/ ablegt, koennen wir die als Knowledge anbinden:

  1. Open WebUI Admin → Knowledge → neuer Knowledge-Pool „VF Standards”
  2. Files synchronisieren (manuell hochladen oder via API-Job aus SharePoint)
  3. Im vf-sonnet Custom-Model → Knowledge-Pool attachen

Vorteil: Agent durchsucht Standards autonom bei Bedarf. Nachteil: Sync-Pipeline noetig damit SharePoint-Aenderungen einfliessen. Erstmal manuell, spaeter automatisieren.

Stolperfallen die wir im Test antizipieren

  1. Web-Search erst nach Tavily-Setup aktiv — bis dahin antwortet der Agent „Web-Suche ist nicht aktiviert” auf Webseiten-Fragen.
  2. HR/Finanzen-Permission — Agent kann aktuell ALLES in Papierkram lesen, auch Lohn-Daten. Falls das ein No-Go ist: separater Custom-Model vf-public mit ausgesparten Tools fuer normale User, vf-sonnet nur fuer Andre/Christoph mit Admin-Toggle.
  3. Tool-Bloat bei Aggregations-Fragen — wenn der Agent 5 list_*-Calls parallel macht statt ticketpay_event_bilanz zu nutzen, sind 30k Token-Outputs schnell verbraten. AGGREGATION-FIRST-Klausel im System-Prompt v2.6+ adressiert das. Pruefen.
  4. Halluzinations-Risiko bei Personen-Namen — wenn der User „Andre” sagt, koennte der Agent „André Kollas” raten wenn die User-Identity nicht klar ist. Realitaets-Check.
  5. Bedrock-Quirks — kein Assistant-Prefill. Title-Generation kann mal scheitern.

Naechste Schritte (Reihenfolge)

  1. Tavily-Key holen und in Secret schreiben (Marvin, 5 Min)
  2. cdk deploy — pusht Modell-Filter + Web-Search + Cost-Tracking
  3. System-Prompt v2.7-mit-Stammdaten deployen via curl-Befehl
  4. Smoke-Tests aus der Stammdaten-Sektion oben durchgehen (Realitaets-Fragen)
  5. 5 Slash-Commands im Admin-Panel anlegen (Marvin oder Christoph, 30 Min)
  6. Christoph einladen mit kurzem Onboarding (15-30 Min): UI zeigen, Slash-Commands zeigen, 2-3 reale Use-Cases zusammen durchgehen
  7. 2 Wochen Pilot — Marvin schaut taeglich in Statistics + Logs, sammelt Drift-Faelle
  8. Auswertung nach 2 Wochen: was funktioniert, was muss System-Prompt-Anpassung, was Knowledge-RAG, was eigene Skills/Functions
  • open-webui-vf — App-Capability-File
  • kunde-openwebui-onboarding — Master-Pattern fuer Kunden-Setups
  • system-prompt-deploys-guardrails — die 5-Punkte-Pruefliste die wir bei jedem Deploy nutzen
  • ~/source/apps/open-webui-vf/prompts/vf-sonnet.txt — aktueller lokaler System-Prompt (mit Stammdaten, NICHT deployed)
  • ~/source/apps/open-webui-vf/infra/lib/open-webui-vf-stack.ts — CDK-Stack mit Modell-Filter + Web-Search (NICHT deployed)