Somente Leitura Não é o Suficiente: Guardrails para Agentes de IA
Engenheiros seniores costumam dizer uma coisa para manter os agentes de IA seguros: dê a eles acesso de somente leitura.
Parece seguro. O agente pode investigar consultas lentas ou resumir esquemas sem quebrar nada.
Mas somente leitura não é um modelo de segurança. É uma limitação.
No momento em que seu agente precisa realizar um trabalho útil, o modo somente leitura o impede. Se um agente encontrar um índice ruim ou uma linha corrompida, ele não poderá corrigi-la. Você acaba com um assistente que aponta para um incêndio, mas não consegue pegar uma mangueira.
As equipes costumam desistir e conceder ao agente acesso de escrita. É aí que o perigo real começa.
A verdadeira questão não é "o agente deve escrever". A verdadeira questão é "como você governa essas escritas".
Não tente governar as escritas com instruções. Não coloque regras no prompt do sistema como "nunca execute um DROP TABLE".
O prompt injection torna essas regras inúteis. Um invasor pode usar uma linha de dados ou um comentário para enganar o agente e fazê-lo ignorar suas regras. Se o guardrail estiver na mesma janela que o agente, o agente pode argumentar para contorná-lo.
Você precisa de uma distinção entre escritas não governadas e escritas mediadas.
• Escritas não governadas: O agente decide executar um comando e o banco de dados o executa. O único controle é o próprio julgamento do agente. • Escritas mediadas: O comando passa por um checkpoint fora do agente. Esse checkpoint fica no caminho dos dados entre o agente e o banco de dados.
Uma escrita mediada funciona assim:
- O agente propõe uma instrução (statement).
- Um proxy ou plano de controle analisa a instrução.
- O proxy classifica o risco.
- O proxy decide se permite a execução ou se solicita a aprovação de um humano.
Essa abordagem protege você contra prompt injection. Uma instrução maliciosa pode enganar o agente para que ele escreva um comando DROP TABLE, mas não pode enganar o proxy. O proxy não lê a intenção do agente; ele apenas analisa o comando SQL real.
Use esta estrutura para manter a segurança:
- Permita automaticamente leituras seguras. Deixe os agentes executar consultas SELECT livremente para manter o trabalho ágil.
- Controle escritas de risco. Exija aprovação humana para DELETE, UPDATE ou alterações de esquema (schema).
- Registre tudo. Mantenha um registro imutável de quem propôs uma alteração e quem a aprovou.
Não dependa de réplicas de leitura para segurança. As réplicas ajudam na investigação, mas não podem aplicar correções. Para corrigir um problema de produção, você deve escrever no banco de dados primário.
A mediação permite que o agente seja útil enquanto mantém seus dados seguros.
Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi
