Uso responsável do GitHub Copilot Cloud Agent em GitHub.com

Concluído

Aprenda a usar o Copilot Cloud Agent em GitHub.com de forma responsável, compreendendo os seus propósitos, capacidades e limitações.

No final desta unidade, será capaz de:

  • Compreenda o propósito, as capacidades e os limites do Copilot Cloud Agent no GitHub.com.
  • Aplique práticas de uso responsável: definição de escopo de tarefas, proteção de ambientes e validação de resultados.
  • Reconheça medidas de segurança, riscos e mitigações, e onde melhorar o desempenho.

Sobre o Copilot Cloud Agent no GitHub.com

O Copilot Cloud Agent é um agente de desenvolvimento de software autónomo e assíncrono integrado no GitHub. O agente pode detetar uma tarefa de um problema ou do Copilot Chat, criar uma ramificação, explorar a base de código, gerar um plano de implementação e relaborar código — permitindo-lhe decidir se e quando abrir um pull request.

O Copilot Cloud Agent pode gerar alterações personalizadas com base na sua descrição e configurações, incluindo tarefas como correções de bugs, implementação de novas funcionalidades incrementais, prototipagem, documentação e manutenção da base de código. Se decidir criar um pull request, o agente pode então iterar consigo com base no seu feedback e avaliações.

Enquanto trabalha em sua tarefa, o agente tem acesso ao seu próprio ambiente de desenvolvimento efêmero, onde pode fazer alterações em seu código, executar testes automatizados e executar linters. O agente foi avaliado em uma variedade de linguagens de programação, com o inglês como a principal linguagem suportada.

Como funciona o agente (de ponta a ponta)

  • Processamento imediato

    A tarefa fornecida ao Copilot por meio de um problema, comentário de pull request ou mensagem no chat do Copilot é combinada com outras informações contextuais relevantes para formar um prompt. As entradas podem assumir a forma de linguagem natural simples, trechos de código ou imagens.

  • Análise de modelos linguísticos

    O prompt é então passado por um modelo de linguagem grande, que analisa a entrada para ajudar o agente a raciocinar na tarefa e aproveitar as ferramentas necessárias.

  • Geração de respostas

    O modelo de linguagem gera uma resposta com base em sua análise do prompt. Esta resposta pode assumir a forma de sugestões de linguagem natural e sugestões de código.

  • Formatação de saída

    Assim que o agente concluir a sua primeira execução, ele atualizará a descrição do pedido de pull com as alterações efetuadas. O agente pode incluir informações suplementares sobre recursos que não pôde acessar e fornecer sugestões sobre as etapas a serem resolvidas.

    Você pode fornecer feedback ao agente comentando dentro da solicitação pull ou mencionando explicitamente o agente (@copilot). O agente reenviará esse feedback ao modelo linguístico para uma análise mais aprofundada. Assim que o agente concluir as alterações com base no feedback, ele responderá ao seu comentário com alterações atualizadas.

O Copilot destina-se a fornecer-lhe a solução mais relevante para a resolução de tarefas. No entanto, pode nem sempre fornecer a resposta que procura. Você é responsável por revisar e validar as respostas geradas pelo Copilot para garantir que sejam precisas e apropriadas. Além disso, como parte de nosso processo de desenvolvimento de produtos, o GitHub realiza red teaming (testes) para entender e melhorar a segurança do agente.

Casos de uso para o Copilot Cloud Agent

  • Manutenção da base de código: Correções de segurança, atualizações de dependência e refatoração direcionada.
  • Documentação: Atualização e criação de nova documentação.
  • Desenvolvimento de funcionalidades: Implementação de solicitações de recursos incrementais.
  • Melhorar a cobertura dos testes: Desenvolvimento de conjuntos de testes adicionais para gestão da qualidade.
  • Prototipagem de novos projetos: Green fielding novos conceitos.

Melhoria do desempenho do Copilot Cloud Agent

Para melhorar o desempenho e resolver as limitações, use estas medidas:

