Visual Studio Code에서 사용자 지정 GitHub Copilot 에이전트 만들기

완료됨

사용자 지정 에이전트는 Visual Studio Code의 특정 역할 또는 워크플로에 대해 구성하는 특수한 AI 도우미입니다. 각 에이전트는 GitHub Copilot의 동작을 특정 유형의 전문가로 작동하도록 조정하는 지침 및 도구 권한 집합을 캡슐화합니다. GitHub Copilot 채팅에서 사용자 지정 에이전트를 선택하면 AI는 해당 에이전트의 페르소나를 채택하고 지침을 따르며 할당한 도구만 사용합니다.

사용자 지정 GitHub Copilot 에이전트란?

사용자 지정 에이전트는 GitHub Copilot 채팅을 역할별 도우미로 변환하는 맞춤형 구성입니다. 사용자 지정 에이전트는 범용 동작에 의존하는 대신 정의한 지침 및 제약 조건에 따라 작동합니다. 예를 들어 취약성 코드를 분석하는 "보안 검토자" 에이전트, 단위 테스트 생성에 중점을 둔 "테스트 기록기" 에이전트 또는 파일을 수정하지 않고 구현 계획을 생성하는 "Planner" 에이전트를 만들 수 있습니다.

사용자 지정 에이전트는 Visual Studio Code의 고급 기능으로 도입되었습니다(이전에 "사용자 지정 채팅 모드"라고도 하는 Visual Studio Code 릴리스 1.106에서 사용 가능). 개발자는 다양한 개발 컨텍스트에서 AI가 작동하는 방식을 세밀하게 제어할 수 있습니다. 각 에이전트는 언제든지 AI 모드를 전환하도록 선택할 수 있는 GitHub Copilot 채팅 에이전트 드롭다운에 표시됩니다.

사용자 지정 에이전트는 다음 두 위치에 저장할 수 있습니다.

  • 작업 영역 에이전트: 리포지토리의 폴더에 .github/agents/ 저장됩니다. 이러한 에이전트는 버전 제어를 통해 팀과 공유되어 프로젝트의 모든 사용자가 동일한 특수 도우미에 액세스할 수 있도록 합니다.

  • 사용자 프로필 에이전트: Visual Studio Code 사용자 프로필의 프롬프트 폴더에 저장됩니다. 이러한 에이전트는 개인적이고 모든 작업 영역에서 사용할 수 있으며 개별 워크플로 기본 설정을 반영하는 에이전트에 유용합니다.

사용자 지정 에이전트의 작동 방식 검사

사용자 지정 에이전트는 확장이 있는 Markdown 파일입니다 .agent.md . Visual Studio Code는 작업 영역의 .agent.md 폴더(또는 사용자 프로필)에 있는 모든 .github/agents/ 파일을 자동으로 검색하고 GitHub Copilot 채팅 인터페이스에서 사용 가능한 에이전트로 로드합니다.

각 에이전트 파일은 다음 두 부분으로 구성됩니다.

  • YAML frontmatter 헤더: 이 섹션에서는 에이전트 이름, 채팅 인터페이스에 표시되는 설명, 사용할 수 있는 도구, 선택적 모델 기본 설정 및 다른 에이전트에 연결하기 위한 핸드오프 구성을 포함한 메타데이터를 지정합니다.

  • Markdown 본문: 이 섹션에는 에이전트의 지침과 컨텍스트가 포함되어 있습니다. 콘텐츠는 에이전트가 활성 상태일 때마다 모든 사용자 프롬프트 앞에 추가되어 GitHub Copilot가 요청을 해석하고 응답하는 방법을 안내합니다. 사용자 지정 명령 파일에 사용되는 것과 동일한 자연어 스타일로 이러한 지침을 작성합니다.

에이전트 프런트매터 필드

YAML 프런트매터는 에이전트 동작을 구성하기 위해 다음 필드를 지원합니다.

