Conceda a um agente de IA acesso de escrita ao seu projeto de API e ele poderá causar danos reais. Não maliciosamente; os agentes apenas fazem o que o prompt implica. Peça para ele “limpar os endpoints do usuário” e ele pode excluir uma rota ativa da qual você ainda depende. Peça para ele “atualizar o esquema” e ele pode sobrescrever um modelo de dados que três outros endpoints referenciam. O agente não tem noção do que está em produção. Ele apenas vê os recursos que tem permissão para tocar, e os toca.
Esta é uma nova classe de risco. Quando um humano fazia essas edições, ele hesitava antes de excluir um endpoint. Um agente executando em loop a partir do seu terminal não hesita. Ele executa o comando, obtém uma resposta de sucesso e segue em frente. Se esse comando atingir sua branch principal, a mudança já está ativa na sua fonte de design.
A solução não é bloquear os agentes. É dar a eles uma sandbox da qual não possam escapar. O AI Branch da Apidog faz exatamente isso: cada edição impulsionada por agente é feita em uma branch isolada, sua branch de origem permanece intocada, e nada chega à branch principal até que um humano revise a diferença e a mescle. Esta postagem detalha o fluxo da CLI de ponta a ponta e, em seguida, aborda a higiene geral de segurança do agente que deve acompanhá-lo. Para a lógica de design por trás do recurso, consulte o artigo mais aprofundado sobre AI Branch e mudanças mais seguras impulsionadas por agente; esta peça é o manual prático.
Por que o acesso de escrita do agente é perigoso por padrão
A maioria das ferramentas dá a um agente um nível de acesso: o projeto. Se o agente pode criar um endpoint, ele também pode deletar um. Se ele pode atualizar um esquema, ele também pode substituí-lo por algo incompatível. Não há lacuna entre “o agente propôs uma mudança” e “a mudança está na sua fonte da verdade”.
Três modos de falha aparecem repetidamente:
- Sobrescrita. O agente regenera um esquema a partir de um entendimento parcial da sua API e remove campos que outros endpoints necessitam.
- Exclusão. O agente “consolida” endpoints e remove rotas que ainda são chamadas por clientes ativos.
- Desvio silencioso. O agente faz dezenas de pequenas edições ao longo de uma sessão. Nenhuma mudança individual parece errada, mas a soma diverge silenciosamente do que você entregou.
Nenhuma dessas são exóticas. Elas são o resultado normal de um agente fazendo seu trabalho na branch errada. O objetivo é tornar a branch errada impossível de ser alcançada.
A correção principal: uma branch de IA isolada
Uma AI Branch é um tipo especial de branch de sprint construída para operações externas de IA e CLI. Quando você cria uma, o agente edita dentro dela e as mudanças permanecem lá. Sua branch de origem e sua branch principal não são afetadas até que você decida mesclar.
Você a cria a partir da CLI. Primeiro, instale e autentique a CLI do Apidog:
npm install -g apidog-cli
apidog login --with-token <YOUR_ACCESS_TOKEN>
Em seguida, crie a AI branch. A documentação recomenda nomeá-la com a data, branch de origem e propósito para que seja fácil de identificar mais tarde:
apidog branch create --type ai \
--name "ai/20260708-from-main-user-register" \
--from main \
--project <PROJECT_ID>
Duas coisas importam aqui. A branch é criada a partir de main, mas criá-la não afeta main. E a branch começa vazia. Uma AI Branch não copia automaticamente todo o seu projeto para si mesma; ela contém apenas os recursos que o agente explicitamente traz. Essa é uma propriedade de segurança deliberada. O agente só pode editar o que ele importou, então o raio de impacto é o que você delimitou, não o projeto inteiro.
Para ver o conjunto completo de flags para qualquer comando de branch, execute-o com -h:
apidog branch create -h
Importe os recursos de origem antes de editá-los
Como a AI Branch está vazia, o primeiro trabalho do agente é trazer os recursos específicos nos quais ele precisa trabalhar. Este é o passo que impede um agente de operar às cegas. Você importa o endpoint, esquema ou documento que deseja alterar, e nada mais vem junto.
Aponte o agente (ou você mesmo) para os recursos exatos por ID. A CLI do Apidog usa flags de ID plurais e separadas por vírgula para essas operações:
apidog branch pick-to \
--type ai \
--from main \
--to "ai/20260708-from-main-user-register" \
--endpoint-ids 1,2 \
--data-schema-ids 3 \
--project <PROJECT_ID>
Agora a AI branch contém uma cópia dos endpoints 1 e 2 e do esquema 3 como eles existem em main. O agente trabalha com essas cópias. O que quer que ele faça com elas, os originais em main permanecem inalterados. Se o agente excluir um endpoint aqui, ele exclui a cópia, não a rota ativa. Esta é a diferença entre “o agente destruiu nossa API” e “o agente destruiu uma cópia de rascunho que podemos descartar”.
Se você estiver conduzindo isso através de um agente de codificação, os mesmos comandos são executados dentro do loop do agente. A CLI do Apidog retorna JSON estruturado com agentHints.nextSteps, para que um agente possa ler o resultado de cada comando e decidir o que fazer em seguida sem que você precise traduzir a saída para ele. O guia apidog-cli no Cursor mostra esse padrão conectado a um editor real.
Deixe o agente editar, então leia a diferença
Com os recursos importados, deixe o agente fazer seu trabalho. Ele cria, atualiza ou exclui endpoints, esquemas, documentos e cenários de teste dentro da AI branch. Cada uma dessas gravações é contida.
Quando estiver pronto, você revisa antes de qualquer mesclagem. Nada no fluxo do AI Branch é automático; a mesclagem é uma decisão humana. Inspecione as mudanças da CLI ou do cliente Apidog e confirme se a diferença corresponde ao que você realmente queria. Esta é a sua barreira. Se o agente se desviou, você o vê aqui, e a correção é descartar a branch, não reverter a produção.
Trate esta revisão como obrigatória, não opcional. O objetivo de todo o fluxo é que um humano examine a saída do agente antes que ela se torne real. Pular a revisão anula o isolamento.
Aplique mudanças com uma solicitação de mesclagem
Como você mescla depende se a branch de destino está protegida. É aqui que uma branch principal protegida compensa.
Se a branch de destino não estiver protegida, você pode mesclar diretamente, nomeando os recursos exatos a serem transferidos:
apidog branch merge \
--type ai \
--from "ai/20260708-from-main-user-register" \
--to main \
--endpoint-ids 1,2 \
--data-schema-ids 3 \
--project <PROJECT_ID>
Se main estiver protegida, e deveria estar, uma mesclagem direta é bloqueada. Em vez disso, você abre uma solicitação de mesclagem e direciona a mudança para revisão:
apidog merge-request create \
--from "ai/20260708-from-main-user-register" \
--to main \
--endpoint-ids 1,2 \
--data-schema-ids 3 \
--reviewer-ids <REVIEWER_USER_IDS> \
--description "AI branch: user register changes" \
--project <PROJECT_ID>
A solicitação de mesclagem é o caminho preferencial para qualquer coisa gerada por agente. Ela força a mudança através do mesmo fluxo de revisão que um colaborador humano enfrentaria. Um colega de equipe a aprova, então ela é aplicada. O agente nunca escreve em main por conta própria; ele só pode pedir, por meio de uma solicitação de mesclagem, para que um humano aceite seu trabalho. Observe que a mesclagem apenas carrega os IDs de recurso que você lista. Se o agente tocou em algo que você não pretendia enviar, você deixa esse ID fora da mesclagem e ele permanece para trás.
Isso espelha como um fluxo de trabalho de API nativo do Git lida com contribuidores humanos: branch, propor, revisar, mesclar. A AI Branch aplica a mesma disciplina a um contribuidor não-humano, que é aquele que você menos deseja que escreva diretamente para a main.
Limpe branches mescladas e abandonadas
Branches de IA mescladas ou abandonadas devem ser arquivadas prontamente para manter a lista de branches legível. Uma vez que uma branch é mesclada ou você decide que não precisa dela, arquive-a primeiro e depois a exclua:
apidog branch archive "ai/20260708-from-main-user-register" \
--type ai \
--project <PROJECT_ID>
A cadência recomendada é uma AI branch por tarefa. Uma branch mapeia para uma única unidade de trabalho do agente, é revisada, mesclada ou descartada, e então arquivada. Isso mantém o isolamento significativo; você nunca estará revisando uma branch que acumulou três sessões de edições não relacionadas.
Higiene de segurança do agente em torno da branch
A AI Branch lida com o isolamento, mas funciona melhor dentro de alguns hábitos que limitam o que um agente pode alcançar em primeiro lugar.
- Use tokens de acesso de menor privilégio. O token que você passa para
apidog login --with-tokendelimita o que o agente pode fazer. Dê a um token de automação acesso aos projetos de que ele precisa e nada mais. Não entregue a um agente seu token de proprietário pessoal porque era conveniente. Se um token vazar ou um agente se comportar mal, você quer que o dano seja limitado pelo escopo do token. - Proteja sua branch principal. Esta é a única configuração que transforma “revisar antes de mesclar” de uma sugestão em uma regra. Com a
mainprotegida, o caminho de mesclagem direta é fechado e toda mudança do agente tem que passar pormerge-request create. A proteção é o que torna a solicitação de mesclagem não opcional. - Revise antes de mesclar, todas as vezes. O isolamento só o protege se um humano realmente ler a diferença. Construa a revisão no fluxo de trabalho para que ela não possa ser ignorada. Um agente que tem sido confiável por uma semana ainda pode interpretar mal um prompt no oitavo dia.
- Delegue, então verifique. Este é o padrão que une tudo. Você delega uma tarefa delimitada ao agente, deixa-o executar em sua branch isolada e, em seguida, verifica o resultado antes que ele seja mesclado. O agente faz o trabalho; você é responsável pela aceitação. A mesma divisão aparece quando os agentes executam testes: o agente executa a suíte, você verifica os resultados do arnês de teste e o código de saída antes de confiar neles. Delegue a execução, mantenha o julgamento.
Se você estiver versionando sua especificação de API no Git junto com tudo isso, o fluxo de trabalho de controle de versão OpenAPI oferece uma segunda camada de histórico para comparar quando algo parecer errado.
O fluxo completo, em ordem
Aqui está o fluxo completo como uma sequência que você pode entregar a um agente ou executar você mesmo:
apidog branch create --type aia partir demain. A branch está vazia emainnão é tocada.apidog branch pick-toos endpoints e esquemas específicos que o agente precisa. Nada mais é incluído.- Deixe o agente editar dentro da branch. Toda escrita é contida.
- Revise a diferença da CLI ou do cliente. Esta é a barreira humana.
apidog merge-request createcontra umamainprotegida. Um colega de equipe aprova; o agente nunca escreve diretamente namain.apidog branch archiveuma vez mesclada ou abandonada.
Em nenhum momento o agente tem um caminho para sobrescrever ou excluir um endpoint ativo em main. O pior que ele pode fazer é fazer uma mudança ruim em uma cópia de rascunho que você então recusa a mesclar.
Dê espaço para os agentes trabalharem sem lhes dar as chaves
Os agentes são úteis precisamente porque agem sem perguntar. Isso também é o que torna o acesso de escrita irrestrito perigoso. A resposta não é desacelerar o agente; é fazer com que suas escritas rápidas e sem hesitação caiam em um lugar seguro. Uma AI branch isolada, uma main protegida, tokens de menor privilégio e uma revisão obrigatória transformam “o agente destruiu nossa API” em uma diferença que você examina e rejeita.
Apidog constrói isso para que você não precise montá-lo a partir de ferramentas separadas. Pegue a CLI do Apidog, crie uma AI branch e deixe seus agentes editarem uma cópia em vez da coisa real. Baixe o Apidog para experimentar o fluxo do AI Branch e leia a documentação do AI Branch para a referência completa de comandos antes de conectá-lo a um fluxo de trabalho de produção.
