GitHub Copilot 가이드: 커스텀 에이전트와 서브에이전트 오케스트레이션

핵심 답변

GitHub Copilot은 Copilot SDK 및 GitHub Copilot CLI를 통해 커스텀 에이전트와 서브에이전트 오케스트레이션을 지원하며, 개발자가 범위가 제한된 도구, 전용 시스템 프롬프트, 격리된 실행 컨텍스트를 갖춘 특화 에이전트를 정의할 수 있도록 합니다. 런타임은 의도 추론 또는 명시적 선택을 기반으로 임시 서브에이전트에 작업을 위임하고, 메인 컨텍스트를 깔끔하게 유지하면서 수명 주기 이벤트를 상위 세션으로 스트리밍합니다. 이 항목에서는 제품 고유의 선택 가능한 모델 ID가 검증되지 않았습니다.

핵심 정보 한눈에 보기

제품 / 모델 현재 ID 또는 버전 용도 근거
github-copilot 이 항목에서는 제품 고유의 선택 가능한 모델 ID가 검증되지 않았습니다. 제품의 현재 제공 범위 확인 공식 출처 공식 출처

오류 유형과 검증

오류 유형 검증 방법
오래된 모델 또는 버전 정보 게시 전에 모델 이름과 ID를 공식 출처와 비교합니다.
형식이 맞지 않거나 불완전한 출력 문서화된 명세와 고정된 테스트 입력으로 응답을 검증합니다.
검증되지 않은 사실 주장 공식 출처가 뒷받침하지 않는 주장은 한계를 명시하거나 삭제합니다.

자주 묻는 질문

GitHub Copilot에서 서브에이전트 오케스트레이션을 사용하는 주요 아키텍처적 목적은 무엇인가요?

서브에이전트는 독립된 임시 컨텍스트 창에서 작업을 수행합니다. 이러한 구조는 특화된 지침과 도구 실행 결과가 상위 세션의 컨텍스트 창을 어지럽히지 않도록 방지하여, 메인 에이전트가 상위 수준의 계획 및 워크플로 조정에 집중할 수 있도록 지원합니다. 자세한 내용은 Copilot SDK 커스텀 에이전트 가이드를 참조하세요.

서브에이전트의 컨텍스트 격리가 파일 시스템 보안 샌드박스를 보장하나요?

아닙니다. 서브에이전트의 컨텍스트 격리와 허용된 도구 목록 제한은 대화 컨텍스트와 도구 호출 범위를 분리할 뿐이며, 파일 시스템 보안 샌드박스 경계를 형성하지는 않습니다. 컨텍스트 격리 자체를 보안 경계로 간주해서는 안 되며 권한 콜백 등을 통한 명시적 제어가 필요합니다.

CLI의 저장소 디렉터리와 사용자 디렉터리에 동일한 이름의 에이전트가 있으면 어느 것이 우선하나요?

사용자 홈 디렉터리(~/.copilot/agents/)와 저장소 디렉터리(.github/agents/)에 동일한 이름을 가진 커스텀 에이전트가 존재하는 경우, GitHub Copilot CLI는 사용자 홈 디렉터리의 에이전트 정의를 저장소 정의보다 우선하여 적용합니다. 상세 내용은 Copilot CLI 커스텀 에이전트 가이드에 기술되어 있습니다.

Copilot SDK에서 서브에이전트는 상위 세션에 설정된 스킬을 자동으로 상속받나요?

아닙니다. 서브에이전트는 상위 세션의 스킬을 상속받지 않습니다. 스킬은 에이전트별로 명시적으로 선택(opt-in)해야 하며, 에이전트 정의의 skills 배열에 사전 로드할 스킬 이름을 명시해야 세션의 skillDirectories로부터 시작 시점에 즉시 주입됩니다.

이 문서 항목에서 제품 고유의 선택 가능한 기본 모델 ID로 공식 검증된 것은 무엇인가요?

이 항목에서는 제품 고유의 선택 가능한 모델 ID가 검증되지 않았습니다. Copilot SDK 예시 코드에 나타나는 gpt-5.4와 같은 식별자는 세션 설정 방식을 보여주는 예시일 뿐이며, 고정된 기본 모델이나 지원 모델 전체 목록으로 검증된 것이 아닙니다.