분야 Description
description 에이전트를 선택할 때 채팅 입력에 자리 표시자 텍스트로 표시되는 간단한 설명입니다.
name 선택적 표시 이름입니다. 생략하면 파일 이름(없음 .agent.md)이 사용됩니다.
tools 에이전트에서 사용할 수 있는 도구 배열(예: ['read', 'edit', 'search'].) 이 필드를 생략하면 사용 가능한 모든 도구에 액세스할 수 있습니다.
model 선호되는 AI 모델입니다. 단일 모델 ID 문자열 또는 대체(예 ['o4-mini', 'gpt-4.1']: )에 대한 모델 ID 배열일 수 있습니다.
agents 이 에이전트에서 스바겐트로 호출할 수 있는 에이전트 이름의 배열입니다.
handoffs 다른 에이전트로의 전환을 정의하는 핸드오프 구성의 배열입니다(다음 단원에서 설명).
argument-hint 사용자가 에이전트에 대한 입력으로 입력해야 하는 항목을 설명하는 채팅 입력에 표시되는 힌트 텍스트입니다.
user-invokable 에이전트가 에이전트 드롭다운에 표시될지 여부를 제어하는 불리언 값입니다. false를 다른 에이전트에 의해 서브에이전트로만 호출될 수 있는 에이전트를 생성하도록 설정합니다. 기본값은 true입니다.
disable-model-invocation 설정 true하면 에이전트는 언어 모델에 프롬프트를 보내지 않습니다. 도구를 통해서만 작업을 수행하는 에이전트에 유용합니다.
target 에이전트 client 에 대한 실행 환경을 지정합니다( Visual Studio Code에서 실행, 기본값) 또는 cloud (클라우드에서 실행)
mcp-servers 에이전트가 액세스해야 하는 MCP(모델 컨텍스트 프로토콜) 서버를 정의하는 개체입니다. MCP 서버는 외부 도구 및 데이터 원본에 연결하여 에이전트 기능을 확장합니다.

다음 예제에서는 이러한 필드 중 몇 가지를 사용하는 사용자 지정 에이전트 파일의 구조를 보여줍니다.

---
description: Reviews code for security vulnerabilities and suggests improvements
tools: ['search', 'read']
---
# Security Reviewer

You are a senior security engineer. When the user provides code or asks you to review files, analyze the code for common security vulnerabilities including:

- SQL injection
- Cross-site scripting (XSS)
- Authentication and authorization flaws
- Insecure data handling
- Hardcoded credentials or secrets

Provide your findings as a structured list with severity levels (Critical, High, Medium, Low). For each finding, explain the vulnerability, show the affected code, and suggest a secure alternative.

Do not modify any files. Your role is advisory only.

개발자가 GitHub Copilot 채팅에서 이 에이전트를 선택하면 모든 상호 작용에서 이러한 지침을 사용합니다. 에이전트는 보안 분석에 집중해야 하며 명령 및 도구 집합이 읽기 전용 작업으로 제한하기 때문에 파일을 편집하려고 시도하지 않습니다.

도구를 사용하여 에이전트 기능 정의

tools YAML 프런트매터의 필드는 에이전트가 수행할 수 있는 작업을 제어합니다. 도구는 에이전트가 파일을 읽고, 코드를 편집하거나, 코드베이스를 검색하거나, 터미널 명령을 실행하거나, 다른 기능에 액세스할 수 있는지 여부를 결정합니다. 도구 목록을 조정하여 각 에이전트가 해당 역할과 관련된 작업만 수행하도록 합니다.

일반적인 도구는 다음과 같습니다.

도구 Description
read 작업 영역에서 파일 내용 읽기
edit 작업 영역에서 파일 수정
search 작업 영역 파일에서 검색
fetch URL에서 콘텐츠 검색
terminal 터미널에서 명령 실행
agent 다른 에이전트를 하위 에이전트로 호출

