01
Guardrail de entrada não é guardrail de saída
A confusão mais comum é achar que validar o prompt de entrada resolve o problema. Não resolve: são dois riscos diferentes em momentos diferentes. O guardrail de entrada protege contra o que o usuário manda (prompt injection, pedido abusivo, conteúdo proibido) e roda antes do modelo. O guardrail de saída protege contra o que o modelo devolve (formato inválido, alucinação, vazamento, ação perigosa) e roda depois do modelo, antes de a resposta chegar ao usuário, ao banco ou a uma tool. Uma entrada perfeitamente válida pode gerar uma saída perigosa, porque o modelo é probabilístico e não garante nada sobre o que produz.
O ponto de instalação importa: o guardrail de saída fica no caminho de retorno, envelopando a resposta do modelo como um interceptor. Nada que o modelo produz chega ao mundo externo sem passar por ele. A tabela abaixo separa os dois para deixar claro que um não substitui o outro.
| Dimensão | Guardrail de entrada | Guardrail de saída |
|---|---|---|
| Quando roda | Antes de chamar o modelo | Depois do modelo, antes do usuário/banco/tool |
| Protege contra | Prompt injection, pedido abusivo, PII na entrada | Formato inválido, alucinação, vazamento, ação perigosa |
| Ação típica | Recusar, sanitizar, rotear | Reparar, fazer retry, bloquear, fallback |
| Se falhar | Modelo recebe entrada ruim | Usuário recebe saída ruim (dano real) |
A regra prática: guardrail de entrada reduz a chance de saída ruim, mas nunca a elimina. A validação que de fato protege o usuário é a de saída, porque é a última antes do dano. Investir só na entrada é trancar a porta da frente e deixar a dos fundos aberta.