Saltar para o conteúdo principal
Um guardrail de estágio de input filtra a requisição do chamador antes que ela chegue ao modelo. É o lugar mais barato para aplicar uma política de conteúdo: o gateway inspeciona o prompt em seu caminho de entrada e, se uma regra bloqueia, a requisição é rejeitada antes da medição — você não paga nada pela chamada. É aqui que você impede um segredo vazado, um campo de PII ou uma tentativa de injeção de sequer atingir o modelo upstream. Para o motor completo — cada tipo de regra, campo e rota — veja a referência de Guardrails. Esta página é o recorte focado no estágio input: o que roda antes do modelo, e por que um block aqui não custa cota.

1. Guardrails de input para apps de LLM, antes do modelo

Toda regra de guardrail carrega um estágioinput, output ou both. Uma regra input roda contra o texto da requisição no momento em que ele chega, a caminho do modelo upstream:
caller → [ input guardrail ] → metering → model → [ output guardrail ] → caller
Essa ordenação é o ponto. Uma regra de input vê o prompt antes de o gateway pré-consumir qualquer cota, então um block neste estágio é gratuito — a requisição nunca chega ao modelo e nunca cobra. Compare com o estágio de output, que filtra a resposta do modelo depois que ela volta (um block de output reembolsa a cota pré-consumida em vez disso).
As regras de input filtram a requisição do chamador. Se você também usa prompts do registro, a mensagem de sistema injetada é adicionada depois, no roteamento — então as regras de input veem as mensagens que sua app enviou, não o prompt injetado. As regras de output filtram a resposta de qualquer forma.

2. O que você pode rodar no estágio de input

Qualquer tipo de regra pode rodar em input. As razões mais comuns para gatear a requisição antes do modelo:

Mascarar PII no prompt

Uma regra pii com a ação mask reescreve entidades para tags tipadas (jane@acme.com[EMAIL]) para que o modelo upstream nunca veja o valor bruto. Veja PII Shield.

Bloquear segredos antes que vazem

Uma requisição que carrega uma chave de API ou credencial de nuvem é rejeitada na porta — pré-medição, sem chamada upstream. Veja Bloquear segredos.

Deter tentativas de injeção

O preset básico de Prompt-Injection combina detectores de keyword/regex com uma regra llm_judge para intenção de injeção. Veja Prompt injection.

Limitar o tamanho do prompt

Uma regra max_chars rejeita um prompt grande demais antes que ele cobre qualquer token. Veja Cost guardrails.
Os sete tipos de regra — keyword, regex, pii, max_chars, external, llm_judge, grounding — e as cinco ações block, mask, flag, annotate e spotlight todas se aplicam aqui. (spotlight envolve o texto não confiável correspondente em delimitadores para que o modelo o trate como dados, não instruções — uma defesa de prompt-injection no estágio de input; annotate anexa uma nota sem mudar o tráfego.) Uma exceção que vale conhecer: grounding mede a resposta em relação às fontes recuperadas, então é inerentemente uma verificação de estágio de output. Todo o resto se encaixa naturalmente no estágio de input.
O mascaramento no estágio de input está ativo hoje — streaming ou não. O gateway reescreve a requisição antes de o modelo vê-la em todos os caminhos. Mask de output redige apenas respostas não-streaming; a reescrita in-stream de output está no roadmap, então uma regra de mask ainda não redige uma resposta streaming. Block de output, em contraste, é aplicado nos dois casos — streaming e não-streaming (veja Cobertura de streaming).

3. Um exemplo concreto

Escreva a regra no console (sob sua própria sessão — config de guardrail precisa de Developer+), não com uma chave de relay. Adicione uma única regra input a um guardrail chamado secrets-shield:
{
  "type": "regex",
  "stage": "input",
  "action": "block",
  "pattern": "sk-[A-Za-z0-9]{20,}"
}
Vincule o guardrail a uma chave (defina guardrail_id, ou marque-o como padrão do workspace — veja Vincular a uma chave), depois chame o gateway com essa chave de relay sk-orca-...:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "Debug this: OPENAI_API_KEY=sk-abcdefghij1234567890"}
    ]
  }'
A requisição corresponde no estágio de input e é rejeitada com HTTP 400 guardrail_blocked antes de o gateway encaminhar qualquer coisa upstream:
{
  "error": {
    "type": "guardrail_blocked",
    "message": "request blocked by guardrail \"secrets-shield\": regex(...)"
  }
}
Veja o erro guardrail_blocked para o formato completo da resposta.

4. Por que um block de input não custa cota

Esta é a vantagem estrutural de pegar coisas no caminho de entrada. Um block no estágio de input fica antes do pré-consumo, então:
PropriedadeBlock no estágio de input
Status HTTP400 guardrail_blocked
Cota cobradaNenhuma — dispara antes da medição
Chamada upstreamNunca feita
RetryMarcada skip-retry — reexecutar bloqueia de novo
Como a requisição nunca chega a um canal, um block de input é marcado como skip-retry: reexecutar o mesmo prompt contra outro canal apenas bloquearia de novo e desperdiçaria esforço. O estágio de output difere — um block ali reembolsa a cota que o gateway já pré-consumiu. Mesmo 400, contabilidade diferente.

5. Resolução e fallback

Uma regra de estágio de input só roda se um guardrail efetivamente resolver na requisição. A resolução é explícita:
  1. O guardrail_id explícito da chave, se existe e está habilitado.
  2. Caso contrário, o guardrail padrão do workspace.
  3. Caso contrário, nenhum — a requisição é byte-idêntica à de um workspace sem política.
Um vínculo explícito nunca cai silenciosamente para outro. Desabilitar um guardrail vinculado é o botão de desligar — ele não cai para o padrão do workspace. (As políticas de firewall se comportam diferente aqui; veja Guardrails vs. firewall.)

6. Prove antes de publicar

Não vincule uma regra de input bloqueadora ao tráfego real na fé. Duas formas de validar primeiro:
Abra a aba Test no editor de guardrail, cole uma amostra, escolha o estágio input e rode. O sandbox avalia a política atual localmente — sem chamada upstream, sem cota — e retorna o veredito mais (para regras de mask) o texto renderizado. Veja Testes e eval.
Defina a ação como flag primeiro. Um flag não muda nada no tráfego — apenas registra um match — então você pode medir com que frequência uma regra dispararia em input real antes de mudá-la para block. Veja Ajustar falsos positivos.
Toda regra que dispara registra um match — tipo, ação, estágio e uma string de detalhe. A substring correspondente é registrada apenas quando Log raw content está ligado (desligado por padrão). Veja o Feed de matches e Logging e privacidade.

7. Para onde ir a seguir

O estágio de input impede que input ruim chegue ao modelo. Para gatear a resposta do modelo, combine-o com o estágio de output; para governar as chamadas de ferramenta de um agente, use o firewall. Leia a referência de Guardrails para o motor completo, ou o quickstart de segurança para conectar guardrails de input e o firewall em uma linha de base de agente.