CODIP · Forschungswerkstatt / Chatbot-AG

renate.chat

der KI-Assistent der AusbilderInnen Community
»10 % KI, 90 % verteilte Systeme.«
Torsten Goerke — CODIP, TU Dresden · 2026
01 / 20
Wo wir stehen

renate.chat — drei Kapitel

renate.chat ist der Wissensassistent der AusbilderInnen-Community (AuCo) — ein CODIP-Projekt mit HWK Dresden und KOMPASS gGmbH für Fragen rund um die Berufsausbildung.

Act 1

Der Garten

  • Renate. Ein Name schafft Verantwortung.
  • Jede Oberfläche hat genau einen Metapher-Owner.
  • pond_object · PicnicWorkflow · drain — Namen sind Produktionscode.
Act 2

Durability

  • Restate: jeder Schritt wird zwischengespeichert, Absturz → Neustart ohne Fehler.
  • Hybrides Retrieval: Embed → Topic-Filter → Rerank.
  • Eval-Gate: nichts deployed ohne bestandenen Lauf.
Act 3

Demo

  • Live-Abfrage mit Herkunftsnachweis.
  • /picnic: URL → Lernhappen im Teich.
  • Expert Digest: drain → Community, human-in-the-loop.
02 / 20
Act 1

Der Garten

Warum Metaphern keine Dekoration sind.
03 / 20
Der Name

Renate.

Nicht "AI Chat", nicht "Assistent". Personas sind ein UX-Prinzip: ein Name schafft Verantwortung — und stellt eine Beziehung her.

  • Warum das zählt: sonst ist es schwer, über technische Systeme im Allgemeinen — und über KI im Speziellen — zu sprechen.
  • Jede Antwort zeigt ihren Herkunftsnachweis — den Lernhappen, aus dem sie kommt.
  • Pond · Picnic · Shed · Rundholz — die Garten-Vokabeln sind Produktionscode-Identifier, keine Marketingbegriffe.
pond-deep
pond-mid
lily-sage
lily-pale
birdhouse
"A developer reading the codebase without the design document can still orient — because the metaphor carries information."
Metaphor zones diagram
Jede Oberfläche hat genau einen Metapher-Owner. Nichts schwimmt frei.
04 / 20
Erfahrungswelt-geleitet

SECI, nachträglich passend

Der Garten entstand, weil Ausbilderinnen Fragen hatten — nicht, weil wir mit Nonaka & Takeuchi angefangen haben. Praxis zuerst, Theorie danach.

  • Renate wurde als Ingenieursarbeit gebaut. SECI passt hinein — nachträglich, nicht als Plan.
  • Trotzdem komplementär: renate.chat ist ein dokumentiertes Fallbeispiel für den HAC-SECI-Innenzyklus in Produktion.
"Renate didn't design for SECI, but it exemplifies it."
SECI and garden mapping
SECI-Spirale ↔ Garten-Momente, ohne Umbenennung erzwungen.
05 / 20
Act 2

Durability

"10% AI — 90% distributed systems."
06 / 20
Der Wendepunkt

Zwölf Monate Chatbots, einer pro Monat

Liz, Luc, Lucy, Klaus, Werner — jeder eine andere Frage: welches Modell, welches Framework. Die Antworten waren mittelmäßig.

  • Der Wendepunkt: nicht mehr "welches Modell?", sondern "wie sieht der Teich eigentlich aus?"
  • Die Wissensbasis war einmalig importiert und wurde seitdem nicht aktualisiert — dabei wird sie laufend von AP6 gepflegt und erweitert.
"Garbage in, mediocre out."
Evolution timeline
Zwölf Monate, ein Name pro Monat — bis Renate.

Eine KI ist nur so gut wie ihre Wissensorganisation.

07 / 20
Das Rückgrat

Verlässlich schlägt schnell

Ich hätte Renate mit Token-Streaming schneller wirken lassen können — das ist der Standard-Trick. Ich habe mich bewusst dagegen entschieden.

