1. Perché testare le policy di guardrail ai prima di collegare una chiave
Una content policy ha due modalità di fallimento, e tirano in direzioni opposte:- Miss — un attacco o una fuga sfugge perché nessuna regola è scattata.
- Falsi positivi — un prompt benigno viene bloccato o mascherato perché una regola è troppo ampia.
Entrambi gli strumenti girano interamente sulla tua sessione tramite la
management API (
/api/guardrail/*) — mai la chiave di relay. Valutano il testo
localmente e non inviano nulla upstream, quindi un’esecuzione di test non costa
quota di modello.2. La tab Test — un campione, verdetto istantaneo
Ogni editor di guardrail ha una tab Test. Incolla un campione, scegli uno stage (input o output) ed esegui la bozza corrente della policy. Ottieni la
decisione completa — blocked, mutated, il testo sanitized e l’elenco di
violations — così puoi dimostrare che una singola regola fa ciò che ti aspetti
prima di salvare.
La tab Test è per “questa singola regola ha fatto la cosa giusta”. Per misurare
una policy su centinaia di prompt in una volta, usa Eval.
3. La tab Eval — valuta una policy contro un corpus
La tab Eval esegue il tuo guardrail contro un corpus di campioni etichettati e riporta come ha ottenuto il punteggio: precision, recall e F1 complessivi e per categoria, più i campioni esatti che ha sbagliato. Usala per mettere a punto una rubricllm_judge, dimostrare che una regola di block cattura una famiglia di
attacchi noti, o catturare una regex troppo ampia prima che inizi a rifiutare il
traffico buono.
Un’esecuzione streama il progresso man mano (un evento per campione completato) e
persiste una riga di esecuzione che puoi riaprire più tardi —
queued → running → complete, con le rules snapshotate al momento dell’esecuzione
così che una modifica successiva al guardrail non riscriva mai il verdetto di
un’esecuzione vecchia.
Corpora inclusi
Set red-team e benigni incorporati nel gateway — prompt injection, jailbreak,
PII/segreti, multilingue, over-refusal. Nessun setup.
JSONL personalizzato
Carica il tuo set etichettato per misurare la policy contro le forme reali del
tuo traffico.
4. Com’è fatto un corpus (JSONL)
Un corpus è JSONL — un oggetto JSON per riga. Ogni riga è un campione etichettato: iltext da valutare, lo stage a cui appartiene e
l’expected_action che la policy dovrebbe produrre. Il runner confronta il
verdetto effettivo della policy con quella label per valutare l’esecuzione.
Riferimento dei campi
Riferimento dei campi
| Campo | Significato |
|---|---|
id | Unico per riga. Obbligatorio — le righe con id vuoto sono scartate come malformate. |
text | Il prompt o la completion da valutare. Obbligatorio. |
stage | input o output — su quale stage di regole far passare il campione. |
expected_action | block, mask, flag, o "" (benigno — nessuna azione attesa). |
category | Label libera che raggruppa le metriche per categoria. |
Le righe malformate sono tollerate, non silenziose
Le righe malformate sono tollerate, non silenziose
Una riga con JSON difettoso o un
id/text mancante viene saltata e
contata, non è fatale — un singolo typo non fa mai saltare l’intera
esecuzione. Il loader aumenta il suo buffer per prompt multi-riga lunghi, così
un campione con newline incorporati dentro una stringa JSON viene parsato bene.5. Corpora inclusi — set red-team, zero setup
Il gateway fornisce un catalogo di corpora curati che puoi eseguire immediatamente — ognuno porta la sua fonte, licenza, copertura linguistica e un’anteprima di campione nel selettore. Sono raggruppati in 11 categorie che coprono la superficie di attacco che il traffico reale vede:| Categoria | Cosa sonda |
|---|---|
prompt_injection | Override di istruzioni e submission di injection scritte da umani. |
jailbreak_single_turn | Jailbreak reali in-the-wild + un baseline accademico di comportamento. |
jailbreak_encoded_multiturn | Sonde base64 / ROT13 / leetspeak / payload-splitting. |
indirect_agent | Injection consegnata tramite output di tool a un agent che usa tool. |
multilingual | Prompt red-team di madrelingua in molte lingue, incl. low-resource. |
pii_secrets | Email, SSN, carte, IBAN, chiavi API, chiavi AWS, JWT. |
toxicity | Prompt di generazione tossica e contrasti di over-refusal. |
bias | Sonde di stereotipo e discriminazione. |
hallucination | Set avversariali di fattualità / fedeltà. |
hazardous_knowledge | Sonde di conoscenza dual-use chimica / biologica / cyber. |
over_refusal_benign | Prompt sicuri che sembrano non sicuri — la tua protezione contro le regressioni di falsi positivi. |
Il corpus incluso
owasp_llm_top10 è un set di test etichettato che copre le
famiglie di attacchi OWASP LLM Top 10 (prompt injection, jailbreak, output non
sicuro, esfiltrazione di dati) — è un corpus contro cui eseguire un eval, non un
pacchetto di compliance. Per i pacchetti di framework che materializzano le policy,
vedi compliance.6. Un esempio concreto — eval del preset PII Shield
Supponi di essere partito dal preset PII Shield (una singola regolapii,
mask) e di voler confermare che cattura le forme di identificatore che un modello
potrebbe emettere prima di legarlo a una chiave. Eseguilo contro il corpus incluso
pii_smoke.
Eval è un’azione a livello di lettura (POST /api/guardrail/:id/eval,
Member) — persiste una riga di esecuzione ma non muta alcuna policy:
expected vs got) così puoi
fare grep sul corpus e correggere la regola. Riaprila in qualsiasi momento
dall’elenco Runs (GET /api/guardrail/:id/eval/runs).
7. Corpora personalizzati — testa contro il tuo traffico
I set inclusi dimostrano che la policy gestisce attacchi noti. Per dimostrare che gestisce i tuoi prompt, carica il tuo JSONL. Ci sono tre modi per puntare un eval a un corpus, e si risolvono in quest’ordine:Upload ad-hoc (corpus_data)
Upload ad-hoc (corpus_data)
Passa un blob JSONL codificato base64 inline sulla richiesta di eval. Vince su
tutto il resto — itera su un set bozza senza salvarlo nel workspace.
Corpus salvato (corpus_id)
Corpus salvato (corpus_id)
Carica una volta tramite
POST /api/guardrail/eval/corpora (Developer+),
poi referenzialo tramite id nelle esecuzioni future. Il nome deve corrispondere
a ^[a-z][a-z0-9_]*$ e non può adombrare un nome incluso.Incluso (corpus_name)
Incluso (corpus_name)
Nomina uno dei corpora forniti, come in §6.
GET /api/guardrail/eval/corpora (Member); upload ed eliminazione sono
Developer+.
8. Leggere il punteggio
Il runner classifica ogni campione in una matrice di confusione e ne deriva le metriche principali:| Termine | Significato |
|---|---|
| Recall | Dei prompt che dovrebbero far scattare la policy, quanti l’hanno fatto. Recall basso = miss. |
| Precision | Dei prompt che la policy ha fatto scattare, quanti avrebbero dovuto. Precision bassa = falsi positivi. |
| F1 | La media armonica — un numero che punisce il tuning sbilanciato. |
9. Dove andare dopo
Tuning dei falsi positivi
Trasforma un elenco di failures in una policy più stretta e a minor rumore.
Streaming coverage
Quali combinazioni stage/azione tengono sul traffico SSE — verifica prima di
farvi affidamento.
Feed dei match
Una volta attivo, ogni regola che scatta atterra qui — la controparte di
produzione dell’eval.
Versioning
Confronta e fai il revert di una policy dopo che un eval ti dice che l’ultima
modifica ha regredito.
Pagine di guardrail correlate
Pagine di guardrail correlate
Concetti e minacce correlati
Concetti e minacce correlati
Riferimento completo del motore
Riferimento completo del motore
Guardrails — ogni tipo di regola, campo e rotta,
inclusa l’API di eval e corpora.
