Sobre Agente de codificação do Copilot no GitHub.com
O Agente de codificação do Copilot é um agente de desenvolvimento de software autônomo e assíncrono integrado ao GitHub. O agente pode pegar uma tarefa de um issue ou do Copilot Chat, criar uma pull request e iterar a pull request em resposta aos comentários.
O Agente de codificação do Copilot pode gerar alterações personalizadas com base em sua descrição e configurações, incluindo tarefas como correções de bug, implementação de novos recursos incrementais, criação de protótipos, documentação e manutenção da base de código. Depois da criação da pull request inicial, o agente poderá iterar com você com base em seus comentários e avaliações.
Ao trabalhar em sua tarefa, o agente tem acesso ao seu próprio ambiente de desenvolvimento efêmero, no qual 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, sendo o inglês o principal idioma compatível.
O agente funciona usando uma combinação de processamento de linguagem natural e machine Learning para entender sua tarefa e fazer alterações em uma base de código para concluir sua tarefa. Esse processo pode ser dividido em várias etapas.
Processamento de prompt
A tarefa fornecida ao Copilot por meio de um issue, comentário de pull request ou mensagem do Copilot Chat é combinada com outras informações contextuais relevantes para formar um prompt. Esse prompt é enviado para um modelo de linguagem grande para processamento. As entradas podem assumir a forma de linguagem natural simples, snippets de código ou imagens.
Análise de modelo de linguagem
O prompt então percorre todo um grande modelo de linguagem, que é uma rede neural treinada em um grande corpo de dados. O modelo de linguagem analisa o prompt de entrada para ajudar o agente a raciocinar sobre a tarefa e aproveitar as ferramentas necessárias.
Geração de resposta
O modelo de linguagem gera uma resposta com base na análise do prompt. Essa resposta pode assumir a forma de sugestões de linguagem natural e sugestões de código.
Formatação de saída
Depois que o agente concluir a primeira execução, ele atualizará a descrição da pull request com as alterações feitas. O agente pode incluir informações complementares sobre recursos que não pôde acessar e dar sugestões sobre as etapas a serem resolvidas.
Você pode fornecer comentários ao agente dentro da pull request ou mencionando explicitamente o agente (@copilot
). O agente então reenviará esses comentários para o modelo de linguagem para análise posterior. Depois que o agente concluir as alterações com base nos comentários, ele responderá ao seu comentário com alterações atualizadas.
O objetivo do Copilot é fornecer a solução mais relevante para a resolução de tarefas. Mas, nem sempre ele consegue fornecer a resposta que você está procurando. Você é responsável por revisar e validar as respostas geradas pelo Copilot para garantir que sejam precisas e adequadas.
Além disso, como parte do nosso processo de desenvolvimento de produtos, o GitHub atua como a equipe vermelha (teste) para entender e melhorar a segurança do agente.
Para obter informações sobre como melhorar o desempenho, confira Como melhorar o desempenho do Agente de codificação do Copilot a seguir.
Casos de uso para o Agente de codificação do Copilot
Você pode delegar uma tarefa ao Copilot em uma variedade de cenários, incluindo:
- Manutenção de base de código: como lidar com correções relacionadas à segurança, atualizações de dependência e refatoração direcionada.
- Documentação: como atualizar e criar uma nova documentação.
- Desenvolvimento de recursos: implementando solicitações de recursos incrementais.
- Melhorar a cobertura de teste: como desenvolver conjuntos de testes adicionais para gerenciamento de qualidade.
- Criar protótipos de novos projetos: como lançar novos conceitos.
Como melhorar o desempenho do Agente de codificação do Copilot
O Agente de codificação do Copilot podem dar suporte a uma ampla variedade de tarefas. Você pode adotar várias medidas para aprimorar o desempenho e resolver algumas das limitações do agente.
Para obter mais informações sobre limitações, confira Limitações do Agente de codificação do Copilot (abaixo).
Verifique se o escopo das tarefas está bem definido
O Agente de codificação do Copilot aproveita o prompt como contexto de chave ao gerar uma pull request. Quanto mais claro e bem definido o prompt que você atribuir ao agente, melhor serão os resultados obtidos. Um issue ideal inclui:
- Uma descrição clara do problema a ser resolvido ou do trabalho necessário.
- Critérios de aceitação completos para determinar o que é uma boa solução (por exemplo, deve haver testes de unidade?).
- Dicas ou ponteiros sobre quais arquivos precisam ser alterados.
Personalizar sua experiência com contexto adicional
O Agente de codificação do Copilot aproveita o prompt, os comentários e o código do repositório como contexto ao gerar sugestões de alterações. Para aprimorar o desempenho do Copilot, considere implementar instruções personalizadas do Copilot para ajudar o agente a entender melhor seu projeto e como compilar, testar e validar suas alterações. Para obter mais informações, confira "Adicionar instruções personalizadas ao seu repositório" no Best practices for using Copilot to work on tasks.
Para obter informações sobre outras personalizações ao Agente de codificação do Copilot, confira:
- Customizing the development environment for Copilot coding agent
- Customizing or disabling the firewall for Copilot coding agent
- Como estender o agente de codificação do Copilot com o MCP (Model Context Protocol)
Usar o Agente de codificação do Copilot como uma ferramenta, não uma substituição
Embora o Agente de codificação do Copilot possa ser uma ferramenta avançada para gerar código e documentação, é importante usá-lo como uma ferramenta, em vez de uma substituição à programação humana. Você sempre deve examinar e testar o conteúdo gerado pelo agente para garantir que ele atenda aos seus requisitos e esteja livre de erros ou problemas de segurança antes da mesclagem.
Use práticas seguras de codificação e revisão de código
Embora o Agente de codificação do Copilot possa gerar código sintaticamente correto, ele pode nem sempre ser seguro. Você sempre deve seguir as práticas recomendadas para codificação segura, como evitar senhas embutidas em código ou vulnerabilidades de injeção de SQL, além de seguir as práticas recomendadas de revisão de código, para resolver as limitações do agente. Você deve sempre tomar as mesmas precauções que tomaria com qualquer código que escrevesse que utilizasse material não originado de maneira independente, incluindo precauções para garantir sua adequação. Isso inclui testes rigorosos, verificação de IP e acompanhamento de vulnerabilidades de segurança.
Enviar comentários
Se você encontrar issues ou limitações com o Agente de codificação do Copilot no GitHub.com, recomendamos fazer comentários clicando no ícone de polegar para baixo abaixo de cada resposta do agente. Isso ajuda os desenvolvedores a aprimorar a ferramenta e resolver questões ou limitações. Além disso, você pode fazer comentários no fórum de discussão da comunidade.
Fique atualizado
O Agente de codificação do Copilot é uma tecnologia nova e provavelmente evoluirá ao longo do tempo. Você deve se manter atualizado com relação a quaisquer novos riscos de segurança ou práticas recomendadas que possam surgir.
Medidas de segurança para o Agente de codificação do Copilot
Por design, o Agente de codificação do Copilot é criado com várias mitigações para ajudar a garantir a segurança de seus dados e base de código. Embora existam mitigações, continue implementando as práticas recomendadas de segurança, compreendendo as limitações do agente e como elas podem afetar seu código.
Como evitar escalonamento privilegiado
O Agente de codificação do Copilot responderá apenas às interações (por exemplo, atribuindo o agente ou comentando) de usuários com acesso para gravação ao repositório.
A execução de fluxos de trabalho do GitHub Actions disparados em resposta pull requests geradas pelo Agente de codificação do Copilot exige a aprovação de um usuário com acesso para gravação ao repositório.
O agente filtra caracteres ocultos, que não são exibidos no GitHub.com, o que poderia permitir que os usuários ocultassem instruções prejudiciais no conteúdo do corpo do issue ou de comentários. Isso oferece proteção contra riscos como jailbreaks.
Como restringir as permissões do Copilot
O Copilot só tem acesso ao repositório em que está criando uma pull request, não podendo acessar outros repositórios.
Suas permissões são limitadas, permitindo que ele envie código por push e leia outros recursos. Devido às proteções internas, o Copilot só pode enviar por push para branches com nomes que começam com copilot/
. Isso significa que o Copilot não pode enviar por push para o branch padrão (por exemplo, main
).
O Agente de codificação do Copilot não tem acesso a segredos ou variáveis de repositório ou organização de Ações durante o runtime. Apenas segredos e variáveis adicionados especificamente ao ambiente do copilot
são passados para o agente.
Evitando a exfiltração de dados
Por padrão, o Agente de codificação do Copilot tem um firewall habilitado para impedir a exfiltração de código ou outros dados confidenciais, seja acidentalmente ou devido a entrada de usuário mal-intencionada.
Para saber mais, confira Customizing or disabling the firewall for Copilot coding agent.
Limitações do Agente de codificação do Copilot
Dependendo de fatores como a base de código e dados de entrada, você pode obter diferentes níveis de desempenho ao usar o Agente de codificação do Copilot. As informações a seguir ajudam a entender as limitações do sistema e os principais conceitos sobre desempenho, conforme se aplicam à Agente de codificação do Copilot.
Escopo limitado
O modelo de linguagem usado pelo Agente de codificação do Copilot foi treinado em um grande corpo de código, mas ainda tem um escopo limitado e pode não conseguir lidar com determinadas estruturas de código ou linguagens de programação obscuras. Para cada linguagem, a qualidade das sugestões recebidas pode depender do volume e da diversidade de dados de treinamento para essa linguagem.
Possíveis desvios
O modelo de linguagem usado pelos dados de treinamento do Agente de codificação do Copilot e contexto coletado pelo grande modelo de linguagem pode conter preconceitos e erros que a ferramenta pode perpetuar. Além disso, o Agente de codificação do Copilot pode ser tendencioso em relação a determinadas linguagens de programação ou estilos de codificação, o que pode resultar em comentários não ideais ou sugestões incompletas.
Riscos à segurança
O Agente de codificação do Copilot gera código e linguagem natural com base no contexto de um issue ou comentário em um repositório, que poderá expor informações confidenciais ou vulnerabilidades se não for usado com cuidado. É preciso cuidado para examinar completamente todas as saídas geradas pelo agente antes da mesclagem.
Código impreciso
No momento, não há suporte para permitir que o GitHub Copilot dê sugestões que correspondam a código disponível publicamente para o Agente de codificação do Copilot. Para saber mais, confira Como procurar um código público que corresponde às sugestões do GitHub Copilot.
O Agente de codificação do Copilot pode gerar código que parece ser válido, mas que pode não estar realmente correto em termos semânticos ou sintáticos ou pode não refletir com precisão a intenção do desenvolvedor.
Para atenuar o risco de código impreciso, revise e teste cuidadosamente o código gerado, ainda mais ao lidar com aplicativos críticos ou confidenciais. Você também deve garantir que o código gerado siga práticas recomendadas e os padrões de design e se encaixe na arquitetura geral e no estilo da base de código.
Considerações legais e regulatórias
Os usuários precisam avaliar possíveis obrigações legais e regulatórias específicas ao usar serviços e soluções de IA, o que pode não ser apropriado para uso em todos os setores ou cenários. Além disso, os serviços ou as soluções de IA não são projetados e podem não ser usados de maneiras proibidas em termos de serviço aplicáveis e códigos de conduta relevantes.