Limites e proteções de execução do agente
Os agentes podem tomar ações em repositórios, mas essas ações decorrem dentro dos limites e proteções da plataforma. No GitHub, o agente cloud Copilot trabalha num ambiente alimentado pelo GitHub Actions, cria alterações numa ramificação e prepara essas alterações para revisão.
Não finaliza as alterações por si só. Decides se essas alterações devem tornar-se um pull request.
Nesta unidade, você aprenderá:
- Que limites são impostos às ações do agente
- Como as restrições dos ramos e repositórios protegem as bases de código
- Como o fluxo de trabalho e os controlos do ambiente afetam as mudanças orientadas pelos agentes
- Como a revisão humana continua a fazer parte do processo
Limites de repositório e ramificação
O agente cloud do Copilot só tem acesso ao repositório onde está a funcionar. Não pode aceder a outros repositórios.
As suas alterações são feitas num ramo separado, não diretamente no ramo padrão, como o principal. Isto garante que todas as modificações são isoladas antes da revisão.
Controlo de pull requests
Quando o agente cloud do Copilot termina o seu trabalho, prepara as alterações para análise, mas não cria ou funde automaticamente um pull request.
Você decide se:
- Criar uma solicitação de pull
- Revise as alterações geradas
- Solicite atualizações ou descarte a obra
Isto mantém a decisão final sob controlo humano.
Controlos do fluxo de trabalho
O trabalho de agente decorre dentro de fluxos de trabalho alimentados pelo GitHub Actions.
As definições do repositório e da organização podem controlar:
- Que fluxos de trabalho são permitidos
- Que ações podem ser executadas
- O que o GITHUB_TOKEN tem permissão para fazer
Estes controlos limitam o que o agente pode executar através dos fluxos de trabalho.
Salvaguardas de execução e padrões de resiliência.
Para além dos limites ao nível da plataforma, os fluxos de trabalho orientados por agentes devem incluir salvaguardas para lidar com falhas, prevenir erros repetidos e garantir a responsabilização.
Tratamento de erros
Os fluxos de trabalho devem tratar explicitamente as falhas durante a execução do agente.
Isto pode incluir:
- Falhar rapidamente quando um passo apresenta erros
- Registo de mensagens de erro significativas
- Prevenção de alterações parciais ou inconsistentes
Exemplo:
```
- run: |
npx @github/copilot-cli -p "Run task"
continue-on-error: false
```
Isto garante que os erros param a execução em vez de continuarem silenciosamente.
Tentativas
As retentativas ajudam a lidar com falhas temporárias, como problemas de rede ou erros transitórios.
Pode implementar tentativas de repetição com:
- Repetição de passos falhados
- Uso de lógica de repetição em scripts
- Estruturar fluxos de trabalho para permitir uma reexecução segura
Exemplo de padrão:
```
- name: Run agent task with retry
run: |
for i in 1 2 3;
do npx @github/copilot-cli -p "Run task" && break
sleep 5
done
```
Isto permite que o fluxo de trabalho recupere de problemas temporários sem intervenção manual.
Reversões
Se um agente produzir alterações incorretas ou inseguras, os mecanismos de rollback garantem que essas alterações não afetam a base de código principal.
O rollback é suportado de forma natural através de:
- Isolamento baseado em ramificações
- Revisão de pull requests antes da fusão
Estratégias adicionais de rollback incluem:
- Fechar ou descartar o pull request
- Reverter commits quando as alterações forem fundidas
Caminhos de escalonamento
Quando um agente não consegue completar uma tarefa ou encontra incerteza, a escalada garante que um humano pode intervir.
Isto pode ser implementado por:
- Exigir revisão de pull requests
- Atribuição automática de revisores
- Utilização dos passos do fluxo de trabalho para notificar os mantenedores
A escalada garante que as decisões críticas são sempre tratadas por humanos.
Rastreabilidade e responsabilização
Todas as ações dos agentes devem ser rastreáveis e auditáveis.
O GitHub fornece isto através de:
- Registos de fluxo de trabalho
- Histórico de confirmações
- Discussões de solicitação pull
Para melhorar a rastreabilidade:
- Use mensagens de commit claras
- Limita as alterações a um ramo
- Reveja todas as ações por meio de pull requests
Isto garante que cada ação do agente pode ser inspecionada, compreendida e atribuída.
Estas salvaguardas que discutimos garantem que a execução do agente seja:
- Resiliente: consegue lidar com falhas e tentativas repetidas
- Controlado: previne alterações inseguras
- Auditável: todas as ações são visíveis e rastreáveis
- Governado por humanos: a escalada assegura supervisão
Proteções ambientais
Se as alterações geradas por agentes forem usadas em implementações, os ambientes oferecem salvaguardas adicionais.
Os ambientes podem:
- Exija aprovações antes de os trabalhos continuarem
- Restringir o acesso a segredos
- Alvos de implementação de controlo
Isto garante que operações sensíveis não são executadas automaticamente.
Visibilidade da sessão
A execução do agente é visível enquanto corre.
É possível:
- Monitorizar o progresso através dos registos
- Inspecionar as ações do agente
- Forneça prompts de seguimento para ajustar o comportamento
Esta visibilidade permite-lhe manter o controlo durante todo o processo.
Comportamento dos gatilhos e limites do fluxo de trabalho
Os fluxos de trabalho acionados com a GITHUB_TOKEN têm restrições.
A maioria das ações realizadas com este token não desencadeia execuções adicionais de workflow, o que ajuda a evitar ciclos não intencionais ou execuções repetidas.
Outros métodos de autenticação, como tokens de aplicação GitHub ou tokens de acesso pessoal (PATs), podem desencadear execuções adicionais de workflow dependendo da configuração. Embora isto permita padrões de automação mais flexíveis, também requer um design cuidadoso para evitar execuções recursivas ou ciclos de automação não intencionais.
Permitir ações do agente em segurança
Os agentes podem realizar ações tais como:
- Criação de ramificações
- Atualização do código
- Preparação de alterações para revisão
- Desencadeamento de fluxos de trabalho através de eventos de repositório
Estas ações são controladas através de:
- Isolamento baseado em ramificações
- Validação do fluxo de trabalho
- Revisão de pull requests
- Permissões de fluxo de trabalho
Ao combinar estes controlos, as ações do agente podem ser ativadas sem permitir acesso irrestrito ao repositório ou ao ambiente de execução.
Principal conclusão
A execução do agente no GitHub é controlada através do âmbito do repositório, isolamento de branchs, permissões de workflow, proteções do ambiente e pontos de decisão humanos. Os agentes preparam as alterações, mas tu continuas responsável por as rever e finalizar.