1. Onde os sistemas de IA autônoma quebram
A adoção corporativa de modelos de linguagem e fluxos agênticos expôs um ponto cego: muitas empresas ligam a IA direto no banco de dados e nas APIs operacionais, sem nenhuma camada de contenção no meio.
Software determinístico valida entrada por tipo e regra de compilador. Um modelo de linguagem opera por probabilidade. Isso o torna suscetível a três classes de falha que não existem no software tradicional:
- Alucinação — o modelo produz um dado plausível e falso, e o sistema a jusante o trata como verdadeiro.
- Prompt injection — direto (o usuário instrui o modelo a ignorar suas regras) ou indireto (a instrução maliciosa vem dentro de um documento, e-mail ou página que o agente leu).
- Privilégio excessivo — o agente tem acesso a mais ferramentas e mais dados do que a tarefa exige.
O nosso princípio de engenharia é que segurança não é um acabamento: é a fundação do fluxo de dados. Na prática, isso significa quatro camadas de contenção entre a entrada do usuário e qualquer alteração de estado no seu sistema.
2. As quatro etapas críticas de blindagem
- Entrada do usuário — sanitização e guardrails de escopo.
- Processamento interno — isolamento de memória e RAG com permissão por linha.
- Ação de ferramenta — validação estrita de schema antes de qualquer execução.
- Infraestrutura — execução isolada e trilha de auditoria imutável.
→ resultado: resposta confiável e ação auditada no banco de dados.
Etapa 1 · Sanitização de entrada e defesa contra prompt injection
Antes de qualquer conteúdo do usuário — WhatsApp, chat web, webhook de e-commerce — ser concatenado ao contexto do modelo, ele passa por inspeção determinística:
- Detecção de padrões adversariais: bloqueio de termos de bypass conhecidos
(
ignore all previous instructions,system override) e de caracteres invisíveis de Unicode usados para esconder instruções. - Classificação de intenção: um classificador barato valida se a mensagem está dentro do domínio antes de acordar o modelo principal — o que corta custo e superfície de ataque na mesma decisão.
Filtro de entrada sozinho não resolve. Ele reduz o volume de tentativas triviais, mas injeção indireta chega por documento indexado, não pelo campo de texto. As etapas 2 e 3 é que contêm o estrago — trate a etapa 1 como redução de ruído, não como perímetro.
Etapa 2 · RAG com isolamento de permissões
O vazamento de dado corporativo mais comum em assistentes internos não vem de invasão: vem do agente recuperando um documento ao qual o usuário que perguntou não deveria ter acesso.
- Row-Level Security no PostgreSQL acoplado aos embeddings em
pgvector: o agente só recupera vetores cujo rótulo de permissão (tenant, papel do usuário) bate com a credencial já validada de quem perguntou. - Criptografia em repouso dos chunks de texto armazenados em MinIO (compatível com S3).
A regra: a permissão é resolvida antes da busca vetorial, no banco, e não depois, no prompt. Instrução em linguagem natural pedindo ao modelo para "não revelar documentos restritos" não é controle de acesso.
Etapa 3 · Tool calling com schema estrito
O modelo nunca executa comando arbitrário. Ele emite apenas uma intenção estruturada, que passa por validação rígida antes de qualquer alteração de estado no banco ou no ERP.
import re
from pydantic import BaseModel, Field, field_validator
class ComandoConsultaEstoque(BaseModel):
"""Contrato estrito para a única ação que o agente pode solicitar."""
sku_produto: str = Field(..., max_length=20, description="Código SKU do produto")
quantidade: int = Field(default=1, ge=1, le=100, description="Quantidade solicitada")
@field_validator("sku_produto")
@classmethod
def validar_formato_sku(cls, v: str) -> str:
if not re.fullmatch(r"[A-Z0-9\-]+", v):
raise ValueError("SKU malformado ou contendo caracteres proibidos.")
return v
# entrada legítima VALIDO -> ABC-123 5 # tentativas rejeitadas na camada de tipagem BLOQUEADO -> "ABC'; DROP TABLE produtos;--" (injeção SQL) BLOQUEADO -> 'abc-123' (fora do padrão) BLOQUEADO -> quantidade: 999 (acima do teto) BLOQUEADO -> 'AAAAAAAAAAAAAAAAAAAAAAAAA' (estouro de tamanho)
Se o modelo tentar injetar SQL, caractere de escape ou parâmetro fora do catálogo, a validação falha na camada de tipagem, a execução é abortada e um incidente é registrado. O código acima foi executado com Pydantic 2.13 — a saída é a real, não ilustrativa.
Etapa 4 · Sandboxing, imutabilidade e auditoria
- Workers que fazem chamada de sistema rodam em contêineres efêmeros com privilégio reduzido
(
no-new-privileges: true, sistema de arquivos raiz em somente leitura). - Trilha de auditoria imutável: cada raciocínio, ferramenta acionada e decisão gera um registro assinado com carimbo de tempo — o que dá rastreabilidade para atender à LGPD e sustenta um processo alinhado aos princípios da ISO/IEC 42001.
Nota de transparência: alinhamento a princípios não é certificação. A CAS-L Tech não é uma organização certificada em ISO/IEC 42001; o que entregamos é a arquitetura de rastreabilidade que um processo de certificação exige como evidência.
3. O que isso muda no negócio
Adotar IA sem governança coloca a reputação da empresa em risco a cada conversa no WhatsApp e a cada chamada de API. As quatro camadas acima existem para que a resposta a "e se o modelo errar?" seja uma propriedade do sistema, não uma esperança.
Elas são construídas sobre componentes open-source — PostgreSQL, pgvector, MinIO, Docker — então o custo é de engenharia e infraestrutura, sem licença por assento. Veja os serviços onde esse desenho é aplicado.
Seus agentes de IA já passam por essas quatro etapas?
Diagnóstico preliminar de arquitetura e segurança de IA, sem custo, para mapear onde o fluxo atual não tem contenção.