Condividi tramite


Personalizzare l'agente di modernizzazione di GitHub Copilot

L'agente di modernizzazione di GitHub Copilot supporta competenze personalizzate che è possibile usare per definire modelli di migrazione specifici dell'organizzazione, uso interno della libreria e standard di codifica. Usando queste competenze personalizzate, è possibile garantire una modernizzazione coerente all'interno dell'organizzazione usando le conoscenze proprietarie.

Che cosa sono le competenze personalizzate?

Le competenze personalizzate seguono la specifica delle competenze dell'agente per insegnare all'agente di modernizzazione come eseguire attività di migrazione specifiche usando i modelli e le librerie dell'organizzazione. Quando si crea un piano di modernizzazione, l'agente rileva e applica automaticamente le competenze personalizzate pertinenti in base alla richiesta di migrazione.

Le competenze personalizzate sono utili per:

  • Migrazioni di librerie interne: passaggio a SDK o framework specifici dell'organizzazione.
  • Riutilizzare i modelli di migrazione: acquisizione e riutilizzo di modelli di migrazione riusciti.

Struttura della competenza personalizzata

Definire ogni competenza personalizzata in un SKILL.md file con:

  • Front matter YAML: metadati per il rilevamento delle competenze.
  • Panoramica: Descrizione dello scenario di migrazione.
  • Passaggi: istruzioni dettagliate per l'agente.
  • Codice di esempio: esempi concreti che illustrano la migrazione.

Creare una competenza personalizzata

Passaggio 1: Creare la directory delle competenze

Creare una nuova cartella .github/skills/ nel repository con un nome descrittivo:

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

Passaggio 2: Scrivere il file SKILL.md

Creare .github/skills/my-migration-pattern/SKILL.md con la struttura illustrata nella sezione seguente.

Campi front-matter obbligatori

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

Importante: il description campo è critico. L'agente lo usa per determinare quando applicare la competenza in base alla richiesta di migrazione dell'utente. Renderlo specifico e accurato.

Descrizioni valide:

  • ✅ "Eseguire la migrazione da RabbitMQ con AMQP al bus di servizio di Azure per la messaggistica"
  • ✅ "Sostituire le chiamate JDBC dirette con i repository Spring Data"

Descrizioni errate

  • ❌ "Migrazione della messaggistica" (troppo vaga)
  • ❌ "Aggiornare le librerie" (non specifico)
  • ❌ "Migliorare il codice" (obiettivo poco chiaro)

Passaggio 3: Fornire esempi e controlli di verifica della migrazione

Includere esempi di codice e controlli di verifica per guidare l'agente:

  • Modifiche al codice: frammenti di codice che mostrano l'implementazione migrata usando il nuovo approccio.
  • Modifiche alla configurazione: aggiornamenti a proprietà, XML o altri file di configurazione.
  • Modifiche alle dipendenze: aggiornamenti Maven, Gradle o NuGet necessari per la migrazione.
  • Controlli di verifica: i criteri che l'agente deve convalidare dopo l'applicazione della migrazione.

È anche possibile specificare i file di risorse nella directory delle competenze e indicare all'agente come usarli nel contenuto del SKILL.md file.

Usare competenze personalizzate

Rilevamento automatico

Quando si crea un piano di modernizzazione, l'agente esegue automaticamente le operazioni seguenti:

  1. Analizza le .github/skills/ competenze personalizzate.
  2. Confronta la richiesta di migrazione con le descrizioni delle competenze.
  3. Incorpora le competenze pertinenti nel piano.
  4. Usa la competenza per guidare le trasformazioni del codice.

Esempio:

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

Verifica manuale

Per verificare quali competenze vengono rilevate:

  1. Crea un piano con il prompt.

  2. Esaminare .github/modernization/{plan-name}/tasks.json.

  3. Cercare i riferimenti alle competenze personalizzate:

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

Se non viene rilevata una competenza:

  • Affinare la competenza description per adattarsi meglio alla richiesta.
  • Rendere il prompt più specifico.
  • Assicurarsi che SKILL.md sia formattato correttamente.

Repository di esempio

Per un esempio completo, vedere il repository di esempio NewsFeedSite, che include:

  • Competenza personalizzata per la migrazione da RabbitMQ al bus di servizio di Azure.
  • Illustra l'uso di librerie JDK interne.
  • Mostra la struttura e la formattazione appropriate delle competenze.

Clonare ed esplorare:

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"

Risoluzione dei problemi

Competenza non rilevata

Problema: l'agente non utilizza la competenza personalizzata.

Soluzioni:

  • Verificare che il nome dell'abilità nel front matter YAML non contenga spazi. Usare invece trattini (ad esempio, my-custom-skill non my custom skill).
  • Verificare che corrisponda alle description parole chiave del prompt.
  • Controllare la sintassi iniziale YAML.
  • Assicurarsi che SKILL.md sia in .github/skills/{skill-name}/.
  • Rendere la richiesta di migrazione più specifica.

Passaggi successivi