"Eine Antwort, die mitten im Satz abreißt, ist schlimmer als eine, die fünf Sekunden länger braucht."
  • Restate persistiert jeden Schritt im Hintergrund (Durable Execution) — fällt ein Dienst aus, setzt das System genau dort fort. Die Nutzerin sieht eine Verzögerung, nie einen Fehler.
  • Kein Token-Streaming — Durability vor gefühlter Geschwindigkeit. Eine Designentscheidung.
Architecture diagram
Browser → auth_proxy → Restate → auco_service → drain.
08 / 20
Compliance-Blick

Wer sieht was, und wo liegt es?

Dieselbe Architektur, durch die Datenschutz-Brille: welche Station bekommt was zu sehen, und wo liegen die Daten aktuell?

  • drain.duckdb ist die einzige Komponente mit echtem Personenbezug (user_id + Fragetext) — aktuell noch auf DigitalOcean, Migration auf die TUD-VM geplant.
  • pond.duckdb (Lernhappen) und die externen Dienste (ScaDS, Discourse, Yellow Pages) sind unkritisch oder nur mit übertragenem Query-Text.
Datenfluss- und Datenschutz-Diagramm
Nutzerin → auth_proxy → Restate → ChatSession → {ScaDS, pond_object, shed}; drain.duckdb separat markiert.
09 / 20
Durable Execution — was Restate ist

Ein Notizzettel für jeden Schritt

Restate ist die Software im Hintergrund, die sich nach jedem Arbeitsschritt merkt, wie weit sie gekommen ist.

① embed
② suche
rerank
läuft …
antwort
  • Ein Vorgang wie "Frage beantworten" läuft durch mehrere Schritte: einbetten, suchen, neu sortieren, antworten.
  • Nach jedem abgeschlossenen Schritt schreibt Restate mit, was passiert ist — bevor der nächste beginnt. Genau das ist mit "persistiert" gemeint.
  • Stürzt der Prozess mittendrin ab, beginnt er nicht bei Schritt ① — sondern genau dort, wo er aufgehört hat.
  • Von Zeit zu Zeit führen wir ein Picknick durch: der PicnicWorkflow läuft nach demselben Prinzip — nur Human-in-the-loop, dafür langsamer.
Restate.dev nennt das selbst den "Happy Path": man schreibt nur den Idealfall — Restate sorgt dafür, dass er auch nach einem Absturz eintritt.
10 / 20
Hybrides Retrieval

Retrieval Pipeline Internals

Embed → Topic-Filter → Rerank

Drei Stufen: Embedding (Ähnlichkeitssuche), Themenfilter (LDA), Reranker für die Feinsortierung.

  • Qwen3-Embedding-4B — das Embedding-Modell für die Ähnlichkeitssuche, läuft über ScaDS.
  • MALLET (MAchine Learning for LanguagE Toolkit) — das Werkzeug hinter dem LDA-Themenmodell: klassisches, statistisches ML, kein LLM.
  • bge-reranker-v2-m3 — der Reranker für die Feinsortierung der Kandidaten.
  • In v0.1.6 waren alle vier Modi identisch — die LDA-Tabelle war im falschen Vektorraum gebaut. Das ist behoben.
  • Aber nicht jede dieser drei Stufen hat sich am Ende bewährt, wie sich zeigen wird — dazu gleich mehr, beim Eval-Gate.
Retrieval stack diagram
253 Lernhappen → 20 Kandidaten → Themenfilter → Top-3.
11 / 20
Das Eval-Gate

Genau die richtigen Probleme

Das Eval-Gate blockiert jeden Deploy, dessen Kriterien nicht erreicht sind. Das bremst — mit Absicht.

