Agente de código que pesquisa documentação, abre APIs e chama curl parece ganhar autonomia a cada versão. O detalhe menos vistoso é que autonomia também cria novas rotas de saída: um comando gerado pela ferramenta pode carregar mais contexto do que o desenvolvedor imaginou.
Foi isso que colocou privacidade no centro de uma discussão recente no GitHub. Em um relato público, um usuário afirmou que seu endereço de e-mail apareceu no cabeçalho User-Agent de requisições feitas durante buscas. A thread cresceu rápido porque outros participantes disseram ter encontrado comportamentos parecidos — e porque uma pessoa identificada como integrante do projeto explicou que o e-mail da conta havia sido disponibilizado ao modelo em certos contextos.
É importante tratar a discussão pelo que ela é: um caso público em apuração, com relatos de usuários e resposta do projeto, não um laudo independente sobre todas as instalações. Ainda assim, ela deixa uma lição útil para qualquer equipe que usa agentes para navegar e executar comandos: privacidade não pode depender apenas de uma instrução bem escrita.
O risco está na ponte entre contexto e efeito
Um e-mail salvo no perfil parece inofensivo até a ferramenta combinar duas coisas: acesso a esse dado e capacidade de escrever uma requisição. O User-Agent existe para identificar clientes HTTP; alguns serviços até pedem um contato em políticas de acesso. Mas uma conta pessoal não deveria virar contato externo por inferência, principalmente sem confirmação explícita.
Na resposta publicada na thread, um integrante do projeto descreveu justamente esse caminho: o modelo poderia incluir o e-mail disponível no contexto ao compor um comando. A equipe informou que planejava remover esse dado do contexto e mencionou uma proteção adicional para chamadas web e comandos no estilo curl. Comentários posteriores questionaram se a proteção cobria todos os caminhos, como scripts escritos e executados pela própria ferramenta.
Permissão para navegar não é permissão para divulgar identidade
Esse é o ponto que vale transportar para qualquer stack de IA. Uma permissão ampla como “pode buscar na web” mistura ações muito diferentes: consultar uma página pública, enviar um formulário, anexar um cabeçalho, criar um arquivo de script ou chamar uma API autenticada. Cada uma merece uma política própria.
O problema não é só a ferramenta errar uma vez. É a dificuldade de perceber o erro depois. Se a saída foi um cabeçalho HTTP, ele pode não aparecer na resposta final do agente. Por isso, o controle precisa estar perto do ato: no proxy, no firewall de saída, no hook de execução ou na camada que monta a requisição.
Quatro checagens que cabem no fluxo de desenvolvimento
- Separe identidade de contexto de trabalho. Não entregue ao agente e-mail pessoal, tokens, arquivos de configuração ou credenciais que ele não precisa para a tarefa.
- Use identidade técnica para automação. Quando um site exigir contato no
User-Agent, prefira um endereço de equipe ou caixa monitorada, aprovado para esse fim — não o e-mail privado de quem está no teclado. - Revise saídas de rede. Em ambientes sensíveis, registre domínio, método, destino e cabeçalhos permitidos. Redija segredos nos logs e bloqueie destinos fora da lista esperada.
- Teste a política como código. Não basta ter uma regra dizendo “não exponha PII”. Crie testes que tentem mandar e-mail, token ou caminho local em
User-Agent, URL, corpo e arquivo temporário.
Não delegue o freio de segurança ao prompt
Instruções ajudam, mas não são uma fronteira de segurança. Um agente pode interpretar mal o pedido, receber uma página maliciosa ou escolher uma forma inesperada de executar a tarefa. Se um dado não pode sair da máquina, a proteção precisa sobreviver mesmo quando o texto do prompt falha.
O caso não é motivo para abandonar agentes de código. É motivo para adotá-los como se adota qualquer automação com acesso externo: com escopo mínimo, identidade separada, auditoria e um caminho claro para bloquear o que não deveria sair. Quanto mais a ferramenta faz sozinha, menos razoável é deixar privacidade como detalhe opcional.