출처와 확인 날짜

상세 가이드

GitHub Copilot 커스텀 에이전트의 아키텍처 개요

GitHub Copilot은 단일 세션 내에서 Copilot 런타임이 서브에이전트로 오케스트레이션할 수 있는 커스텀 에이전트 정의 기능을 제공합니다. 커스텀 에이전트는 Copilot SDK 세션에 연결되거나 GitHub Copilot CLI에서 에이전트 프로필로 로드되는 경량 에이전트 구성입니다. 사용자가 요청을 전달하면 런타임은 에이전트의 설명과 작업 의도를 분석하여 자체 시스템 프롬프트, 도구 제한, 선택적 MCP 서버를 갖춘 격리된 서브에이전트 컨텍스트를 자동으로 생성합니다. 이러한 격리된 실행 창은 세부적인 작업 데이터가 상위 세션의 컨텍스트 창을 어지럽히는 것을 방지하며, 메인 에이전트가 상위 수준의 계획 및 워크플로 조정에 집중할 수 있도록 지원합니다.

작업 디렉터리, 도구 허용 목록, 또는 대화 컨텍스트 격리 자체는 파일 시스템 샌드박스나 보안 경계를 입증하지 않습니다. 공식 문서는 컨텍스트 분리와 도구 접근 제한을 명시하고 있지만, 이러한 동작이 별도의 파일 시스템 보안 샌드박스 경계를 보증하는 것은 아닙니다. 또한 이 항목에서는 제품 고유의 선택 가능한 모델 ID가 검증되지 않았습니다. SDK 예제에 등장하는 모델 식별자(예: 세션 설정 예시인 gpt-5.4)는 설정 옵션을 보여주는 예시일 뿐이며 고정된 기본값이나 전체 지원 모델 목록을 의미하지 않습니다.

커스텀 에이전트 구성 요소 참조

Copilot SDK에서는 세션을 초기화할 때 customAgents 속성으로 에이전트를 전달하거나 agent 속성을 통해 사전 선택할 수 있습니다. GitHub Copilot CLI에서는 .agent.md 확장자를 가진 마크다운 파일로 저장되며, 저장소 수준(.github/agents/) 또는 사용자 홈 디렉터리(~/.copilot/agents/)에 배치됩니다. 두 위치에 동일한 이름의 에이전트가 존재하는 경우 사용자 홈 디렉터리의 설정이 저장소 설정보다 우선 적용됩니다.

속성 및 개념 범위 및 형식 동작 및 역할
name 문자열 (SDK 및 CLI .agent.md) 에이전트의 고유 식별자 (소문자 및 하이픈 권장).
displayName 문자열 (SDK) 스트리밍 수명 주기 이벤트에 표시되는 사람이 읽을 수 있는 이름.
description 문자열 (SDK 및 CLI) 런타임이 사용자 의도와 에이전트를 매칭할 수 있도록 전문 분야 명시.
tools 문자열 배열 또는 null (SDK 및 CLI) 에이전트가 사용할 수 있는 도구 목록 (null 또는 생략 시 전체 도구 접근 허용).
prompt 문자열 (SDK) / 본문 (CLI) 에이전트의 동작 지침 및 제약 조건을 정의하는 시스템 프롬프트.
infer 불리언 (기본값: true, SDK) 런타임이 의도에 따라 에이전트를 자동 선택할 수 있는지 여부 제어.
skills 문자열 배열 (SDK) 세션 시작 시 에이전트 컨텍스트에 즉시 주입되는 사전 로드 스킬 목록.
mcpServers 객체 (SDK) 해당 에이전트 전용 Model Context Protocol 서버 설정.
컨텍스트 경계 서브에이전트 실행 창 상위 컨텍스트 오염 없이 수명 주기 이벤트를 스트리밍하는 독립 컨텍스트.

