Experiência de uso do modo Github Copilot Agent

Este artigo resume como usar o modo GitHub Copilot Agent e compartilha experiências práticas de operação.

Este artigo resume como usar o modo GitHub Copilot Agent e compartilha experiências práticas de operação.

Configurações prévias

  1. Use o VSCode Insider;
  2. Instale o plug-in GitHub Copilot (versão prévia);
  3. Escolha o modelo Claude 3.7 Sonnet (versão prévia), que se destaca na escrita de código, enquanto outros modelos apresentam vantagens em velocidade, multimodalidade (como reconhecimento de imagens) e capacidade de raciocínio;
  4. Selecione o modo de trabalho Agent.

Configurações prévias

Procedimentos operacionais

  1. Abra a aba “Copilot Edits”;
  2. Adicione anexos, como “Codebase”, “Get Errors”, “Terminal Last Commands”, etc;
  3. Adicione “Working Set” de arquivos, que por padrão inclui o arquivo atualmente aberto, mas também pode ser selecionado manualmente de outros arquivos (como “Open Editors”);
  4. Adicione “Instructions”, inserindo palavras-chave que o Copilot Agent deve observar especialmente;
  5. Clique no botão “Send” para iniciar a conversa e observar o desempenho do Agent.

Outras observações

  • O lint fornecido pelos plugins de linguagem do VSCode pode gerar avisos de Error ou Warning, e o Agent pode corrigir automaticamente o código com base nesses avisos.
  • À medida que a conversa avança, as modificações de código geradas pelo Agent podem desviar-se das expectativas. Recomenda-se que cada sessão se concentre em um tema claro e evite conversas muito longas; termine a sessão atual ao alcançar o objetivo de curto prazo e inicie uma nova tarefa.
  • A opção “Add Files” em “Working Set” oferece a escolha “Related Files”, que pode recomendar arquivos relacionados.
  • Preste atenção ao controlar o número de linhas em um único arquivo de código para evitar o consumo rápido de tokens.
  • Recomenda-se gerar primeiro o código básico, depois escrever casos de teste, facilitando o Agent a depurar e validar-se com base nos resultados dos testes.
  • Para limitar o escopo das modificações, adicione a seguinte configuração ao settings.json, modificando apenas arquivos no diretório especificado; consulte apenas para referência:
 "github.copilot.chat.codeGeneration.instructions": [
        {
            "text": "Modifique apenas arquivos no diretório ./script/, não modifique arquivos em outros diretórios."
        },
        {
            "text": "Se o número de linhas do arquivo de código-alvo exceder 1000 linhas, recomenda-se colocar funções adicionadas em um novo arquivo, chamando-o por referência; se as modificações resultantes fizerem o arquivo ficar muito longo, pode-se não seguir estritamente esta regra por enquanto."
        }
    ],
    "github.copilot.chat.testGeneration.instructions": [
        {
            "text": "Gere casos de teste nos arquivos de teste unitário existentes."
        },
        {
            "text": "Após modificar o código, é essencial executar casos de teste para validação."
        }
    ],

Perguntas frequentes

Não obter o código de negócios desejado ao inserir requisitos

É necessário dividir grandes tarefas em tarefas menores e processar apenas uma pequena tarefa por sessão de conversa. Isso ocorre porque o excesso de contexto no modelo de grande escala pode causar dispersão de atenção.

O contexto fornecido a uma única conversa precisa ser ponderado por você mesmo; muito ou pouco contexto pode levar à incompreensão dos requisitos.

O modelo DeepSeek resolve o problema da dispersão de atenção, mas requer o uso da API Deepseek no cursor. Não está claro qual será o efeito.

Problema de resposta lenta

É necessário entender o mecanismo de consumo de tokens; a entrada de tokens é barata e consome menos tempo, enquanto a saída de tokens é muito mais cara e significativamente mais lenta.

Se um arquivo de código for muito grande, mas apenas três linhas precisarem ser modificadas, devido ao grande contexto e à grande saída, o consumo de tokens será rápido e a resposta será lenta.

Portanto, é essencial considerar o controle do tamanho dos arquivos, evitando arquivos e funções muito grandes. Divida arquivos e funções grandes oportuna-mente e chame-os por referência.

Problema de compreensão de negócios

A compreensão de problemas talvez dependa dos comentários no código e nos arquivos de teste. Comentar suficientemente o código e criar casos de teste adequados ajudam o Copilot Agent a entender melhor o negócio.

O código de negócios gerado pelo próprio Agent já possui comentários suficientes. Inspecionar esses comentários permite rapidamente julgar se o Agent entendeu corretamente os requisitos.

Gerar grande quantidade de código que requer depuração prolongada

Considere gerar casos de teste após criar o código básico de uma característica, e então ajustar a lógica de negócios. Dessa forma, o Agent pode depurar e validar-se automaticamente.

O Agent perguntará se permite executar comandos de teste. Após a execução, ele lerá a saída do terminal para determinar se o código está correto. Se não estiver correto, fará modificações com base nas mensagens de erro. Esse ciclo se repete até que o teste seja aprovado.

Ou seja, é necessário entender mais o negócio por si mesmo; o tempo de escrita manual não é muito grande. Caso o código de teste e o código de negócios estejam ambos incorretos, o Agent não pode escrever casos de teste corretos com base no negócio, nem escrever código de negócios correto com base nos casos de teste. Nesse caso, ocorrerá uma depuração prolongada.

Resumo

Entenda o mecanismo de consumo de tokens do grande modelo; o contexto de entrada é barato, enquanto o código de saída é mais caro e obviamente mais lento. As partes do arquivo que não foram modificadas podem ser contadas como saída, evidenciado pelo fato de que muito código inalterado também é lentamente produzido.

Portanto, deve-se tentar controlar o tamanho de um único arquivo. É possível sentir a diferença na velocidade de resposta do Agent ao lidar com arquivos grandes e pequenos durante o uso, e essa diferença é muito evidente.