"Verursacht das nicht ständig Probleme? — Ja. Aber genau die Art, die ich sehen will. Und lösen kann."
  • KI-Systeme sind massiv verteilte Systeme, deren nutzerseitige Affordanzen noch nicht vollständig erkundet sind.
  • Jeder Eval-Lauf ist eine Spekulation: Spiegelt unsere Entwickler-Intuition über Nutzerbedürfnisse noch das tatsächliche Verhalten des Systems?
  • In klassischer Software ist das der Abnahmetest — die Verhaltensseite der Testsuite. Bei KI-Systemen ist "Abnahme" noch viel schwächer definiert.
  • v2026.06.2 zertifizierte Baseline (MRR@5 0,833, Top-1 83,3 %) · Gate besteht weiter bis zur aktuellen v2026.06.8.
Eval gate diagram
Pass → tag → deploy. Fail → untersuchen, fixen, erneut laufen lassen.
12 / 20
Explorative Forschungsprototypen

Was bleibt?

In sechs Monaten wird sich niemand mehr für renate.chat als Produkt interessieren. Diese Lineage — wie das Messinstrument sich entwickelt hat — ist, was bleibt.

v0.1.4

nomic-embed-text

2026-06-11 · MRR@5 0,812 · Top-1 79,2 %

Gute Retrieval-Werte — aber 0 % Ctrl-Refusal. Das System konnte "gehört nicht hierher" nicht erkennen.

v0.1.5

Wechsel zu Qwen3-Embedding-4B

2026-06-11 · Gate ✗ fällt durch (Refusal 29,2 %)

Nicht die Retrieval-Qualität war schuld — ein stiller Bash-Bug (ungeschütztes grep unter set -euo pipefail) hatte die Schwelle auf 0,50 statt 0,65 zurückgesetzt.

v0.1.6

Schwelle kalibriert (0,65)

2026-06-11/12 · Ctrl-Refusal 0 % → 80 %

Aber alle vier Retrieval-Modi weiterhin identisch — LDA-Dim-Mismatch und erzwungenes Reranking verdeckten jedes echte Signal. Der eigentliche Vergleich war noch gar nicht möglich.

v2026
.06.2

Parallelitäts-Bug behoben (ev4l)

2026-06-17 · erster echter Modi-Vergleich

plain gewinnt (83,3 % Top-1) — Reranker und LDA-Filter verschlechtern beide. Sechs Wochen, um eine ehrliche Messung überhaupt erst möglich zu machen.

v2026
.06.8

Docker-Umstieg

aktuell · Baseline unverändert, Gate besteht weiter

Die Messung hält auch über eine Infrastruktur-Migration hinweg stand.

Wie der Garten in Akt 1: auch das hier begann als Ingenieursarbeit. Jede Version hat einen Fehler im Messinstrument gefunden, nicht im Produkt — daraus wurde erst im Nachhinein echte Forschung. Renate ist das Vehikel, nicht das Ziel.
13 / 20
Gemessen, nicht vermutet

Weniger Stufen gewinnen

Die Lineage hat es eben gezeigt: nicht jede Stufe hat sich bewährt. Hier der Beleg im Detail — 24 Fragen, Lauf vom 2026-06-17.

  • Reranker (zweite Sortierstufe): Top-1 fällt von 83,3 % auf 70,8 % — echte Treffer werden zu Fehlanzeigen. Bleibt deaktiviert.
  • LDA-Themenvorfilter: Top-1 fällt auf 50,0 % — die 10 gelernten Themengrenzen sind zu grob für Lernhappen, die mehrere Themen berühren. Bleibt deaktiviert.
  • Embed-only (plain) ist die Baseline geblieben: MRR@5 0,833, keine Fehlanzeigen.
plain (embed-only)✓ aktiv
83,3 %
+ Reranker✗ deaktiviert
70,8 %
+ LDA-Filter✗ deaktiviert
50,0 %
+ LDA + Reranker✗ deaktiviert
45,8 %
Top-1-Trefferquote · eval-baseline-v2026.06.2.md
14 / 20
Act 3