필드를 완전히 생략 tools 하면 에이전트는 기본적으로 모든 표준 도구에 액세스할 수 있습니다. 그러나 에이전트의 동작에 대한 명확한 경계를 만들기 때문에 명시적으로 도구를 나열하는 것이 가장 좋습니다. 코드를 수정해서는 안 되는 계획 에이전트는 오직 ['search', 'read', 'fetch']만 지정해야 하고, 코드를 작성해야 하는 구현 에이전트는 ['search', 'read', 'edit', 'terminal']을 포함해야 합니다.

비고

에이전트의 구성에 나열된 도구를 현재 환경에서 사용할 수 없는 경우 자동으로 무시됩니다. 즉, 오류를 일으키지 않고 특정 설정에서만 사용할 수 있는 도구를 사용하여 에이전트를 정의할 수 있습니다.

하위 대리인

agents YAML 프런트매터의 필드를 사용하면 에이전트가 다른 에이전트를 스바겐트로 호출할 수 있습니다. 하위 작업을 처리하기 위해 다른 에이전트가 호출한 다음 결과를 자체 응답에 통합하는 에이전트입니다. 이 동작은 제어를 사용자에게 전송하는 핸드오프와 다릅니다. 에이전트의 처리 내에서 스바겐트 호출이 발생하고 결과를 호출 에이전트에 자동으로 반환합니다.

예를 들어 "수석 개발자" 에이전트는 "보안 검토자" 하위 에이전트를 호출하여 코드 조각을 확인하고, 결과를 수신한 다음, 이러한 결과를 최종 응답에 통합할 수 있습니다.

스바겐트를 구성하려면 필드에 스바겐트 이름을 나열합니다 agents .

---
description: Lead developer agent that coordinates with specialists
tools: ['search', 'read', 'edit']
agents: ['security-reviewer', 'test-writer']
---

스바겐트로만 사용하도록 의도된 에이전트는 에이전트 드롭다운에 표시되지 않도록 설정 user-invokable: false 하여 인터페이스를 깨끗하게 유지할 수 있습니다.

비고

서브에이전트를 사용하려면 호출 에이전트의 tools 목록에 agent 도구를 포함하거나, 모든 도구가 사용 가능하도록 tools 필드를 완전히 생략합니다. 이 agent 도구를 사용하면 한 에이전트가 응답하는 동안 프로그래밍 방식으로 다른 에이전트를 호출할 수 있습니다.

조직 단위 에이전트

여러 리포지토리에서 공유 에이전트를 유지 관리하는 팀의 경우 GitHub는 조직 수준 에이전트를 지원합니다. 이러한 에이전트는 GitHub 조직 수준에서 구성되며 조직에 액세스할 수 있는 GitHub 계정에 로그인할 때 Visual Studio Code의 작업 영역 및 사용자 프로필 에이전트와 함께 자동으로 표시됩니다.

조직 수준 에이전트는 팀 전체에서 일관성을 보장합니다. 예를 들어 보안 팀은 조직의 모든 리포지토리에서 사용할 수 있는 공유 "보안 검토자" 에이전트를 게시하여 각 리포지토리가 자체 에이전트를 정의할 필요 없이 모든 위치에 동일한 보안 검토 조건이 적용되도록 할 수 있습니다.

에이전트 형식 호환성

Visual Studio Code는 형식의 .agent.md 에이전트 파일을 기본 구성으로 인식합니다. 또한 Visual Studio Code는 Claude Code 에이전트 형식을 따르는 Claude 스타일 에이전트 파일을 지원합니다. 이미 Claude Code의 에이전트 구성이 있는 경우 수정 없이 Visual Studio Code의 GitHub Copilot 채팅에서 작동합니다. 이 상호 호환성은 여러 AI 도구를 사용하는 팀에 대한 마이그레이션을 간소화합니다.

기본 제공 에이전트 및 사용자 지정 에이전트

