Saltar para o conteúdo

Guias

Agentes de IA seguros em revisão de código, testes e deploy

· 7 min de leitura

Os agentes de IA ajudam as equipas de engenharia quando assumem tarefas restritas e repetitivas, como uma primeira revisão de código, a estrutura inicial de testes e as tarefas de rotina de uma release, com ferramentas limitadas e uma pessoa a aprovar cada alteração. O agente deve apresentar um plano antes de agir, registar cada chamada de ferramenta e entregar o trabalho sob a forma de diffs. Antes de alargar o seu âmbito, convém testá-lo com exemplos reais retirados do próprio histórico da equipa.

Começar por tarefas repetitivas, verificáveis e de baixo risco

As melhores primeiras tarefas para um agente são as que a equipa já faz da mesma forma todas as semanas e consegue verificar depressa. Se um engenheiro não consegue perceber em menos de um minuto se o resultado está certo, o agente cria trabalho de revisão em vez de o poupar.

Alterações a dados de produção, alterações de infraestrutura e tudo o que seja irreversível devem esperar até o agente ter provas dadas em trabalho mais seguro.

  • Primeira revisão de pull requests: testes em falta, padrões de risco, nomes pouco claros, problemas de estilo
  • Geração de testes para funções existentes, sobretudo casos-limite e testes de regressão para bugs corrigidos
  • Pull requests de atualização de dependências, com um resumo de cada changelog
  • Notas de versão redigidas a partir dos pull requests integrados
  • Triagem de execuções de CI falhadas, agrupando as falhas e apontando o commit provavelmente responsável

Escolher a camada certa: API do modelo, framework de agentes ou ferramenta de workflow

Chamadas diretas às APIs da OpenAI ou do Anthropic Claude com utilização de ferramentas bastam para uma tarefa única e bem definida. O LangChain acrescenta integrações e blocos de construção comuns, e o LangGraph modela um agente como um grafo explícito de passos com estado partilhado, o que torna mais fácil raciocinar sobre ramificações, novas tentativas e pontos de aprovação humana.

O n8n serve para tudo o que liga o agente ao resto: disparar a partir de um webhook do GitHub ou do GitLab, chamar o modelo, publicar um comentário de revisão, notificar um canal. Uma divisão habitual é deixar a orquestração ao n8n e o passo de raciocínio em código, onde pode ser versionado e testado como o resto do software.

Na NorthStar Network, os nossos engenheiros criaram ferramentas internas baseadas em IA que automatizavam tarefas de engenharia recorrentes para a equipa de ferramentas da plataforma.

Dar ao agente apenas as ferramentas de que precisa

Um agente só pode causar danos através das suas ferramentas, por isso a lista de ferramentas é o principal controlo de segurança. Cada ferramenta deve ter uma finalidade restrita e entradas validadas, em vez de se entregar ao agente uma shell genérica ou um token de API com permissões amplas.

Tudo o que o agente lê, incluindo o texto dos tickets, os comentários no código e as páginas web, deve ser tratado como entrada não fiável. Instruções escondidas num ficheiro podem tentar desviar o agente, um risco conhecido como prompt injection, e são os limites apertados das ferramentas que impedem essa tentativa de causar danos.

  • Só leitura por omissão: ler ficheiros, diffs e registos de CI
  • Acesso de escrita limitado a um branch de trabalho, nunca ao branch principal nem à produção
  • Credenciais separadas e de curta duração para cada agente, com as permissões mínimas
  • Nenhum deploy direto: o agente abre um pull request e o pipeline habitual faz o deploy depois da aprovação
  • Uma lista de comandos autorizados para correr os testes, executados num contentor isolado

Primeiro o plano, depois a ação, com cada chamada de ferramenta registada

O agente deve produzir um plano antes de alterar seja o que for: que ficheiros vai ler, o que pretende alterar e como vai verificar o resultado. Os planos de baixo risco podem correr automaticamente. Tudo o que mexa em código partilhado espera que uma pessoa aprove o plano.

Cada chamada de ferramenta deve ficar registada com as entradas, as saídas, a hora e a tarefa a que pertence. É com esse registo que se depura um mau resultado, se responde a uma pergunta de auditoria e se deteta um agente a sair da sua tarefa. Deve ser protegido como os outros registos de engenharia, porque pode conter código-fonte.

