Drift-Threshold-Tuning
Wähle einen Workspace-Default, override pro Persona, sanity-check mit einem gelabelten Sample. Konkrete Zahlen für Support-, Brand-, Creative-Oberflächen.
Der Default engine.pipeline.drift_detection.threshold = 0.30 ist
ein kalibrierter Mittelweg. Verenge oder lockere pro Oberfläche.
Empfohlene Defaults
| Oberfläche | Schwelle |
|---|---|
| Customer-Support, regulierte Stimme, Healthcare | 0.20 |
| General-Product-Chat, brand-adjacent | 0.30 |
| Creative-Play, NPCs in Low-Stakes-Szenen | 0.45 |
Workspace-Default
await client.config.setItem({
key: 'engine.pipeline.drift_detection.threshold',
value: 0.20,
scope: 'workspace',
scopeId: 'ws_...',
});Per-Persona-Override
Der Runtime-Contract jeder Persona akzeptiert ein
driftDetection.threshold-Feld — überschreibt den Workspace-Default
nur für diese Persona.
Vor Rollout validieren
Lasse einen gelabelten Sample durch deine Kandidat-Schwelle laufen:
const replies = await fetchReplyCorpus(50); // deine letzten 50 prod replies
let truePositive = 0, falsePositive = 0;
for (const r of replies) {
const drift = await client.consistency.scoreReply({
personaId: r.personaId,
reply: r.content,
});
const flagged = drift.score >= 0.25; // dein Kandidat
if (flagged && r.humanLabel === 'off-voice') truePositive++;
if (flagged && r.humanLabel === 'in-voice') falsePositive++;
}Targets: TP ≥ 80 %, FP ≤ 10 %. Ziehe Schwelle nach oben, wenn FP hoch ist, nach unten, wenn TP niedrig ist.
Häufiger Fehler
Die Schwelle ohne action_on_alert = auto_recover zu verengen — du
spammst nur deine QA-Queue. Paare jede Absenkung mit dem Recovery-
Pfad oder akzeptiere das Alert-Volumen.