Freigeben über


Anpassen des GitHub Copilot-Modernisierungs-Agents

Der GitHub Copilot-Modernisierungs-Agent unterstützt benutzerdefinierte Fähigkeiten, mit denen Sie organisationsspezifische Migrationsmuster, interne Bibliotheksnutzung und Codierungsstandards definieren können. Mithilfe dieser benutzerdefinierten Fähigkeiten können Sie eine konsistente Modernisierung in Ihrer Organisation sicherstellen und dabei proprietäre Kenntnisse verwenden.

Was sind benutzerdefinierte Fähigkeiten?

Benutzerdefinierte Fähigkeiten folgen der Spezifikation der Agent-Fähigkeiten , um dem Modernisierungs-Agent beizubringen, wie bestimmte Migrationsaufgaben mithilfe der Muster und Bibliotheken Ihrer Organisation ausgeführt werden. Wenn Sie einen Modernisierungsplan erstellen, erkennt der Agent basierend auf Ihrer Migrationsaufforderung automatisch relevante benutzerdefinierte Fähigkeiten und wendet sie an.

Benutzerdefinierte Fähigkeiten sind nützlich für:

  • Interne Bibliotheksmigrationen: Wechseln zu organisationsspezifischen SDKs oder Frameworks.
  • Erneute Verwendung von Migrationsmustern: Erfassen und Erneutes Verwenden von erfolgreichen Migrationsmustern.

Benutzerdefinierte Qualifikationsstruktur

Definieren Sie jede benutzerdefinierte Fähigkeit in einer SKILL.md Datei mit:

  • YAML-Front-Matter: Metadaten für die Qualifikationserkennung.
  • Übersicht: Beschreibung des Migrationsszenarios.
  • Schritte: Detaillierte Anweisungen für den Agent.
  • Beispielcode: Konkrete Beispiele für die Migration.

Erstellen einer benutzerdefinierten Fähigkeit

Schritt 1: Erstellen des Qualifikationsverzeichnisses

Erstellen Sie einen neuen Ordner unter .github/skills/ Ihrem Repository mit einem beschreibenden Namen:

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

Schritt 2: Schreiben der SKILL.md Datei

Erstellen Sie .github/skills/my-migration-pattern/SKILL.md mit der im folgenden Abschnitt gezeigten Struktur.

Erforderliche Front-Matter-Felder

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

Wichtig: Das description Feld ist kritisch. Der Agent verwendet ihn, um zu bestimmen, wann die Fähigkeit basierend auf der Migrationsaufforderung des Benutzers angewendet werden soll. Machen Sie sie spezifisch und präzise.

Gute Beschreibungen:

  • ✅ "Migrieren von RabbitMQ mit AMQP zu Azure Service Bus für Messaging"
  • ✅ "Direkte JDBC-Aufrufe durch Spring Data Repositorys ersetzen"

Schlechte Beschreibungen:

  • ❌ "Nachrichtenmigration" (zu vage)
  • ❌ "Bibliotheken aktualisieren" (nicht spezifisch)
  • ❌ "Code verbessern" (unklares Ziel)

Schritt 3: Anbieten von Beispielen und Verifikationsprüfungen der Migration

Schließen Sie Codebeispiele und Überprüfungsprüfungen ein, um den Agent zu leiten:

  • Codeänderungen: Codeausschnitte mit der migrierten Implementierung mithilfe des neuen Ansatzes.
  • Konfigurationsänderungen: Aktualisierungen von Eigenschaften, XML oder anderen Konfigurationsdateien.
  • Abhängigkeitsänderungen: Maven-, Gradle- oder NuGet-Updates, die für die Migration erforderlich sind.
  • Überprüfungsprüfungen: Kriterien, die der Agent nach der Anwendung der Migration überprüfen soll.

Sie können auch Ressourcendateien im Qualifikationsverzeichnis bereitstellen und dem Agent mitteilen, wie sie im Inhalt der SKILL.md Datei verwendet werden.

Verwenden von benutzerdefinierten Fähigkeiten

Automatische Erkennung

Wenn Sie einen Modernisierungsplan erstellen, führt der Agent automatisch Folgendes aus:

  1. Scannt .github/skills/ auf benutzerdefinierte Fähigkeiten.
  2. Vergleicht Ihre Migrationsaufforderung mit Qualifikationsbeschreibungen.
  3. Integriert relevante Fähigkeiten in den Plan.
  4. Nutzt Kompetenz, um Codetransformationen zu führen.

Beispiel:

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

Manuelle Überprüfung

So überprüfen Sie, welche Fähigkeiten erkannt werden:

  1. Erstellen Sie einen Plan mit Ihrer Aufforderung.

  2. Überprüfen ..github/modernization/{plan-name}/tasks.json

  3. Suchen Sie nach Verweisen auf Ihre benutzerdefinierten Fähigkeiten:

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

Wenn eine Fähigkeit nicht erkannt wird:

  • Verfeinern Sie die Fähigkeit description, um Ihre Eingabeaufforderung besser abzugleichen.
  • Machen Sie die Eingabeaufforderung genauer.
  • Stellen Sie sicher, dass SKILL.md sie ordnungsgemäß formatiert ist.

Beispiel-Repository

Ein vollständiges Beispiel finden Sie im NewsFeedSite-Beispiel-Repository, das Folgendes umfasst:

  • Benutzerdefinierte Funktion für die Migration von RabbitMQ zu Azure Service Bus.
  • Veranschaulicht die Verwendung interner JDK-Bibliotheken.
  • Zeigt die richtige Fähigkeitsstruktur und Formatierung an.

Klonen Sie und erkunden Sie:

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"

Problembehandlung

Qualifikation nicht erkannt

Problem: Der Agent verwendet nicht Ihre benutzerdefinierten Fähigkeiten.

Lösungen:

  • Überprüfen Sie, ob der Qualifikationsname in der YAML-Front-Materie keine Leerzeichen enthält. Verwenden Sie stattdessen Bindestriche (z. B my-custom-skill . nicht my custom skill).
  • Stellen Sie sicher, dass die description mit den Schlüsselwörtern der Eingabeaufforderung übereinstimmt.
  • Überprüfen Sie die YAML-Frontmatter-Syntax.
  • Stellen Sie sicher, dass SKILL.md in .github/skills/{skill-name}/ ist.
  • Machen Sie Ihre Migrationsaufforderung spezifischer.

Nächste Schritte