Visual Studio Code에는 채팅을 위한 범용 구성을 제공하는 몇 가지 기본 제공 에이전트가 포함되어 있습니다. 이러한 에이전트에는 일반적인 작업에 대한 기본 "GitHub Copilot" 에이전트 및 특수 에이전트가 포함됩니다. 사용자 지정 에이전트는 프로젝트별 지침 및 도구 구성을 사용하여 고유한 역할을 정의할 수 있도록 하여 이 시스템을 확장합니다.

사용자 지정 에이전트는 기본 제공 에이전트와 함께 GitHub Copilot 채팅 에이전트 드롭다운에 표시됩니다. 언제든지 에이전트 간에 전환하여 AI 작동 방식을 변경할 수 있습니다. 이러한 유연성을 통해 GitHub Copilot 채팅 인터페이스를 종료하지 않고도 다양한 작업 모드(계획, 코딩, 검토, 테스트) 간에 이동할 수 있습니다.

기본 제공 에이전트에 비해 사용자 지정 에이전트의 주요 이점은 특이성입니다. 기본 제공 코드 검토 에이전트는 일반적인 모범 사례를 적용하지만 사용자 지정 "코드 검토자" 에이전트는 팀의 특정 검토 검사 목록을 적용하고, 프로젝트의 아키텍처 결정을 참조하고, 코드베이스에서 가장 중요한 패턴 및 안티패턴에 집중할 수 있습니다.

사용자 지정 에이전트를 만드는 단계

Visual Studio Code에서 사용자 지정 에이전트를 만들려면 다음 단계를 수행합니다.

  1. 에이전트 메뉴 열기: GitHub Copilot 채팅 창에서 에이전트 드롭다운(일반적으로 현재 에이전트 이름을 표시)을 엽니다. 사용자 지정 에이전트 구성을 선택한 다음 새 사용자 지정 에이전트 만들기를 선택합니다. 또는 명령 팔레트(Ctrl+Shift+P)에서 명령을 실행 Chat: New Custom Agent 합니다.

  2. 범위를 선택합니다. 에이전트 파일을 저장할 위치를 선택합니다. 작업 영역을 선택하여 파일을 .github/agents/ 만들거나(버전 제어를 통해 팀에서 사용할 수 있도록) 사용자 프로필을 선택하여 모든 작업 영역에서 개인적이고 사용할 수 있도록 합니다.

  3. 에이전트 이름: 에이전트의 설명 파일 이름을 입력합니다. 이 이름은 에이전트 드롭다운에서 기본 이름으로 나타납니다. 에이전트의 역할을 명확하게 나타내는 이름(예: planner, code-reviewer또는 test-writer.)을 사용합니다.

  4. 에이전트 메타데이터 정의: 새로 만든 .agent.md 파일의 YAML 프런트매터에서 에이전트의 속성을 구성합니다. 에이전트를 description으로 설정하여 이 텍스트가 채팅 입력에 자리 표시자 텍스트로 나타나도록 하십시오. 에이전트가 액세스해야 할 tools을 지정하고, 필요에 따라 선호하는 model를 설정하거나 handoffs을 다른 에이전트로 구성합니다.

  5. 에이전트의 지침을 작성합니다. YAML 프런트매터 아래의 파일 본문에서 에이전트에 대한 사용자 지정 지침을 제공합니다. 이러한 지침은 에이전트의 페르소나, 전문 지식 및 행동 지침을 정의합니다. AI가 작업에 접근하는 방법, 집중해야 할 사항 및 따라야 할 제약 조건을 알려주는 명확하고 구체적인 언어를 사용하여 Markdown에 작성합니다.

  6. 저장 및 활성화: 파일을 저장합니다. 사용자 지정 에이전트가 GitHub Copilot 채팅 에이전트 드롭다운에 즉시 나타납니다(user-invokabletrue으로 설정되어 있는 경우, 기본값입니다). 에이전트를 선택하여 사용하기 시작합니다.

팁 (조언)

