Existe uma tensão no centro de qualquer ferramenta de agente de IA: quanto mais autonomia você dá, mais útil ele fica — e mais perigoso.
Eu uso Claude Code todos os dias. Ele edita arquivos, roda testes, faz deploys, instala dependências. E o problema que ninguém fala abertamente é que, na maioria das configurações, ele pode rodar literalmente qualquer comando no seu sistema.
O Problema Real
As ferramentas de agente têm sistemas de permissão. O Claude Code tem seis modos, listas de allow/deny, sandbox de sistema operacional. Parece suficiente até você tentar configurar de verdade.
O problema fundamental é que eles fazem matching de string, não de semântica. Uma regra como Bash(rm *) não distingue rm arquivo.txt de rm -rf /. Ela casa com o padrão textual, não com o que o comando faz. Usuários reportam precisar de mais de cem regras para cobrir os casos comuns — e ainda assim os comandos escapam pela combinação de pipes, expansão de shell e argumentos com aspas.
Quando o agente executa git status && rm -rf /, isso é uma string única. As regras de glob casam o todo ou nada.
Por Que Isso Importa Agora
Por muito tempo isso era um problema teórico. Agentes rodavam tarefas simples, em ambientes controlados, com supervisão constante. Hoje não.
Agentes de IA estão sendo usados em fluxos de trabalho reais: deploy de aplicações, manipulação de bancos de dados, automação de infraestrutura. A velocidade com que isso aconteceu deixou a camada de segurança para trás.
A sandbox de filesystem é ótima. Mas muitos workflows legítimos precisam de acesso à rede (chamadas de API, instalação de pacotes, deploys), ou a caminhos fora do workspace (configs compartilhados, chaves SSH para git). Quando você abre buracos na sandbox para uso legítimo, perde a proteção que ela dava.
O Que Falta
O que precisa existir não é mais uma lista de permissões. É um motor de avaliação que entende o que um comando faz, não apenas como ele se parece.
rm -rf / e rm arquivo.txt usam o mesmo binário. A diferença está nos argumentos. Um sistema de permissão sério precisa parsear o AST do comando, avaliar cada segmento de um pipeline independentemente, e entender o contexto — projeto, diretório, sessão.
Também precisa ser composável. Regras nomeadas, conjuntos reutilizáveis, presets compartilháveis entre times. Não cinco arquivos JSON concorrentes que se substituem em vez de se compor.
E precisa aprender. Depois de aprovar docker build vinte vezes no mesmo projeto, o sistema deveria sugerir aprovar automaticamente. Configuração estática não escala para fluxos de trabalho reais.
A Ironia
A ironia é que os agentes de IA já são bons o suficiente para causar dano real, mas as ferramentas de controle ainda estão no estágio de protótipo. A velocidade de adoção criou um gap perigoso.
Não acredito que a resposta seja desacelerar os agentes. A resposta é levar a infraestrutura de segurança a sério, com a mesma engenharia que se aplica ao próprio agente.
Freios não tornam o carro mais lento. Eles permitem que você dirija mais rápido com segurança.