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 필드는 중요합니다. 에이전트는 이를 사용하여 사용자의 마이그레이션 프롬프트에 따라 기술을 적용할 시기를 결정합니다. 구체적이고 정확하게 하십시오.
좋은 설명:
- ✅ "메시징을 위해 AMQP를 사용하여 RabbitMQ에서 Azure Service Bus로 마이그레이션"
- ✅ "직접 JDBC 호출을 Spring Data 리포지토리로 바꾸기"
잘못된 설명:
- ❌ "메시징 마이그레이션"(너무 모호함)
- ❌ "라이브러리 업데이트"(특정하지 않음)
- ❌ "코드 개선"(명확하지 않은 목표)
3단계: 예제 및 마이그레이션 확인 검사 제공
에이전트를 안내하는 코드 예제 및 확인 검사를 포함합니다.
- 코드 변경: 새 방법을 사용하여 마이그레이션된 구현을 보여 주는 코드 조각입니다.
- 구성 변경: 속성, XML 또는 기타 구성 파일에 대한 업데이트입니다.
- 종속성 변경: 마이그레이션에 필요한 Maven, Gradle 또는 NuGet 업데이트입니다.
- 확인 검사: 마이그레이션을 적용한 후 에이전트가 유효성을 검사해야 하는 조건입니다.
기술 디렉터리에 리소스 파일을 제공하고 에이전트에게 파일 내용 SKILL.md 에서 리소스 파일을 사용하는 방법을 알려줄 수도 있습니다.
사용자 지정 기술 사용
자동 검색
현대화 계획을 만들면 에이전트가 자동으로 다음을 수행합니다.
- 사용자 지정 기술을 검색합니다
.github/skills/. - 마이그레이션 프롬프트를 기술 설명과 비교합니다.
- 관련 기술을 계획에 통합합니다.
- 기술을 사용하여 코드 변환을 안내합니다.
Example:
# Agent will automatically detect and use the RabbitMQ skill
modernize plan create "migrate from rabbitmq to azure service bus"
수동 확인
검색된 기술을 확인하려면 다음을 수행합니다.
프롬프트를 사용하여 계획을 만듭니다.
검토합니다
.github/modernization/{plan-name}/tasks.json.사용자 지정 기술에 대한 참조를 검색하십시오.
"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}/에 있는지 확인합니다. - 마이그레이션 프롬프트를 보다 구체적으로 만듭니다.