단계별 구현 절차

  1. 에이전트 프로필 정의: Copilot SDK에서는 customAgents 배열 내에 name, description, prompt, 명시적 tools(예: ["grep", "glob", "view"])를 선언합니다. CLI에서는 /agent를 입력하고 프로젝트 또는 사용자 범위를 선택한 후, 수동 작성 또는 대화형 Copilot 안내를 통해 <name>.agent.md 파일을 생성합니다.
  2. 도구 및 컨텍스트 범위 구성: 읽기 전용 작업의 경우 쓰기/수정 도구를 제외하고, 외부 연동이 필요한 경우 MCP 서버를 연결하며, 세션 수준 skillDirectories에서 사전 주입할 skills를 지정합니다.
  3. 세션 사전 선택 또는 추론 활성화: SDK 세션 구성에서 agent: "<name>"을 설정하여 세션 시작과 동시에 활성화하거나(이는 session.rpc.agent.select() 호출과 동일), infer: true를 유지하여 런타임 자동 라우팅을 허용합니다.
  4. 서브에이전트 위임 실행: 상위 세션에 프롬프트를 전송하면 런타임이 의도를 분석하고, 일치하는 에이전트를 선택하여 격리된 서브에이전트 환경을 실행하며, 수명 주기 이벤트(subagent.started, subagent.completed)를 부모 세션에 전달하고 결과를 통합합니다.
  5. 핸드오프 검토 수행: CLI 대화형 생성 과정에서 제공되는 Review content 옵션을 사용하여 생성된 에이전트 프로필을 기본 편집기에서 검토 및 수정한 뒤 등록을 완료합니다.

배포 전 체크리스트

  • 에이전트 식별자 이름이 소문자와 하이픈으로만 구성되어 일관성을 유지하는가?
  • 런타임 추론 매칭을 돕기 위해 전문 영역, 제약 조건 및 트리거 단어(예: seccheck)가 설명에 구체적으로 명시되었는가?
  • 불필요하거나 위험한 도구 접근을 방지하기 위해 도구 허용 목록(tools)을 제한적으로 정의했는가?
  • 서브에이전트는 상위 세션의 스킬을 상속받지 않으므로 필요한 스킬을 skills 배열에 명시적으로 추가했는가?
  • ~/.copilot/agents/.github/agents/ 간의 이름 충돌로 인해 저장소 수준 설정이 의도치 않게 무시되지 않는지 확인했는가?
  • 상위 세션으로 스트리밍되는 수명 주기 이벤트를 모니터링하여 서브에이전트 진행 상황과 핸드오프 결과를 검토할 수 있는가?

추가 정보는 Copilot SDK 커스텀 에이전트 공식 문서Copilot CLI 커스텀 에이전트 생성 가이드에서 확인할 수 있습니다.

근거와 최신성

근거 수준: 공식 문서 검증

AI-assisted editorial content; verify current product details against the linked official sources.

마지막 검증:

주요 출처

다른 도구 둘러보기

Mistral API 가이드: Agents·Conversations와 상태 기반 handoff가이드Claude API 가이드: 멀티도구 워크플로우의 프로그래밍 방식 도구 호출가이드Groq Batch API 가이드: 비동기 JSONL 작업과 결과 회수가이드Gemini API 가이드: URL 컨텍스트와 검색 그라운딩가이드OpenAI Responses API 가이드: 백그라운드 실행과 컨텍스트 관리가이드GitHub Copilot 가이드: 권한·감사·복구를 위한 Hooks가이드Claude Agent SDK 가이드: 동적 멀티에이전트 워크플로우가이드Microsoft Agent Framework 가이드: HITL 요청과 checkpoint 재개가이드Claude Code 가이드: 훅 수명주기 자동화와 실행 경계가이드Cloudflare Agents 가이드: 내구성 워크플로우와 사람 승인가이드Timeline Studio 가이드: 브라우저에서 실행하는 로컬 우선 AI 영상 편집가이드NVIDIA NeMo Agent Toolkit 가이드: 평가·profiling과 tracing가이드Amazon Bedrock AgentCore Memory 가이드: 전략·namespace와 검색가이드Gemini API 가이드: File Search 저장소와 RAG 경계가이드Copilot Studio 가이드: 가드레일 기반 자율 에이전트 운영가이드Claude Code 가이드: 플러그인 패키징·테스트와 배포가이드LangGraph 가이드: persistence·checkpoint와 내구성 있는 에이전트 복구가이드Vercel AI SDK 가이드: ToolLoopAgent·루프 제어와 승인가이드OpenAI Agents SDK 가이드: tracing·span과 민감 데이터 제어가이드Amazon Bedrock AgentCore 가이드: 런타임·세션과 에이전트 엔드포인트가이드