requests. Os System Guardrails cobrem a detecção de PII e de segredos sem um serviço externo.
Criar e vincular
O código define uma função chamada
evaluate que recebe log e retorna o veredito; o executor chama evaluate(log) pelo nome, portanto o ponto de entrada não pode ser renomeado. Funções auxiliares podem ser definidas em qualquer parte do código.
Vincule a verificação:
Objeto completo: Python Guardrail. Verificações de saída, incluindo as externas, não são executadas em respostas em streaming. Consulte Comportamento de execução.
Condição de aprovação
O veredito é comparado com a condição de aprovação configurada no guardrail:
Um guardrail reprovado bloqueia a solicitação. O status depende da superfície:
400 no endpoint Responses e no endpoint de chat completions compatível com a OpenAI, e 422 nos endpoints compatíveis com Anthropic e Google e nas superfícies Agents e Deployments. Um guardrail que excede o tempo limite retorna 408 nos endpoints do AI Gateway e em Deployments; na superfície Agents, um guardrail que não pode ser executado, inclusive por tempo limite, retorna 502 guardrail_execution_failed. Consulte Resposta de erro de guardrail.
Requisitos
Open Policy Agent
O Open Policy Agent (OPA) é um mecanismo de políticas de uso geral: as regras são escritas em Rego, e o servidor retorna uma decisão para a entrada que recebe via HTTP. Consulte a documentação do OPA para instalação e criação de políticas. Inicie o servidor e carregue a política. A API de dados escuta na porta 8181 por padrão:opa run --server aceita gravações não autenticadas em /v1/policies e /v1/data, portanto um mecanismo de políticas que o sandbox consegue acessar diretamente também pode ser reescrito por qualquer pessoa que consiga acessá-lo, incluindo outros autores de guardrails, cujo código é executado no mesmo sandbox. Execute-o atrás de um proxy que aceite apenas tráfego do sandbox e encaminhe somente a consulta de decisão (POST /v1/data/orq/guardrail/allowed), rejeitando qualquer outro caminho e verbo, em particular gravações em /v1/policies e /v1/data, conforme descrito em Requisitos; o guardrail chama o proxy, que guarda a credencial.
A política nega o texto enviado pelo guardrail quando ele corresponde a um padrão de injeção. is_string faz com que uma consulta sem texto seja uma negação, e default mantém a consulta respondível quando o corpo da regra é indefinido.
orq/guardrail.rego
- Os nomes do pacote e da regra correspondem ao caminho da consulta:
data.orq.guardrail.allowedé servido em/v1/data/orq/guardrail/allowed. - A regra usa a sintaxe do OPA 1.0. Em uma versão anterior, adicione
import future.keywords.if.
Python
False.
Qualquer mecanismo que responda via HTTP segue o mesmo formato. Troque a URL, o corpo da solicitação e o campo de onde o veredito é lido.
Provedores de guardrails de terceiros
Mapeie a resposta do provedor para a condição de aprovação. Um guardrail numérico é aprovado quando atinge ou ultrapassa o limite, portanto uma pontuação de risco, em que um valor maior significa mais risco, precisa ser normalizada para o intervalo de 0 a 1 e depois invertida; uma pontuação de segurança, em que um valor maior significa mais seguro, precisa apenas ser normalizada. Verifique a direção da pontuação do provedor antes de decidir se deve invertê-la. Chame o provedor pelo proxy descrito em Requisitos e substitua o host do proxy, o corpo da solicitação e o campo de pontuação pelos do provedor.Python
-1.0 bloqueie quando o provedor não puder ser acessado. Um provedor que retorna True ou False em um campo próprio pode ter esse valor retornado diretamente com uma condição de aprovação Boolean.
Provedores específicos
Cada framework é executado como um serviço, e a verificação o acessa via HTTP. Expanda um framework para ver o que é executado onde, o endpoint que o proxy precisa expor, o código do guardrail e a condição de aprovação a configurar.Guardrails AI, auto-hospedado com seu servidor de validação
Guardrails AI, auto-hospedado com seu servidor de validação
O que é executado onde. O framework valida o texto com um Guard, e o servidor Guardrails hospeda guards atrás de uma API HTTP. Execute esse servidor, ou reutilize um já implantado, em um local que o sandbox do Toqan Router consiga acessar, e o guardrail o chamará.O que o proxy precisa expor. O próprio endpoint de validação do servidor, com o nome do guard no caminho e o texto em Modos de falha. Um guard inacessível, uma resposta sem
llmOutput. O servidor responde com validationPassed, um booleano:O proxy guarda a credencial do servidor, portanto o guardrail não envia nenhuma. Consulte a API REST do servidor Guardrails para ver o schema completo.Código do guardrail. Defina a condição de aprovação como Boolean com True.
Python
validationPassed e um validationPassed que não é booleano retornam False. O nome do guard faz parte da URL, portanto um guard renomeado transforma todas as chamadas em falhas bloqueantes, em vez de aprovações silenciosas.Lakera, Guard API hospedada
Lakera, Guard API hospedada
O que é executado onde. Não há nada para implantar: a Guard API é hospedada, e o proxy na frente dela guarda a chave de API. O projeto indicado na solicitação seleciona a política que a analisa.Antes de executar o exemplo. Duas configurações do projeto determinam se o guardrail pode bloquear algo. Com a ação Modos de falha. Um projeto que não está no modo
detect, a Lakera informa as detecções em breakdown e retorna flagged como false para todas as solicitações, portanto nenhum guardrail pode agir com base nisso. O projeto precisa fazer a análise com a ação enforce. A role da mensagem determina quais detectores se aplicam, portanto a saída do modelo é enviada como assistant e a entrada como user.Consulte a referência da Guard API para ver o schema completo e as configurações do projeto.Código do guardrail. Defina a condição de aprovação como Boolean com True.
Python
enforce, um campo flagged ausente, um flagged não booleano e um proxy inacessível bloqueiam a solicitação. A verificação de action é o que mantém o guardrail confiável: sem ela, um projeto alterado para detect permitiria silenciosamente tudo o que o provedor detecta.Testar
- Teste o código no painel Playground do guardrail.
- Clique em Publish.
- Vincule o guardrail na superfície de destino.
- Envie tráfego e inspecione os resultados em Traces.