Demo

Live. Oder: eine Karte des lebendigen Systems.
15 / 20
Live-Abfrage

"Renate schaut nach …"

Renate thinking state 1
1

Restate-Durability. Die Ladeanimation zeigt: ein Schritt läuft gerade und wird persistiert. Fällt der Service aus, setzt Restate beim letzten abgeschlossenen Schritt fort — die Nutzerin sieht eine Verzögerung, keinen Fehler.

Renate answer with source chips 2
2

Herkunftsnachweis. Zwei Quellen-Chips, canonical_id-dedupliziert, klickbar zurück zur ausbilderinnen-community.de. Nicht "eine KI hat das gesagt" — "dieser Lernhappen hat das gesagt."

16 / 20
Zurück zur Theorie — kurz

GRAI: generativ vs. rezeptiv, sichtbar gemacht

GRAI (Böhm & Durst, 2025) fragt in jeder SECI-Phase: wer spielt die generative (wissenserzeugende) und wer die rezeptive (wissensverarbeitende) Rolle — Mensch oder KI?

  • Eben, bei Renates Antwort: das System war generativ — der Lernhappen, aus dem die Antwort kam.
  • Der Quellen-Chip macht diese Rolle sichtbar und prüfbar: nicht "eine KI hat das gesagt", sondern "dieser Lernhappen hat das gesagt".
  • Die Ausbilderin bleibt rezeptiv — aber informiert, nicht ausgeliefert.
Der Chip ist GRAIs generativ/rezeptiv-Unterscheidung — nicht nur eine Quellenangabe, sondern die Theorie, sichtbar im Produkt.
Renate answer with source chips
Derselbe Quellen-Chip von eben — jetzt durch die GRAI-Brille.
17 / 20
Beim Picknick

/picnic — von URL zu Lernhappen

Eine URL rein, ein neuer Lernhappen im Teich. Fetch → chunk → embed → write, jeder Schritt persistiert.

  • Human-in-the-loop, aber langsam — das läuft nicht bei jeder Frage, sondern von Zeit zu Zeit, angestoßen von einer Praktikerin.
  • Stürzt der Workflow mittendrin ab, geht es beim Neustart genau dort weiter, wo er aufgehört hat — die URL wird nicht noch einmal abgerufen, der Text nicht noch einmal eingebettet.
  • SECI-Externalisierung, buchstäblich: eine Praktikerin findet etwas Wissenswertes, es wird Teil der Infrastruktur. 🪷 274 Lernhappen und wachsend.
GRAI, noch einmal: auch hier ist die KI generativ — sie baut den Lernhappen. Die rezeptive, wissensverarbeitende Rolle liegt bei der Ausbilderin, nicht bei der KI.
Picnic ingest workflow
VOR → PicnicWorkflow (Restate) → NACH. Teichzähler live.
18 / 20
Der Kreislauf schließt sich

drain → Digest → Community

Einmal pro Woche liest der Expert Digest aus dem drain: was wurde gefragt, was hat geholfen, wo hakt es. Daraus wird eine Zusammenfassung, die zurück in die Community gepostet wird.

  • Human-in-the-loop ist Designentscheidung, nicht Einschränkung: ein Mensch liest den Digest und entscheidet, was davon tatsächlich gepostet wird — nicht Renate selbst.
  • SECI: drain = Prüfen, Digest = Internalisierung, Community-Post = Sozialisierung.
  • Auch der Digest läuft als eigener Restate-Service — dieselbe Durability wie bei der Anfrage-Pipeline und beim PicnicWorkflow.
Der Kreislauf schließt sich: aus einer Frage wird eine Antwort, aus der Antwort ein Digest, aus dem Digest wieder Wissen für die Community.
Expert digest cycle
1.378 Zeilen · DuckDB → wöchentlicher Digest.
19 / 20
Fragen?

Torsten Goerke — CODIP

renate.chat
20 / 20