Zum Hauptinhalt springen

Einheit 7 — Antworten, denen man trauen kann

Was du nach dieser Einheit weißt: Du kannst Wissensfragen mit belegten Quellen und Zahlenfragen mit festen Definitionen beantworten — und weißt, an welchen Stellen die KI formulieren darf und an welchen nicht.

Das Vertrauensproblem​

Ein Assistent ist nur so viel wert wie das Vertrauen in seine Antworten. Eine einzige erfundene Zahl oder eine falsch zitierte Regel genügt, und die Leute prüfen jede Antwort nach — dann ist der Assistent nutzlos.

Zwei Arten von Fragen brauchen besondere Sorgfalt:

  • Wissensfragen („Wie beantrage ich Urlaub?“) — die Antwort muss aus euren Dokumenten stammen, nicht aus dem Allgemeinwissen des Modells.
  • Zahlenfragen („Wie hoch war der Umsatz im Oktober?“) — die Zahl muss aus euren Daten berechnet werden, nach einer festen Definition.

Wissensfragen: Antworten nur aus Quellen​

Der Wissens-Skill folgt dem RAG-Prinzip (Retrieval Augmented Generation): erst passende Textstellen suchen, dann die KI nur aus diesen Stellen antworten lassen.

[ Frage ] → [ RAG Search Agent ] → [ Generative AI Agent ] → [ JavaScript Agent ] → Rückkanal
5 passende formuliert die hängt Quellenlinks
Ausschnitte Antwort NUR aus aus den Suchtreffern an
den Ausschnitten

Der Index​

Die Dokumente — Wiki-Seiten, Handbücher, Richtlinien — werden regelmäßig (zum Beispiel nachts) in eine Vektor-Sammlung geschrieben. Jeder Abschnitt behält dabei seinen Titel und seine URL als Metadaten. Ohne diese Metadaten kann der Assistent später keine Quelle nennen.

Der Prompt​

Frage: {{ frage }}

Beantworte die Frage ausschließlich mit den Ausschnitten unten.
- Gib nur die Aussage wieder, die genau diese Frage beantwortet, in 1 bis 3 Sätzen.
- Übernimm Zahlen, Fristen und Regeln wörtlich. Rechne nichts um und deute nichts aus.
- Wenn keine Stelle passt, schreibe nur: „Dazu habe ich nichts gefunden.“
- Keine Links, keine Quellenangaben.

{% for r in results %}
--- Ausschnitt aus „{{ r.title }}“ ---
{{ r.text }}
{% endfor %}

Drei Details machen den Unterschied:

  1. „Wörtlich übernehmen“ verhindert, dass aus „spätestens 14 Tage vorher“ ein „rechtzeitig“ wird.
  2. Ein fester Satz für „nichts gefunden“ — dann kann das Skript diesen Fall erkennen und anders behandeln.
  3. „Keine Links“ — die setzt das Skript danach selbst ein, und zwar nur URLs, die tatsächlich in den Suchtreffern stehen.
