Поделиться через


Настройте агента модернизации GitHub Copilot

Агент модернизации GitHub Copilot поддерживает пользовательские навыки, которые можно использовать для определения шаблонов миграции для конкретной организации, использования внутренней библиотеки и стандартов кодирования. Используя эти пользовательские навыки, вы можете обеспечить согласованную модернизацию в организации при использовании собственных знаний.

Что такое пользовательские навыки?

Настраиваемые навыки соответствуют спецификации навыков агента, чтобы научить агент модернизации выполнять определенные задачи миграции с использованием шаблонов и библиотек вашей организации. При создании плана обновления агент автоматически обнаруживает и применяет соответствующие пользовательские навыки в зависимости от вашего запроса на миграцию.

Пользовательские навыки полезны для:

  • Миграция внутренней библиотеки: переход на пакеты SDK для конкретной организации или платформы.
  • Повторно используйте шаблоны миграции: регистрация и повторное использование успешных шаблонов миграции.

Настраиваемая структура навыка

Определите каждый пользовательский навык в файле SKILL.md, используя:

  • Интерфейс YAML: метаданные для обнаружения навыков.
  • Обзор. Описание сценария миграции.
  • Действия. Подробные инструкции для агента.
  • Пример кода: конкретные примеры, демонстрирующие миграцию.

Создайте пользовательский навык

Шаг 1. Создание каталога навыка

Создайте папку в .github/skills/ репозитории с описательным именем:

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

Шаг 2. Создайте файл SKILL.md

Создайте .github/skills/my-migration-pattern/SKILL.md с той структурой, которая показана в следующем разделе.

Обязательные поля метаданных

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

Важно:description поле имеет решающее значение. Агент использует его для определения момента применения навыка на основе миграционного запроса пользователя. Сделайте его конкретным и точным.

Хорошие описания:

  • ✅ "Миграция из RabbitMQ с AMQP в служебную шину Azure для обмена сообщениями"
  • ✅ "Замените прямые вызовы JDBC репозиториями Spring Data"

Недопустимые описания:

  • ❌ "Миграция сервисов обмена сообщениями" (слишком расплывчатая)
  • ❌ "Обновить библиотеки" (не конкретно)
  • ❌ "Улучшение кода" (неясная цель)

Шаг 3. Предоставление примеров и проверок проверки миграции

Включите примеры кода и проверки проверки, чтобы управлять агентом:

  • Изменения кода: фрагменты кода, показывающие перенесенную реализацию с помощью нового подхода.
  • Изменения конфигурации: обновления свойств, XML или других файлов конфигурации.
  • Изменения зависимостей: обновления Maven, Gradle или NuGet, необходимые для миграции.
  • Проверочные проверки: критерии, которые агент должен подтвердить после применения миграции.

Вы также можете предоставить файлы ресурсов в каталоге навыков и сообщить агенту, как использовать их в содержимом SKILL.md файла.

Используйте пользовательские навыки

Автоматическое обнаружение

При создании плана модернизации агент автоматически:

  1. Сканирует .github/skills/ на предмет пользовательских навыков.
  2. Сравнивает сообщение миграции с описаниями навыков.
  3. Включает соответствующие навыки в план.
  4. Использует навык для руководства преобразованиями кода.

Пример:

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

Проверка вручную

Чтобы проверить, какие навыки обнаружены:

  1. Создайте план с подсказкой.

  2. Проверьте .github/modernization/{plan-name}/tasks.json.

  3. Найдите ссылки на пользовательские навыки:

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

Если навык не обнаружен:

  • Уточните навык description, чтобы лучше соответствовать вашему запросу.
  • Сделайте запрос более конкретным.
  • Убедитесь, что SKILL.md имеет правильное форматирование.

Пример репозитория

Полный пример см. в примере репозитория NewsFeedSite, который включает в себя:

  • Пользовательский навык для миграции из RabbitMQ в Azure Service Bus.
  • Демонстрирует использование внутренних библиотек JDK.
  • Показывает правильную структуру умения и форматирование.

Клонирование и изучение:

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

Навык не обнаружен

Проблема: Агент не использует ваш пользовательский навык.

Решения:

  • Убедитесь, что имя навыка в интерфейсном элементе YAML не содержит пробелов. Вместо этого используйте дефисы (например, my-custom-skill не my custom skill).
  • Убедитесь, что description совпадает с ключевыми словами вашего запроса.
  • Проверьте правильность синтаксиса фронтматтера YAML.
  • Убедитесь, что SKILL.md он находится в .github/skills/{skill-name}/.
  • Укажите запрос на миграцию более конкретно.

Дальнейшие действия