GitHub Copilot 채팅에서 /agents를 빠른 바로 가기로 입력하여 기본 제공, 작업 영역, 사용자 프로필 및 조직 수준의 에이전트를 포함한 모든 사용 가능한 에이전트를 보고 전환할 수 있습니다.

에이전트 기술

에이전트 기술은 사용자 지정 에이전트와 관련이 있지만 고유한 개념입니다. 에이전트가 지침 및 도구를 사용하여 페르소나를 정의하는 동안, 에이전트 기술 (파일에 정의된)은 에이전트가 활용할 수 있는 특정 기능이나 전문 분야를 설명합니다. 기술은 에이전트가 알고 수행할 수 있는 일에 대한 구조화된 메타데이터를 제공합니다. Visual Studio Code는 광범위한 사용자 지정 시스템의 일부로 기술을 지원합니다. 기술은 일반적으로 작업 영역에서 정의되며 GitHub Copilot에서 자동으로 검색되어 전문 지식이 있는 에이전트 응답을 향상시킵니다.

사용자 지정 에이전트의 예

다음 예제에서는 일반적인 개발 역할에 대한 에이전트를 정의하는 방법을 보여 줍니다.

"Planner" 에이전트

Planner 에이전트는 코드를 수정하지 않고 요구 사항을 분석하고 구현 계획을 생성하는 데 중점을 둡니다. 읽기 전용 도구만 사용하고 계획을 실행할 준비가 되면 구현 에이전트에 대한 핸드오프를 포함합니다.

---
description: Generates high-level implementation plans without writing code
tools: ['search', 'read', 'fetch']
handoffs:
  - label: Start Implementation
    agent: implementer
    prompt: Now implement the plan outlined above.
    send: false
---
# Planner

You are a senior software architect. When the user describes a feature or change, analyze the request and generate a detailed implementation plan.

Your plan should include:
1. A summary of the feature requirements.
2. A list of files that need to be created or modified.
3. Step-by-step implementation tasks in logical order.
4. Any potential risks or considerations.

Do not write or modify any code. Focus on planning only. Ask clarifying questions if the requirements are ambiguous.

"코드 검토자" 에이전트

코드 검토자 에이전트는 품질 문제, 보안 취약성 및 모범 사례 준수에 대한 코드를 검사합니다. 읽기 및 검색 도구를 사용하지만 파일을 직접 편집하지는 않습니다.

---
description: Reviews code for bugs, security issues, and style compliance
tools: ['search', 'read']
---
# Code Reviewer

You are an experienced code reviewer. When the user asks you to review code, examine it for:

- Bugs and logical errors
- Security vulnerabilities (SQL injection, XSS, authentication flaws)
- Performance issues
- Naming convention violations
- Missing error handling
- Code duplication

Present your findings as a structured review with severity levels. For each issue, explain the problem, show the affected code, and suggest an improvement. End with an overall assessment of code quality.

이러한 예제는 팀의 특정 요구 사항에 맞게 조정할 수 있습니다. 주요 원칙은 특정 작업에 에이전트를 집중시키는 명확한 지침을 정의하고 에이전트의 책임과 일치하도록 도구 목록을 구성하는 것입니다.

요약

Visual Studio Code의 사용자 지정 에이전트를 사용하면 맞춤형 지침 및 도구 권한으로 특수 AI 페르소나를 정의할 수 있습니다. 작업 영역 또는 사용자 프로필에서 파일을 만들 .agent.md 면 계획, 구현, 검토, 테스트 등 특정 개발 역할에 대한 에이전트를 빌드할 수 있습니다. 각 에이전트는 사용자가 허용하는 도구만 사용하고 사용자가 제공한 지침에 따라 정의한 경계 내에서 작동합니다. 스바겐트, 조직 수준 에이전트 및 MCP 서버 통합과 같은 고급 기능은 에이전트가 수행할 수 있는 작업을 확장합니다. 이러한 기능을 사용하면 개발 워크플로의 여러 단계에서 GitHub Copilot가 동작하는 방식을 정확하게 제어할 수 있습니다.