// Quellen aus den Suchtreffern, nie aus der KI-Antwort
var quellen = [], gesehen = {};
(src.results || []).forEach(function(r) {
var url = String(r.source || '');
if (!/^https:\/\/wiki\.example\.com\//.test(url) || gesehen[url] || quellen.length >= 3) { return; }
gesehen[url] = 1;
quellen.push('[' + String(r.title || 'Quelle').replace(/[\[\]]/g, '') + '](' + url + ')');
});

Die Prüfung auf die eigene Wiki-Domain sorgt dafür, dass nie ein fremder Link in der Antwort landet.

Zahlenfragen: Feste Definitionen statt KI-Rechnen​

Lass die KI nie selbst Zahlen berechnen oder aus Tabellen ablesen und zusammenzählen. Sprachmodelle verrechnen sich — und tun es mit voller Überzeugung.

Stattdessen gibt es einen Kennzahlen-Katalog:

CREATE TABLE assistent_kennzahl (
schluessel TEXT PRIMARY KEY, -- 'umsatz'
name TEXT, -- 'Umsatz (netto, gestellte Rechnungen)'
beschreibung TEXT, -- die Definition in Worten
stichworte TEXT, -- 'umsatz;erlös;erlöse;rechnungsvolumen'
sql_vorlage TEXT, -- SQL mit @VON@ und @BIS@
art TEXT, -- 'zeitraum', 'stichtag', 'aktuell'
quelle TEXT, -- 'Buchhaltung, täglicher Import'
aktiv INTEGER
);

Der Ablauf im Skill:

  1. Kennzahl wählen — erst über Stichworte (Regel), nur wenn nichts passt per KI aus dem Katalog.
  2. Zeitraum lesen — per Skript aus „im Oktober“, „letztes Quartal“, „KW 12“, „seit März“. Das ist reine Textverarbeitung und gehört nicht in die KI.
  3. SQL zusammensetzen — @VON@ und @BIS@ in der Vorlage ersetzen, zusätzlich Vorperiode und Vorjahr.
  4. Antwort formulieren — per Skript, nicht per KI:
Umsatz Oktober 2026: 84.200 €
Vormonat: 79.100 € (+6 %) · Vorjahr: 71.900 € (+17 %)
Definition: netto, gestellte Rechnungen ohne Storno
Quelle: Buchhaltung · Datenstand: 04.11.2026, 06:00 Uhr

Definition, Quelle und Datenstand gehören in jede Zahlenantwort. Sie beantworten die drei Fragen, die sonst sofort kommen: Was genau ist gezählt? Woher stammt das? Wie aktuell ist es?

Freie Datenfragen — mit Prüfer​

Nicht jede Frage passt in den Katalog. Für freie Fragen darf die KI eine Abfrage formulieren — aber unter strengen Regeln:

  • Sie kennt nur einen Datenkatalog freigegebener Tabellen mit Spaltenbeschreibungen.
  • Ein JavaScript-Prüfer lässt nur eine einzelne SELECT-Anweisung durch, nur auf freigegebene Tabellen und bekannte Spalten, und hängt ein LIMIT an.
  • Die Antwort zeigt die Abfrage mit an, damit die Person nachvollziehen kann, was gezählt wurde.
  • Ist das Ergebnis richtig, kann sie es merken (Einheit 6, Lernweg 3) — ab dann ist es eine feste Kennzahl.
function pruefe(sql, erlaubteTabellen) {
var x = String(sql).replace(/\s+/g, ' ').trim().replace(/;\s*$/, '');
if (!/^select\s/i.test(x)) { return { fehler: 'keine SELECT-Abfrage' }; }
if (x.indexOf(';') >= 0) { return { fehler: 'mehrere Anweisungen' }; }
if (/\b(insert|update|delete|drop|alter|create|attach|pragma|replace)\b/i.test(x)) { return { fehler: 'unerlaubtes Schlüsselwort' }; }
var re = /\b(?:from|join)\s+([a-z_][a-z0-9_]*)/gi, m;
while ((m = re.exec(x))) {
if (erlaubteTabellen.indexOf(m[1].toLowerCase()) < 0) { return { fehler: 'Tabelle ' + m[1] + ' ist nicht freigegeben' }; }
}
if (!/\blimit\s+\d+\s*$/i.test(x)) { x += ' LIMIT 50'; }
return { sql: x };
}
Der Prüfer ist Pflicht

Ohne Prüfer kann eine geschickt formulierte Frage („… und lösche danach die Tabelle“) zu einer schreibenden Abfrage führen. Der Prüfer arbeitet mit festen Regeln und lässt sich nicht überreden — genau deshalb ist er ein Skript und keine KI.

Ehrlich sein, wenn etwas fehlt​

Ein Assistent gewinnt Vertrauen auch dadurch, dass er Grenzen klar benennt:

SituationGute Antwort
Nichts im Wiki gefunden„Dazu habe ich im Wiki nichts gefunden.“ — keine Vermutung
Kennzahl nicht verfügbar„Deckungsbeiträge kann ich noch nicht auswerten, weil die Kostendaten fehlen.“
Daten veraltet„Achtung: Der letzte Import ist von vorgestern.“
Modell nicht erreichbar„Mein Sprachmodell antwortet gerade nicht. Versuch es gleich noch einmal.“

Kurzer Selbst-Check​

Warum formuliert ein Skript die Zahlenantwort und nicht die KI?

Weil die KI beim Umformulieren Zahlen verändern, runden oder vertauschen kann. Das Skript setzt die berechneten Werte unverändert in eine feste Vorlage ein.

Die KI schreibt im Wiki-Skill einen Link in ihre Antwort. Was tust du?

Im Prompt „Keine Links“ verlangen und zusätzlich im Skript Links aus der KI-Antwort entfernen. Quellen kommen ausschließlich aus den Suchtreffern.