Certifique-se de que suas tarefas tenham um escopo adequado, fornecendo:

  • Uma descrição clara do problema a resolver ou do trabalho necessário.
  • Critérios de aceitação completos sobre o aspeto de uma boa solução (por exemplo, deve haver testes de unidade?).
  • Dicas ou ponteiros sobre quais arquivos precisam ser alterados.

Personalize a sua experiência com contexto adicional

O Copilot Cloud Agent utiliza o seu prompt, comentários e o código do repositório como contexto ao gerar alterações sugeridas. Melhore os resultados adicionando instruções personalizadas do Copilot para que o agente entenda como criar, testar e validar suas alterações.

Outras personalizações úteis:

  • Personalização do ambiente de desenvolvimento para o GitHub Copilot Cloud Agent
  • Personalizar ou desativar o firewall para o GitHub Copilot Cloud Agent
  • Extensão do GitHub Copilot Cloud Agent com o Model Context Protocol (MCP)

Use o Copilot Cloud Agent como ferramenta, não como substituto

Sempre revise e teste o conteúdo gerado pelo agente para garantir que ele atenda aos seus requisitos e esteja livre de erros ou preocupações de segurança antes da fusão.

Use práticas seguras de codificação e revisão de código

Embora o Copilot Cloud Agent possa gerar código sintaticamente correto, pode nem sempre ser seguro. Continue a seguir as práticas recomendadas para codificação segura (evite segredos codificados, evite vulnerabilidades de injeção) e aplique testes rigorosos, verificação de IP e verificações de vulnerabilidade.

Enviar comentários

Se você encontrar algum problema ou limitação, use o ícone de polegar para baixo abaixo de uma resposta do agente ou compartilhe comentários no fórum de discussão da comunidade.

Mantenha-se atualizado

O Copilot Cloud Agent está a evoluir. Monitorize os novos riscos de segurança e as melhores práticas à medida que vão surgindo.

Medidas de segurança para o Copilot Cloud Agent

Evitar a escalada de privilégios

  • O Copilot Cloud Agent só responde a interações de utilizadores com acesso de escrita.
  • Os fluxos de trabalho de ações do GitHub acionados por pull requests de agentes exigem a aprovação de um utilizador com permissões de escrita antes de serem executados.
  • Os caracteres ocultos (não renderizados em GitHub.com) são filtrados para reduzir os riscos de injeção de prompt.

Restringindo as permissões do Copilot

  • O agente só acede ao repositório ao qual está associado; não consegue aceder a outros repositórios.
  • Os pushes estão limitados a ramificações cujo nome começa com copilot/ (não na sua ramificação predefinida).
  • O agente não tem acesso a segredos ou variáveis das Actions da organização ou do repositório em tempo de execução. Apenas segredos/variáveis adicionados ao ambiente do copiloto são passados para o agente.

Prevenção da exfiltração de dados

Um firewall é ativado por padrão para evitar a exfiltração acidental ou maliciosa de código ou dados confidenciais. Veja Personalizar ou desativar o firewall para o GitHub Copilot Cloud Agent.

Limitações do Copilot Cloud Agent

Dependendo da sua base de código e entradas, o desempenho pode variar. Tenha estas restrições em mente:

  • Âmbito limitado e qualidade: O LLM não pode lidar com certas estruturas de código ou linguagens obscuras; a qualidade varia de acordo com a cobertura linguística.
  • Potenciais enviesamentos: Os dados de treinamento e o contexto recuperado podem incluir vieses; O agente pode inclinar-se para determinadas línguas ou estilos.
  • Riscos de segurança: O código gerado é baseado no contexto do repositório e pode expor informações confidenciais se não for revisado; É necessária uma revisão aprofundada.
  • Código impreciso: O código pode parecer correto, mas estar semântica/sintaticamente errado ou desalinhado com a intenção. Valide ajuste, padrões e estilo.
  • Código público: O agente pode produzir correspondências ou resultados semelhantes com o código público, mesmo que "Bloquear" esteja definido; pode não fornecer referências.
  • Aspetos legais/regulamentares: Assegurar o cumprimento das obrigações aplicáveis; evitar utilizações proibidas ao abrigo dos termos de serviço e códigos de conduta.