Compartilhar via


Personalizar o agente de modernização do GitHub Copilot

O agente de modernização do GitHub Copilot dá suporte a habilidades personalizadas que você pode usar para definir padrões de migração específicos da organização, uso de biblioteca interna e padrões de codificação. Usando essas habilidades personalizadas, você pode garantir uma modernização consistente em toda a sua organização ao usar o conhecimento proprietário.

O que são habilidades personalizadas?

As habilidades personalizadas seguem a especificação de habilidades do agente para ensinar o agente de modernização a executar tarefas de migração específicas usando os padrões e bibliotecas da sua organização. Quando você cria um plano de modernização, o agente detecta e aplica automaticamente habilidades personalizadas relevantes com base no prompt de migração.

As habilidades personalizadas são úteis para:

  • Migrações internas de biblioteca: mudança para SDKs ou frameworks específicos da organização.
  • Reutilize os padrões de migração: Capturando e reutilizando padrões de migração bem-sucedidos.

Estrutura de habilidades personalizada

Defina cada habilidade personalizada em um SKILL.md arquivo com:

  • Front matter YAML: metadados para detecção de competências.
  • Visão geral: descrição do cenário de migração.
  • Etapas: instruções detalhadas para o agente.
  • Código de exemplo: exemplos concretos que demonstram a migração.

Criar uma habilidade personalizada

Etapa 1: Criar o diretório de habilidades

Crie uma nova pasta .github/skills/ em seu repositório com um nome descritivo:

mkdir -p .github/skills/my-migration-pattern

Etapa 2: gravar o arquivo SKILL.md

Crie .github/skills/my-migration-pattern/SKILL.md com a estrutura mostrada na seção a seguir.

Campos de metadados iniciais necessários

---
name: my-migration-pattern
description: A concrete description of what this skill helps migrate
---

Importante: o description campo é crítico. O agente o usa para determinar quando aplicar a habilidade com base no prompt de migração do usuário. Torne-o preciso e específico.

Boas descrições:

  • ✅ "Migrar do RabbitMQ com AMQP para o Barramento de Serviço do Azure para troca de mensagens"
  • ✅ "Substituir chamadas JDBC diretas por repositórios do Spring Data"

Descrições incorretas:

  • ❌ "Migração de mensagens" (muito vaga)
  • ❌ "Bibliotecas de atualização" (não específicas)
  • ❌ "Aprimorar código" (meta não clara)

Etapa 3: fornecer exemplos e verificações de migração

Inclua exemplos de código e verificações de verificação para orientar o agente:

  • Alterações de código: trechos de código mostrando a implementação migrada com a nova abordagem.
  • Alterações de configuração: atualizações para propriedades, XML ou outros arquivos de configuração.
  • Alterações de dependência: atualizações de Maven, Gradle ou NuGet necessárias para a migração.
  • Verificações: os critérios que o agente deve validar após a aplicação da migração.

Você também pode fornecer arquivos de recurso no diretório de habilidades e informar ao agente como usá-los no conteúdo do SKILL.md arquivo.

Usar habilidades personalizadas

Deteção automática

Quando você cria um plano de modernização, o agente automaticamente:

  1. Vasculha .github/skills/ em busca de habilidades personalizadas.
  2. Compara o prompt de migração com suas descrições de habilidades.
  3. Incorpora habilidades relevantes ao plano.
  4. Usa a habilidade para orientar transformações de código.

Exemplo:

# Agent will automatically detect and use the RabbitMQ skill
modernize plan create "migrate from rabbitmq to azure service bus"

Verificação manual

Para verificar quais habilidades são detectadas:

  1. Crie um plano com seu prompt.

  2. Revisão .github/modernization/{plan-name}/tasks.json.

  3. Procure referências às suas habilidades personalizadas:

    "skills": [
        {
          "name": "your-skill-name",
          "location": "project"
        }
    ]
    

Se uma habilidade não for detectada:

  • Aperfeiçoe a habilidade description para corresponder melhor ao seu prompt.
  • Torne o prompt mais específico.
  • Verifique se SKILL.md está formatado corretamente.

Repositório de exemplo

Para obter um exemplo completo, consulte o repositório de exemplo do NewsFeedSite, que inclui:

  • Habilidade customizada para migração do RabbitMQ para o Azure Service Bus.
  • Demonstra o uso de bibliotecas internas do JDK.
  • Demonstra uma estrutura e formatação de habilidades apropriadas.

Clone e explore:

git clone https://github.com/Azure-Samples/NewsFeedSite.git
cd NewsFeedSite
ls -la .github/skills/
modernize plan create "migrate from rabbitmq to azure service bus"

Solução de problemas

Habilidade não detectada

Problema: o agente não usa sua habilidade personalizada.

Soluções:

  • Verifique se o nome da habilidade na matéria frontal do YAML não contém espaços. Em vez disso, use hifens (por exemplo, my-custom-skill não my custom skill).
  • Verifique se o description corresponde às palavras-chave do seu prompt.
  • Verifique a sintaxe do cabeçalho YAML.
  • Certifique-se de que SKILL.md está em .github/skills/{skill-name}/.
  • Torne o prompt de migração mais específico.

Próximas Etapas