Dela via


Anpassa GitHub Copilot-moderniseringsagenten

GitHub Copilot-moderniseringsagenten stöder anpassade kunskaper som du kan använda för att definiera organisationsspecifika migreringsmönster, intern biblioteksanvändning och kodningsstandarder. Genom att använda dessa anpassade kunskaper kan du säkerställa konsekvent modernisering i hela organisationen samtidigt som du använder egenutvecklad kunskap.

Vad är anpassade kunskaper?

Anpassade kunskaper följer agentens kompetensspecifikation för att lära moderniseringsagenten hur man utför specifika migreringsuppgifter med hjälp av organisationens mönster och bibliotek. När du skapar en moderniseringsplan identifierar och tillämpar agenten automatiskt relevanta anpassade kunskaper baserat på din migreringsprompt.

Anpassade kunskaper är användbara för:

  • Interna biblioteksmigreringar: Växla till organisationsspecifika SDK:er eller ramverk.
  • Återanvända migreringsmönster: Avbilda och återanvända lyckade migreringsmönster.

Anpassad kompetensstruktur

Definiera varje anpassad färdighet i en SKILL.md fil med:

  • YAML-metadata: Metadata för färdighetsdetektering.
  • Översikt: Beskrivning av migreringsscenariot.
  • Steg: Detaljerade instruktioner för agenten.
  • Exempelkod: Konkreta exempel som visar migreringen.

Skapa en anpassad färdighet

Steg 1: Skapa kunskapskatalogen

Skapa en ny mapp under .github/skills/ på lagringsplatsen med ett beskrivande namn:

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

Steg 2: Skriv filen SKILL.md

Skapa .github/skills/my-migration-pattern/SKILL.md med den struktur som visas i följande avsnitt.

Obligatoriska front matter-fält

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

Viktigt: Fältet description är kritiskt. Agenten använder den för att avgöra när kunskapen ska tillämpas baserat på användarens migreringsprompt. Gör det specifikt och korrekt.

Bra beskrivningar:

  • ✅ "Migrera från RabbitMQ med AMQP till Azure Service Bus för meddelanden"
  • ✅ "Ersätt direkta JDBC-anrop med Spring Data-lagringsplatser"

Felaktiga beskrivningar:

  • ❌ "Meddelandemigrering" (för vag)
  • ❌ "Uppdatera bibliotek" (inte specifikt)
  • ❌ "Förbättra koden" (oklart mål)

Steg 3: Ange exempel och verifieringskontroller för migrering

Inkludera kodexempel och verifieringskontroller för att vägleda agenten:

  • Kodändringar: kodfragment som visar den migrerade implementeringen med den nya metoden.
  • Konfigurationsändringar: uppdateringar av egenskaper, XML eller andra konfigurationsfiler.
  • Beroendeändringar: Maven-, Gradle- eller NuGet-uppdateringar som krävs för migreringen.
  • Verifieringskontroller: villkor som agenten ska verifiera när migreringen har tillämpats.

Du kan också ange resursfiler i kunskapskatalogen och berätta för agenten hur de ska användas i filens SKILL.md innehåll.

Använda anpassade kunskaper

Automatisk detektion

När du skapar en moderniseringsplan, gör agenten automatiskt:

  1. .github/skills/ Söker efter anpassade kunskaper.
  2. Jämför migreringsuppmaningen med kompetensbeskrivningar.
  3. Införlivar relevanta färdigheter i planen.
  4. Använder kunskaper för att vägleda kodtransformeringar.

Exempel:

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

Manuell verifiering

Så här kontrollerar du vilka kunskaper som identifieras:

  1. Skapa en plan med uppmaningen.

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

  3. Leta efter referenser till dina anpassade kunskaper:

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

Om en färdighet inte identifieras:

  • Förfina färdigheten description för att bättre matcha din uppmaning.
  • Gör uppmaningen mer specifik.
  • Se till att SKILL.md är korrekt formaterad.

Exempellagringsplats

Ett fullständigt exempel finns i exempellagringsplatsen NewsFeedSite, som innehåller:

  • Anpassad funktion för migrering av RabbitMQ till Azure Service Bus.
  • Visar hur du använder interna JDK-bibliotek.
  • Visar rätt kompetensstruktur och formatering.

Klona och utforska:

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"

Felsökning

Kunskapen har inte identifierats

Problem: Agenten använder inte din anpassade kompetens.

Lösningar:

  • Kontrollera att färdighetsnamnet i YAML-huvudet inte innehåller blanksteg. Använd bindestreck i stället (till exempel my-custom-skill inte my custom skill).
  • Kontrollera att description matchar dina frågenyckelord.
  • Kontrollera syntaxen för YAML-front matter.
  • Kontrollera att SKILL.md är i .github/skills/{skill-name}/.
  • Gör migreringsprompten mer specifik.

Nästa steg