Udostępnij za pośrednictwem


Dostosowywanie agenta modernizacji narzędzia GitHub Copilot

Agent modernizacji GitHub Copilot obsługuje niestandardowe funkcje, których można użyć do definiowania wzorców migracji organizacji, użycia bibliotek wewnętrznych i standardów kodowania. Korzystając z tych umiejętności niestandardowych, możesz zapewnić spójną modernizację w całej organizacji, korzystając z własnościowej wiedzy.

Co to są umiejętności niestandardowe?

Niestandardowe umiejętności są zgodne ze specyfikacją umiejętności agenta , aby nauczyć agenta modernizacji, jak wykonywać określone zadania migracji przy użyciu wzorców i bibliotek organizacji. Podczas tworzenia planu modernizacji agent automatycznie wykrywa i stosuje odpowiednie umiejętności niestandardowe na podstawie monitu o migrację.

Umiejętności niestandardowe są przydatne w następujących celach:

  • Migracje bibliotek wewnętrznych: przełączanie do zestawów SDK lub struktur specyficznych dla organizacji.
  • Ponowne użycie wzorców migracji: Zbieranie i ponowne wykorzystanie skutecznych wzorców migracji.

Niestandardowa struktura umiejętności

Zdefiniuj każdą niestandardową umiejętność w pliku SKILL.md za pomocą:

  • YAML front matter: Metadane do wykrywania umiejętności.
  • Omówienie: opis scenariusza migracji.
  • Kroki: Szczegółowe instrukcje dla agenta.
  • Przykładowy kod: konkretne przykłady przedstawiające migrację.

Tworzenie niestandardowej umiejętności

Krok 1. Tworzenie katalogu umiejętności

Utwórz nowy folder w obszarze .github/skills/ w repozytorium z opisową nazwą:

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

Krok 2. Zapisywanie pliku SKILL.md

Utwórz .github/skills/my-migration-pattern/SKILL.md za pomocą struktury pokazanej w poniższej sekcji.

Wymagane pola metadanych dokumentu

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

Ważne: description pole ma krytyczne znaczenie. Agent używa go do określenia, kiedy zastosować umiejętność na podstawie monitu migracji użytkownika. Uczyń to precyzyjnym i dokładnym.

Dobre opisy:

  • ✅ "Migrowanie z programu RabbitMQ za pomocą protokołu AMQP do usługi Azure Service Bus na potrzeby obsługi komunikatów"
  • ✅ "Zastąp bezpośrednie wywołania JDBC repozytoriami Spring Data"

Złe opisy:

  • ❌ "Migracja komunikatów" (zbyt niejasna)
  • ❌ "Aktualizuj biblioteki" (nie specyficzne)
  • ❌ "Ulepszanie kodu" (niejasny cel)

Krok 3. Podawanie przykładów i testów weryfikacji migracji

Dołącz przykłady kodu i sprawdzanie weryfikacyjne, aby poprowadzić agenta.

  • Zmiany kodu: fragmenty kodu pokazujące zmigrowane implementacje przy użyciu nowego podejścia.
  • Zmiany konfiguracji: aktualizacje właściwości, XML lub innych plików konfiguracji.
  • Zmiany zależności: aktualizacje Maven, Gradle lub NuGet wymagane do migracji.
  • Kontrola weryfikacyjna: kryteria, które agent powinien zweryfikować po zastosowaniu migracji.

Możesz również podać pliki zasobów w katalogu umiejętności i poinformować agenta, jak używać ich w treści pliku SKILL.md.

Korzystanie z umiejętności niestandardowych

Automatyczne wykrywanie

Podczas tworzenia planu modernizacji agent automatycznie:

  1. Skanuje .github/skills/ pod kątem umiejętności niestandardowych.
  2. Porównuje monit migracji z opisami umiejętności.
  3. Uwzględnia odpowiednie umiejętności w planie.
  4. Używa umiejętności do kierowania transformacjami kodu.

Przykład:

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

Weryfikacja ręczna

Aby sprawdzić, które umiejętności zostały wykryte:

  1. Utwórz plan z podpowiedzią.

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

  3. Poszukaj wzmianek o swoich umiejętnościach własnych.

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

Jeśli nie wykryto umiejętności:

  • Uściślij umiejętność description, aby lepiej dopasować swój przekaz.
  • Wprowadź bardziej szczegółowy monit.
  • Upewnij się, że SKILL.md jest poprawnie sformatowany.

Przykładowe repozytorium

Aby zapoznać się z kompletnym przykładem, zobacz przykładowe repozytorium NewsFeedSite, które obejmuje:

  • Niestandardowa umiejętność migracji RabbitMQ do usługi Azure Service Bus.
  • Demonstruje używanie wewnętrznych bibliotek JDK.
  • Pokazuje odpowiednią strukturę umiejętności i formatowanie.

Klonowanie i eksplorowanie:

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

Nie wykryto umiejętności

Problem: Agent nie korzysta z umiejętności niestandardowych.

Rozwiązania:

  • Sprawdź, czy nazwa umiejętności w metadanych YAML nie zawiera spacji. Zamiast tego użyj łączników (na przykład my-custom-skill nie my custom skill).
  • Sprawdź, czy słowa kluczowe monitu description są zgodne.
  • Sprawdź składnię sekcji nagłówkowej YAML.
  • Upewnij się, że SKILL.md znajduje się w pliku .github/skills/{skill-name}/.
  • Zwiększ szczegółowość monitu o migrację.

Następne kroki