Skip to main content

Guardrails & Safety Rails

PARA AGENTES DE IAChatGPTClaude

Camada de software composta por filtros determinísticos, validadores de esquema e políticas de segurança que interceptam prompts de entrada, comandos do sistema e respostas dos modelos para prevenir falhas, vazamentos e exploits.

1. Visão geral do conceito e problema sistêmico

O principal paradoxo na implementação de modelos de linguagem em produção reside no conflito entre sua flexibilidade probabilística e os requisitos determinísticos da segurança corporativa:

  1. Não-determinismo do comportamento: Mesmo fixando temperature=0, não há garantia absoluta de que o modelo não adicionará um campo extra ao JSON ou interpretará uma string como comando.
  2. Vulnerabilidade a Prompt Injection: Um atacante pode fazer com que o modelo ignore regras usando técnicas de evasão (por exemplo, codificação Base64, cenários hipotéticos ou prompts ocultos em páginas web).
  3. Riscos regulatórios e financeiros: O vazamento acidental de dados pessoais dos clientes (PII) ou a execução não autorizada de consultas SQL destrutivas acarreta responsabilidade direta para o negócio.

As Guardrails (Barreiras de Proteção) criam uma estrutura isolante em torno do modelo. Elas garantem que nenhuma solicitação perigosa chegue à LLM e que nenhuma ação inválida ou comprometida seja aplicada no sistema.

2. Taxonomia arquitetural e modelo mental

O sistema de guardrails divide-se em três perímetros críticos de verificação:

  • 1. Perímetro de Entrada (Input Guardrails): Filtragem e normalização da solicitação do usuário antes do envio à LLM:
    • Detecção de tentativas de invasão (Jailbreak / Prompt Injection Detection).
    • Anonimização de dados pessoais (PII Anonymization) conforme padrões GDPR.
    • Validação do orçamento de tokens e limitação da complexidade da solicitação.
  • 2. Perímetro de Interface de Ações (Tool & Action Guardrails): Controle antes da execução da ferramenta (Tool Call):
    • Análise AST de comandos de terminal: proibição de operadores destrutivos (rm -rf, mkfs, chmod 777).
    • Validação de consultas SQL: garantia da presença obrigatória de cláusulas WHERE em UPDATE e DELETE.
    • Restrições semânticas de acesso ao sistema de arquivos (Path Traversal Protection).
  • 3. Perímetro de Saída (Output Guardrails): Verificação da resposta gerada pelo modelo antes de ser exibida ao usuário:
    • Conformidade rígida com o esquema (Schema Conformance via Pydantic/Zod).
    • Detector de alucinações (Hallucination & Grounding Check contra fontes primárias).
    • Scanner de vazamento de segredos (chaves de API, tokens de autorização, IPs internos).

3. Pipeline técnico e mecânica interna

O processamento da solicitação através do sistema de Guardrails ocorre em 4 fases sequenciais:

  1. Ingress Sanitization (Sanitização na entrada): Padrões regex rápidos e scanners de entropia detectam tentativas de transmissão de segredos. Um classificador vetorial leve verifica a conformidade semântica do prompt de entrada com os tópicos permitidos (Topic Whitelisting).
  2. Constrained Decoding (Geração controlada): Se for necessário um formato estrito (por exemplo, JSON), utilizam-se mecanismos de amostragem baseados em gramáticas (Grammar-Guided Sampling). O modelo fisicamente não consegue gerar um token que viole o esquema sintático definido.
  3. Egress Verification & Scrubbing (Verificação e limpeza da saída): O resultado gerado passa por verificações de conteúdo tóxico, vazamentos da arquitetura interna do prompt e aderência aos fatos da base de conhecimento.
  4. Interception & Graceful Fallback (Tratamento de incidentes): Em caso de violação das regras, o sistema não falha abruptamente. Ele envia uma mensagem ao modelo solicitando a reescrita da resposta com explicação do erro (Self-Correction Loop) ou retorna ao usuário um fallback seguro pré-definido.

4. Cenários práticos de engenharia em produção

01. Proteção contra vazamento de PII e informações financeiras

Um assistente de chat de suporte bancário intercepta mensagens dos clientes. Antes do envio à API pública do modelo de nuvem, todos os números de cartão, IBANs e telefones são automaticamente mascarados com tokens ([CARD_REDACTED_1]) e desmascarados apenas para o cliente autenticado no caminho de retorno.

02. Controle determinístico de agentes de terminal

Um agente de código do tipo Claude Code ou Cursor recebe permissão para executar comandos bash. As guardrails fazem o parse da linha em uma árvore de sintaxe (AST) e bloqueiam qualquer tentativa de saída de rede via curl para listas de hosts não permitidas ou tentativas de alterar permissões de arquivos de configuração.

03. Garantia de lógica de negócios em agentes de e-commerce

Um agente autônomo de vendas tem permissão para aplicar descontos. A guardrail valida o argumento da função gerado: se o agente tentar aplicar um desconto superior a 15% ou definir um preço abaixo do custo, a transação é rejeitada no nível do validador, prevenindo perdas financeiras para a empresa.

5. Armadilhas, erros comuns e segurança

  • Cascata de falsos positivos (False Positives): Expressões regulares ou modelos de segurança excessivamente agressivos podem bloquear solicitações técnicas legítimas dos usuários (por exemplo, discussão de vulnerabilidades no código ou exemplos de comandos). É necessário monitoramento contínuo dos logs de solicitações bloqueadas e ajuste regular dos limiares de sensibilidade.
  • Overhead de latência (Latency Overhead): Executar uma LLM separada para avaliação de segurança a cada token dobra o tempo de resposta. Minimize chamadas síncronas de modelos pesados — a maioria das verificações deve ser determinística.
  • Evasão via fragmentação de tokens (Token Smuggling): Atacantes dividem comandos perigosos em pedaços (por exemplo, concatenação de strings ou uso de homoglyphs Unicode). Normalice o texto (Unicode Normalization NFC/NFKC) antes de passar pelos filtros.
/ Perguntas FrequentesSchema.org FAQPage

FAQ: Guardrails & Safety Rails

O prompt do sistema reside no mesmo espaço semântico de atenção do modelo que a entrada do usuário. Por isso, qualquer modelo de linguagem permanece vulnerável a ataques de Jailbreak, manipulações de papel (role-playing) e injeções indiretas. Uma proteção robusta deve ser externa, implementada como código determinístico ao redor do modelo, e não como um pedido dentro do prompt.
/ Links internos
Todos os termos