Cada execução precisa de limites rígidos: um número máximo de passos, de tokens e de minutos, e uma paragem após falhas repetidas em vez de um ciclo interminável de novas tentativas.

Entregar cada alteração como um diff revisto por uma pessoa

O trabalho do agente deve chegar onde os engenheiros já reveem trabalho: um pull request, um comentário de revisão, um rascunho de nota de versão. O diff mostra exatamente o que mudou, o CI corre sobre ele e aplicam-se as regras de aprovação habituais.

Os diffs de um agente devem ser pequenos e ter um único objetivo. Um pull request que acrescenta testes a um módulo é fácil de rever, enquanto um que mexe em dez ficheiros para melhorias gerais acaba aprovado sem análise ou rejeitado. Convém identificar as alterações feitas por agentes, para que os revisores verifiquem os pressupostos e não apenas a sintaxe.

Os testes gerados exigem um cuidado especial. É preciso confirmar que verificam o comportamento pretendido e que falhariam se o código estivesse errado, em vez de se limitarem a registar o que o código atual devolve.

Avaliar com o próprio histórico antes de alargar o âmbito

Crie um pequeno conjunto de avaliação a partir dos seus repositórios: pull requests antigos com problemas conhecidos, funções com bugs conhecidos, falhas de CI com causas conhecidas. Corra o agente sobre esse conjunto sempre que mudar o prompt, o modelo ou as ferramentas, e compare os resultados com a execução anterior.

No uso diário, acompanhe a frequência com que os revisores aceitam as sugestões do agente, quantos pull requests do agente são integrados sem alterações e com que frequência os planos são rejeitados. Só se deve dar ao agente uma nova tarefa ou mais acessos quando esses sinais estiverem estáveis.

Escrever a política de dados antes da primeira execução

Decida que código e que dados podem ser enviados a que fornecedor de modelos, em que condições contratuais, e registe-o por escrito. Verifique as definições de retenção e de treino de cada fornecedor para a utilização via API, e mantenha segredos, credenciais e dados pessoais fora dos prompts e dos registos.

Se um agente serve várias equipas ou clientes, os dados, as credenciais e os registos de cada um devem ficar isolados. O SDK Pilot, o nosso agente de engenharia com IA, agora em acesso antecipado gratuito, segue estas regras: mostra o plano antes de executar, regista cada chamada de ferramenta, produz diffs revisáveis e isola os dados de cada organização.

Pontos essenciais

  • Começar com agentes em tarefas repetitivas cujo resultado um engenheiro consiga verificar em cerca de um minuto.
  • A lista de ferramentas é o principal controlo de segurança: ferramentas restritas, só de leitura por omissão e limitadas a um branch para escrita.
  • Exigir um plano antes da ação e registar cada chamada de ferramenta com as suas entradas e saídas.
  • Entregar todo o trabalho dos agentes em diffs pequenos, através do processo habitual de revisão e de CI.
  • Avaliar os agentes com exemplos reais do próprio histórico antes de lhes dar mais âmbito.

Perguntas frequentes

Os agentes de IA podem substituir a revisão de código feita por pessoas?

Não. Os agentes são úteis para uma primeira passagem que apanha testes em falta, padrões de risco e problemas de estilo, para que os revisores humanos se concentrem no desenho e na intenção. Uma pessoa deve continuar a aprovar cada alteração que é integrada.

É seguro deixar um agente de IA fazer deploy em produção?

Não diretamente. O agente deve abrir um pull request ou um pedido de alteração, e o deploy faz-se pelo pipeline existente depois da aprovação humana. Assim mantêm-se o rasto de auditoria, os testes e o processo de reversão.

LangGraph ou n8n para automatizar tarefas de engenharia?

Resolvem problemas diferentes. O LangGraph estrutura o raciocínio do agente em passos explícitos, com estado e pontos de aprovação, enquanto o n8n liga sistemas através de gatilhos e ações. Muitas equipas usam o n8n para iniciar e encaminhar o trabalho, e o LangGraph ou chamadas diretas à API do modelo para o próprio agente.

Diga-nos do que precisa.

Algo para construir, pessoas para encontrar ou uma questão por resolver. Numa chamada de 30 minutos, ouvimos e dizemos com franqueza como podemos ajudar e o que seria necessário.

Marcar uma chamada

30 minutos, em francês ou inglês. Gratuito.

Prefere escrever? Envie antes um breve resumo.