Partilhar via


Personalize o agente de modernização do GitHub Copilot

O agente de modernização do GitHub Copilot suporta competências personalizadas que pode usar para definir padrões de migração específicos da organização, utilização interna de bibliotecas e padrões de programação. Ao utilizar estas competências personalizadas, pode garantir uma modernização consistente em toda a sua organização, utilizando conhecimentos proprietários.

O que são competências personalizadas?

As competências personalizadas seguem a especificação de competências do agente para ensinar o agente de modernização a realizar tarefas específicas de migração usando os padrões e bibliotecas da sua organização. Quando cria um plano de modernização, o agente deteta automaticamente e aplica competências personalizadas relevantes com base no seu pedido de migração.

As competências personalizadas são úteis para:

  • Migrações internas de bibliotecas: Mudança para SDKs ou frameworks específicos da organização.
  • Reutilizar padrões de migração: Capturar e reutilizar padrões de migração bem-sucedidos.

Estrutura de competências personalizadas

Defina cada competência personalizada num SKILL.md ficheiro com:

  • Matéria inicial YAML: Metadados para deteção de competências.
  • Visão geral: Descrição do cenário de migração.
  • Passos: Instruções detalhadas para o agente.
  • Código de exemplo: Exemplos concretos que demonstram a migração.

Crie uma habilidade personalizada

Passo 1: Criar o diretório de competências

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

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

Passo 2: Escrever o ficheiro SKILL.md

Cria .github/skills/my-migration-pattern/SKILL.md com a estrutura mostrada na secção seguinte.

Campos obrigatórios das informações preliminares

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

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

Boas descrições:

  • ✅ "Migrar do RabbitMQ com AMQP para Azure Service Bus para mensagens"
  • ✅ "Substituir chamadas JDBC diretas por repositórios Spring Data"

Más descrições:

  • ❌ "Migração de mensagens" (demasiado vago)
  • ❌ "Atualizar bibliotecas" (não específico)
  • ❌ "Melhorar o código" (objetivo pouco claro)

Passo 3: Forneça 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: excertos de código que mostram a implementação migrada usando a nova abordagem.
  • Alterações de configuração: atualizações de propriedades, XML ou outros ficheiros de configuração.
  • Alterações de dependência: Atualizações Maven, Gradle ou NuGet necessárias para a migração.
  • Verificações de verificação: critérios que o agente deve validar após aplicar a migração.

Também podes fornecer ficheiros de recursos no diretório de habilidades e dizer ao agente como os usar no conteúdo do SKILL.md ficheiro.

Use competências personalizadas

Deteção automática

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

  1. Digitaliza .github/skills/ competências personalizadas.
  2. Compara a tua instrução de migração com as descrições de competências.
  3. Incorpora competências relevantes no 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 as competências detetadas:

  1. Crie um plano com o seu prompt.

  2. Análise .github/modernization/{plan-name}/tasks.json.

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

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

Se uma habilidade não for detetada:

  • Refina a habilidade description para melhor corresponder ao teu prompt.
  • Torna o enunciado mais específico.
  • Certifique-se de que SKILL.md está devidamente formatado.

Repositório de exemplo

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

  • Habilidade personalizada para migração do RabbitMQ para Azure Service Bus.
  • Demonstra o uso de bibliotecas JDK internas.
  • Demonstra uma estrutura de competências e formatação adequadas.

Clonar e explorar:

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"

Troubleshooting

Habilidade não detetada

Problema: O agente não usa a tua competência personalizada.

Soluções:

  • Verifica se o nome da skill no front matter do YAML não contém espaços. Use hífens em vez disso (por exemplo, my-custom-skill não my custom skill).
  • Verifique se corresponde description às palavras-chave do seu prompt.
  • Verifica a sintaxe do YAML front matter.
  • Certifique-se de que SKILL.md está em .github/skills/{skill-name}/.
  • Torna o teu enunciado de migração mais específico.

Passos seguintes