Sobre Assistente de nuvem Copilot (anteriormente conhecido como assistente de codificação Copilot) em GitHub.com
Agente de nuvem Copilot é um agente de desenvolvimento de software autônomo e assíncrono integrado GitHub. O agente pode pegar uma tarefa de uma questão ou de Chat Copilot, pesquisar um repositório, criar um plano de implementação e fazer alterações de código em um ramo. Você pode revisar as diferenças, iterar com o agente e criar um Pull Request quando estiver pronto.
Agente de nuvem Copilot pode gerar alterações personalizadas com base em sua descrição e configurações, incluindo tarefas como pesquisar uma base de código, planejar uma abordagem, correções de bugs, implementar novos recursos incrementais, protótipos, documentação e manutenção de base de código. O agente pode iterar com você com base em seu feedback, seja por meio de sugestões de acompanhamento durante uma sessão ou comentários em um pull request.
Ao trabalhar na sua tarefa, o agente tem acesso a um ambiente de desenvolvimento efêmero próprio, em que poderá fazer alterações no 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.
Observação
Pesquisa profunda, planejamento e iteração na preparação de alterações de código antes de submeter uma solicitação de pull só estão disponíveis com Agente de nuvem Copilot no GitHub.com. Agente de nuvem integrações (como Azure Boards, JIRA, Linear, Slack ou Teams) só dão suporte à criação de uma solicitação de pull diretamente.
Processamento de prompt
A tarefa fornecida a Copilot através de um problema, comentário em uma solicitação de pull ou mensagem de Chat Copilot é combinada com outras informações relevantes e contextuais 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 processado por um grande modelo de linguagem, que é uma rede neural treinada em um extenso conjunto 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 sua primeira execução, ele fornecerá um resumo das alterações feitas. Se uma solicitação de pull foi criada, o agente atualiza a descrição da solicitação de pull. 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 feedback ao agente enviando comandos de acompanhamento durante uma sessão, comentando dentro de um pull request ou mencionando explicitamente o agente (@copilot) no pull request. 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 no feedback recebido, ele responderá com as modificações feitas.
Copilot destina-se a 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 Copilot para garantir que elas sejam precisas e apropriadas.
Além disso, como parte do nosso processo de desenvolvimento de produtos, GitHub realiza o agrupamento vermelho (teste) para entender e melhorar a segurança do agente.
Para obter informações sobre como melhorar o desempenho, confira Como melhorar o desempenho abaixo Agente de nuvem Copilot .
Casos de uso para Agente de nuvem Copilot
Você pode delegar uma tarefa para Copilot uma variedade de cenários, incluindo, mas não se limitando a:
-
**Pesquisa profunda:** Noções básicas sobre como uma base de código funciona, identificando onde fazer uma alteração ou confirmando suposições. -
**Planejamento:** Criando um plano de implementação antes de fazer alterações. -
**Manutenção da base de código:** 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:** Desenvolvimento de conjuntos de testes adicionais para gerenciamento de qualidade. -
**Criar protótipos de novos projetos:** criando novos conceitos.
Melhorando o desempenho para Agente de nuvem Copilot
Agente de nuvem Copilot pode dar suporte a uma ampla gama 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, consulte Limitações de Agente de nuvem Copilot (abaixo).
Verifique se o escopo das tarefas está bem definido
Agente de nuvem Copilot utiliza seu prompt como principal contexto ao realizar uma tarefa. Quanto mais claro e bem definido o prompt que você atribuir ao agente, melhor serão os resultados obtidos. Uma tarefa 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
Agente de nuvem Copilot aproveita o prompt, os comentários e o código do repositório como contexto ao gerar alterações sugeridas. O agente também tem acesso à pesquisa de código semântico, o que o ajuda a encontrar código relevante com base no significado, em vez de apenas correspondências exatas de texto, permitindo que ele conclua tarefas mais rapidamente.
Para aprimorar Copiloto desempenho, considere implementar instruções personalizadas Copilot para ajudar o agente a entender melhor seu projeto e como criar, testar e validar suas alterações. Para obter mais informações, confira "Adicionar instruções personalizadas ao seu repositório" no Práticas recomendadas para usar GitHub Copilot para trabalhar em tarefas.
Para obter informações sobre outras personalizações para Agente de nuvem Copilot, consulte:
-
[AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent) -
[AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent) -
[AUTOTITLE](/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp)
Usar Agente de nuvem Copilot como uma ferramenta, não como uma substituição
Embora Agente de nuvem Copilot possa ser uma ferramenta poderosa para gerar código e documentação, é importante usá-lo como uma ferramenta, em vez de uma substituição para 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 Agente de nuvem 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 problemas ou limitações com Agente de nuvem Copilot em GitHub.com, recomendamos que você forneça 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
Agente de nuvem Copilot é uma nova tecnologia 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 Agente de nuvem Copilot
Por design, Agente de nuvem Copilot é criado com várias mitigações para ajudar a garantir que seus dados e a base de código sejam seguros. 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
Agente de nuvem Copilot só responderá às interações (por exemplo, ao atribuir o agente ou ao comentar) de usuários com acesso de escrita ao repositório.
GitHub Actions fluxos de trabalho disparados em resposta a solicitações de pull geradas por Agente de nuvem Copilot exigem aprovação de um usuário com acesso de gravação no repositório antes de serem executados.
O agente filtra caracteres ocultos, que não são exibidos em GitHub.com, o que poderia permitir que os usuários ocultassem instruções prejudiciais em comentários ou no conteúdo do corpo dos relatórios. Isso oferece proteção contra riscos como desbloqueios.
Restringindo as permissões do Copilot
O copilot só tem acesso ao repositório em que está funcionando e não pode acessar outros repositórios.
Suas permissões são limitadas, permitindo que ele envie código por push e leia outros recursos. Mecanismos de proteção integrados significam que o Copilot só pode fazer push para um único branch: o branch da pull request existente quando disparado por meio de @copilot, ou de outra forma, para um novo branch copilot/. Isso significa que o Copilot não pode fazer push diretamente para o branch padrão (por exemplo, main).
Agente de nuvem Copilot não tem acesso a segredos ou variáveis da organização ou do repositório Actions durante o tempo de execução. Apenas segredos e variáveis adicionados especificamente ao ambiente do `copilot` são passados para o agente.
Garantindo a rastreabilidade
Os commits de Agente de nuvem Copilot são autorizados por Copilot, com o humano que iniciou a tarefa marcado como coautor. Isso facilita a identificação do código gerado pelo agente e quem iniciou a tarefa.
Os commits de Agente de nuvem Copilot são assinados, então eles aparecem como "Verificado" em GitHub. Isso fornece confiança de que os commits foram feitos por Agente de nuvem Copilot e não foram alterados.
Cada mensagem de confirmação inclui um link para os logs de sessão do agente. Isso fornece um link permanente de qualquer commit criado pelo agente para os logs de sessão completos, para que você possa entender por que Copilot fez uma alteração durante a revisão de código ou rastreá-la mais tarde para fins de auditoria.
Evitando a exfiltração de dados
Por padrão, Agente de nuvem Copilot tem um firewall habilitado para impedir a exfiltração de código ou outros dados confidenciais, acidentalmente ou devido à entrada mal-intencionada do usuário.
Para saber mais, confira Personalizando ou desabilitando o firewall para o agente de nuvem do GitHub Copilot.
Prevenção de vulnerabilidades de segurança no código gerado
Durante o processo de geração de código, Agente de nuvem Copilot analisa automaticamente o código recém-gerado para vulnerabilidades de segurança e tenta resolvê-las, para evitar que quaisquer problemas descobertos sejam introduzidos. A análise é executada usando as seguintes ferramentas e processos:
-
** CodeQL **: será executado para identificar possíveis vulnerabilidades e erros. -
** Secret scanning **: procurará tipos conhecidos de segredos para garantir que os segredos não sejam introduzidos na resposta. -
**Análise de dependência**: as dependências referenciadas pelo novo código serão verificadas em relação a vulnerabilidades conhecidas no GitHub Advisory Database.
Limitações de Agente de nuvem Copilot
Dependendo de fatores como a base de código e os dados de entrada, você poderá experimentar diferentes níveis de desempenho ao usar Agente de nuvem Copilot. As informações a seguir foram projetadas para ajudá-lo a entender as limitações do sistema e os principais conceitos sobre o desempenho conforme se aplicam a Agente de nuvem Copilot.
Escopo limitado
O modelo de linguagem usado por Agente de nuvem Copilot foi treinado em uma grande quantidade de código, mas ainda tem um escopo limitado e pode não ser capaz de 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 utilizado pelos dados de treinamento de Agente de nuvem Copilot e pelo contexto coletado pelo modelo de linguagem de grande porte pode conter preconceitos e erros que podem ser perpetuados pela ferramenta. Além disso, Agente de nuvem Copilot pode ser tendencioso em relação a determinadas linguagens de programação ou estilos de codificação, o que pode levar a sugestões abaixo do ideal ou incompletas.
Riscos à segurança
Agente de nuvem Copilot gera código e linguagem natural com base no contexto de um problema ou comentário em um repositório, que pode potencialmente expor informações confidenciais ou vulnerabilidades se não for usado com cuidado. É necessário revisar minuciosamente todos os resultados gerados pelo agente antes da mesclagem.
Código impreciso
Agente de nuvem Copilot pode gerar um código que parece ser válido, mas pode não ser semanticamente ou sintaticamente correto ou 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.
Código público
Agente de nuvem Copilot pode gerar código que seja igual ou semelhante ao código público, ainda que a política "Sugestões correspondentes ao código público" esteja definida como "Bloquear". Confira [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code).
Se isso acontecer, Copilot mostrará correspondências nos logs de sessão do agente com um link para exibir detalhes do código correspondente. Para saber mais, confira Acompanhamento das sessões do GitHub Copilot.
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.
Integrações externas com o agente de nuvem copilot
Agente de nuvem Copilot pode receber informações e contexto de aplicativos externos como Microsoft Teams, Linear, Slack e Jira. Quando você menciona o aplicativo externo nessas plataformas ou atribui uma tarefa ao agente de nuvem por meio de um fluxo de trabalho conectado, ele pode acessar o contexto relevante, como o histórico de conversas em threads em que ele é mencionado ou emitir detalhes e linhas do tempo de atividade. Isso permite que o agente de nuvem entenda melhor suas necessidades de desenvolvimento e forneça assistência mais relevante. Essas integrações permitem que as equipes colaborem em código, atribuam tarefas e acompanhem o progresso diretamente em seus fluxos de trabalho existentes, sem alternar ferramentas. Verifique se sua equipe entende quais informações estão sendo compartilhadas e configure integrações de acordo com as políticas de privacidade e tratamento de dados da sua organização.
Para obter mais informações sobre integrações externas com Agente de nuvem Copilot, consulte: * Integrando o agente de nuvem do Copilot ao Teams * Integrando o agente de nuvem do Copilot ao Linear * Integrando o agente de nuvem do Copilot ao Slack