1. Por que filtrar unsafe ai output no estágio de saída
A filtragem de input captura um prompt ruim. Ela não consegue capturar uma resposta ruim: um modelo induzido a sair da política, um fine-tune com guardrails embutidos mais fracos, ou um prompt perfeitamente razoável que produziu uma conclusão irrazoável. O estágio de saída é onde você afirma “independentemente do porquê, este texto não sai do gateway”. Uma regra de gateway dispara deterministicamente e se aplica igualmente a cada modelo atrás da sua chave. E toda regra que dispara aterrissa no feed Matches do workspace — tipo de regra, ação, estágio — de modo que você tem uma trilha de auditoria do que foi capturado e do que foi deixado passar.A defesa vive no gateway, não na sua app. Edite o guardrail e a mudança
entra em vigor na próxima chamada para cada chave anexada a ele — sem
redeploy, sem mudança de SDK. Sua app continua chamando
/v1/chat/completions exatamente como antes.2. As duas maneiras de capturá-lo
Combine uma denylist determinística com um juiz semântico para defesa em profundidade.Literal — keyword / regex (latência zero)
Literal — keyword / regex (latência zero)
Uma regra
keyword é uma correspondência de substring case-insensitive;
uma regra regex é um padrão RE2 (tempo linear, sem backreferences).
Ambas rodam no hot path sem chamada de rede — ideal para uma lista
conhecida de palavras banidas, uma denylist de concorrentes, ou um padrão
estrutural (um token de chat-template vazado, uma frase definitiva como
“you are entitled to damages”).Semântico — llm_judge (captura o que nenhum regex consegue)
Semântico — llm_judge (captura o que nenhum regex consegue)
Uma regra
llm_judge avalia a resposta contra uma rubrica que você
escreve usando um modelo no seu workspace — toxicidade, tom fora da
marca, conselho fora da política que nenhuma lista literal captura. Ela
carrega um judge_timeout_ms, é fail-open por padrão (um erro do
juiz é registrado e a resposta continua), e seus tokens são cobrados como
uma sub-linha de juiz. Veja a
referência do LLM judge.3. Um exemplo concreto — bloquear tóxico, mascarar fora da marca
Um único guardrail de estágio de saída que bloqueia uma resposta tóxica semanticamente e mascara termos de marca banidos no que sobrar:/console/guardrails → New guardrail,
adicione as duas regras e anexe-o a uma chave a partir do editor de
Token (o vínculo vive na chave como guardrail_id). A configuração roda
na sua sessão de console, não na sua chave de relay; apenas a chamada
/v1/* abaixo usa uma chave sk-orca-....
guardrail_blocked. Se ela está limpa mas menciona um termo banido, esse
trecho é renderizado como uma redação tipada e o resto flui.
4. Comece a partir de um preset
A biblioteca de templates New guardrail ship pontos de partida prontos nas categorias Safety, Brand e Compliance. Um preset é uma semente — aplique-o, depois edite livremente.| Categoria | Preset de estágio de saída para começar |
|---|---|
| Safety | System-Prompt Leak Detector (output), Strong System Prompt Leak — sinalize/bloqueie respostas que ecoam tokens de system-prompt ou chat-template. |
| Brand | Profanity Filter (mask) — roda em ambos os estágios e mascara palavras na denylist na resposta. (Os presets Profanity / Brand Safety e Competitor Mentions no estilo block são sementes de estágio de input; redirecione uma cópia para output se você quiser que filtrem a resposta.) |
| Compliance | Legal Disclaimer Enforce — sinalize respostas dando conselho jurídico/financeiro definitivo para revisão da equipe. |
5. Streaming: a ressalva que importa
Se uma regra de saída é aplicada ao vivo depende da ação e de se você faz streaming.| Ação | Não-streaming | Streaming |
|---|---|---|
block | Resposta retida; HTTP 400 guardrail_blocked | O scanner corta o stream em pleno voo e emite uma mensagem de substituição — o conteúdo bloqueado nunca chega ao cliente |
mask | Correspondência redigida no texto retornado | Apenas não-streaming hoje; a reescrita in-band do stream está no roadmap |
flag | Registra uma correspondência, não muda nada | Registra uma correspondência, não muda nada |
6. Formato de política recomendado
Sobreponha três regras em um guardrail
-
keyword/regexemoutput— captura de latência zero para termos banidos conhecidos e padrões estruturais. -
llm_judgeemoutput— captura semântica de toxicidade / fora da marca / fora da política para o que a lista literal perde. -
Faça o rollout via
flagprimeiro, observe o feed Matches, depois promova parablockquando a taxa de falso-positivo for aceitável. Veja Modos de enforcement.
Referência de Guardrails
Referência completa para tipos de regra, ações, estágios, o LLM judge,
presets, o eval harness e o feed Matches.
Exfiltração de dados
Impedir que dados sensíveis saiam na resposta de um modelo ou em uma
chamada de ferramenta.
