output ist. Das Gateway
führt sie aus, nachdem das Upstream-Modell geantwortet hat und bevor ein
einziges Byte Ihren Client erreicht.
Diese Seite behandelt speziell die Output-Stage: wie eine Completion geprüft
wird, was ein Block kostet und wie sich block und mask jeweils bei
streamenden Responses verhalten. Für die vollständige Engine — jeder
Regeltyp, jedes Feld, jede Route — siehe Guardrails.
1. Warum Teams zu Output-Guardrails für LLMs greifen
Das Modell ist der nicht vertrauenswürdige Teil der Schleife. Es kann ein Secret aus dem Prompt wiederholen, die E-Mail eines Kunden aus dem RAG-Kontext ziehen oder eine Behauptung halluzinieren, die Ihre Quellen nie gemacht haben. Nichts davon ist an der Input-Stage sichtbar, weil nichts davon existiert, bis das Modell geantwortet hat. Ein Output-Stage-Guardrail ist die Prüfung auf der Completion selbst. Eine Regel läuft an der Output-Stage, wenn ihrestage output (oder
both) ist. Das Gateway evaluiert den Antworttext des Modells gegen die
Policy, zeichnet jeden Match auf und lässt ihn dann entweder durch, redigiert
ihn oder lehnt ihn ab — exakt dieselben block- / mask- / flag-Actions,
die Sie auf Input verwenden, nur angewendet auf die Antwort.
Output-Regeln sind ein Superset-Anliegen, kein Ersatz. Die meisten
Policies prüfen
input, um Daten aus dem Prompt herauszuhalten, und
output, um abzufangen, was das Modell zurückgibt. Stage both hängt eine
Regel an beide Enden.2. Ein konkretes Beispiel — ein Secret in der Antwort blockieren
Erstellen Sie ein Guardrail in der Konsole (/console/guardrails), fügen Sie
eine Regel hinzu und hängen Sie es an einen Key an:
- Type: Secrets / Regex-Detektor
- Stage:
output - Action:
block
/v1/*-Traffic:
guardrail_blocked ab — der Client sieht
den geleakten Inhalt nie. Wenn sie sauber ist, geht die Antwort unangetastet
durch.
3. Was ein Output-Block kostet
Anders als ein Input-Block — der vor der Messung der Anfrage feuert — passiert ein Output-Block, nachdem das Upstream-Modell bereits gelaufen ist. Das Gateway übernimmt die Verbuchung für Sie:- Eine blockierte Completion gibt weiterhin HTTP 400
guardrail_blockedmit einer Nachricht zurück, die das Guardrail und die ausgelöste Regel benennt. - Kein Kontingent wird berechnet. Der Output-Block erstattet das vorab verbrauchte Kontingent zurück, nachdem die Antwort abgelehnt wurde, sodass der fehlgeschlagene Aufruf für Sie kostenlos ist, obwohl das Modell Tokens produziert hat.
- Die Anfrage wird als skip-retry markiert — das erneute Ausführen desselben Prompts würde einfach wieder blockieren, sodass das Gateway keinen Retry an einem anderen Channel verbrennt.
Das ist der wesentliche Unterschied zur Input-Stage. Ein Input-Block ist
kostenlos, weil die Messung noch nicht begonnen hat; ein Output-Block ist
kostenlos, weil das vorab verbrauchte Kontingent zurückerstattet wird,
sobald die Antwort abgelehnt ist. In beiden Fällen zahlt der Aufrufer nichts.
Siehe
den guardrail_blocked-Fehler.
4. Streaming — block vs. mask
Block wird bei streamenden Responses durchgesetzt; Output-Mask noch nicht. Hier ist, wie sich jeweils verhält:block — durchgesetzt bei streamend UND nicht-streamend
block — durchgesetzt bei streamend UND nicht-streamend
Bei einer nicht-streamenden Response wird die Completion vollständig
geprüft, bevor sie zurückkehrt. Bei einer streamenden Response
beobachtet ein Scanner die Deltas, während sie fließen; wenn eine
Block-Regel mittendrin feuert, kappt er den Stream — der Scanner
versiegelt, gibt eine kurze Ersatznachricht anstelle des Rests aus, und
der SSE-Channel schließt sich, bevor blockierter Inhalt den Client
erreicht.Bereits geflushte Bytes können nicht zurückgezogen werden, daher ist ein
Block best-effort auf dem, was bereits gestreamt hat, stoppt aber
zuverlässig alles nach dem Match. Für eine harte Garantie, dass nie ein
anstößiges Byte gesendet wird, verwenden Sie einen nicht-streamenden
Request.
mask — nur nicht-streamend (In-Stream-Masking auf der Roadmap)
mask — nur nicht-streamend (In-Stream-Masking auf der Roadmap)
Bei einer nicht-streamenden Response schreibt eine Mask-Regel die
Completion um — z. B. wird aus einer E-Mail in der Antwort
[EMAIL] —
und der bereinigte Text ist das, was Ihr Client empfängt.Bei einer streamenden Response redigiert eine Output-Mask-Regel die
Antwort heute nicht. Der Scanner evaluiert weiterhin jedes Delta und
handelt auf eine block-Entscheidung, aber der maskierte Text, den er
berechnet, wird nicht weitergeleitet — die rohen Deltas fließen
unverändert durch. In-Band-Streaming-Output-Rewriting ist auf der
Roadmap. Bis es ausgeliefert wird, senden Sie die Anfrage
nicht-streamend, wenn Sie möchten, dass eine Output-Mask die Antwort
tatsächlich redigiert.Action auf output | Nicht-streamend | Streamend |
|---|---|---|
block | lehnt die Antwort ab | kappt den Stream |
mask | redigiert die Antwort | noch nicht redigiert (Roadmap) |
flag | nur aufgezeichnet | nur aufgezeichnet |
5. Grounding — eine Treue-Prüfung an der Output-Stage
Eine erweiterte Regel ist von Natur aus output-förmig: Contextual Grounding. Einegrounding-Regel bewertet die Antwort des Modells gegen
die auf der Anfrage abgerufenen Quellen (Ihren RAG-Kontext) und feuert,
wenn die Treue unter einen Schwellenwert fällt (Standard 0.7). Paaren Sie
sie mit block, um untreue Antworten abzulehnen, oder mit flag, um die
Abweichung zu messen, bevor Sie durchsetzen. Sie rechnet als Judge-Sub-Zeile
ab, wie jede modellgestützte Regel. Die vollständigen Felder leben in
Guardrails.
6. PII Shield an der Output-Stage
Das PII Shield-Preset ist eine einzelnepii-Regel, Action mask,
Stage both. An der input-Stage ist es vollständig live — es schreibt
die Anfrage vor dem Modell um, streamend wie nicht-streamend. An der
output-Stage maskiert es nicht-streamende Completions, wie in
§4; bei einer streamenden Response redigiert
die Output-Mask die Antwort heute nicht (In-Stream-Output-Masking ist auf der
Roadmap).
An der Output-Stage rufen Sie also nicht-streamend auf, wenn Sie möchten,
dass PII Shield die Antwort tatsächlich redigiert. Siehe
PII Shield und
Masking-Formate.
7. Sehen, was gefeuert hat
Jede Output-Regel, die feuert, zeichnet einen Match auf — ihren Regeltyp, Action, Stage (output) und einen Detail-String — im
Workspace-Matches-Feed (GET /api/guardrail/match, offen für jedes
Member).
Der gematchte Teilstring wird nur aufgezeichnet, wenn der Log raw
content-Toggle des Guardrails an ist; er ist standardmäßig aus (die
datenschutzfreundliche Haltung), sodass Sie standardmäßig sehen, dass eine
Output-Regel gefeuert hat, nicht den sensiblen Text, den sie abgefangen hat.
Ein Fehlalarm wird mit POST /api/guardrail/match/:id/mark-fp (Admin)
markiert — behandeln Sie ihn als Tuning-Signal, nicht als Grund, die Regel zu
deaktivieren.
8. Wohin als Nächstes
Input-Stage
Das Spiegelbild — die Anfrage prüfen, bevor das Modell sie sieht.
Input-Masking ist vollständig live, einschließlich Streaming.
Actions
block, mask und flag im Detail — wann jede die richtige Wahl ist.
Streaming-Abdeckung
Die vollständige Matrix dessen, was bei streamend vs. nicht-streamend
durchgesetzt wird.
guardrail_blocked-Fehler
Die HTTP 400, die Kontingent-Rückerstattung und das skip-retry-Verhalten.
Verwandte Konzepte
Verwandte Konzepte
Bedrohungen, die dies adressiert
Bedrohungen, die dies adressiert
Vollständige Engine-Referenz
Vollständige Engine-Referenz
Guardrails — jeder Regeltyp, jedes Feld, jede
Route, einschließlich Grounding und der LLM-Judge.
