Copilot 클라우드 에이전트 사용자 지정, 확장 및 유효성 검사

완료됨

GitHub Copilot 클라우드 에이전트는 안전한 임시 GitHub Actions 환경 내에서 실행됩니다. 몇 가지 구성 단계를 통해 이 환경을 미리 설정하여 안정성과 속도를 개선하고, MCP(모델 컨텍스트 프로토콜)를 통해 외부 도구로 에이전트의 기능을 확장하고, 병합하기 전에 에이전트의 출력을 테스트하고 유효성을 검사하는 모범 사례를 적용할 수 있습니다.

이 단원을 마치면 다음을 수행할 수 있습니다.

  • 에이전트의 개발 환경을 사용자 지정하기 위해 도구, 종속성 및 비밀을 미리 설치합니다.
  • MCP(모델 컨텍스트 프로토콜)를 사용하여 에이전트의 기능을 확장합니다.
  • 변경 내용을 병합하기 전에 에이전트 출력을 효과적으로 테스트하고 유효성을 검사합니다.

개발 환경 사전 설정

를 사용하여 도구 및 종속성 사전 설치copilot-setup-steps.yml

리포지토리의 기본 브랜치에 .github/workflows/copilot-setup-steps.yml를 만드세요. 워크플로는 이름이 인 copilot-setup-steps단일 작업을 정의해야 합니다. 종속성을 설치하거나 도구를 설정하는 데 필요한 단계를 포함합니다.

TypeScript의 예:

name: "Copilot Setup Steps"

on:
  workflow_dispatch:
  push:
    paths:
      - .github/workflows/copilot-setup-steps.yml
  pull_request:
    paths:
      - .github/workflows/copilot-setup-steps.yml

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: Checkout code
        uses: actions/checkout@v5
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: "npm"
      - name: Install JavaScript dependencies
        run: npm ci

작업에 허용되는 copilot-setup-steps 구성 키: steps, permissions, runs-on, container, services, snapshot, timeout-minutes (≤ 59). 안전한 롤백을 허용하기 위해 actions/checkout의 모든 가져오기 깊이가 재정의됩니다. 설치 워크플로는 독립 실행형으로 실행되므로 유효성을 검사할 수 있습니다. 그런 다음 에이전트가 시작되기 전에 자동으로 실행됩니다.

대규모의 GitHub 호스트된 실행기

  • 먼저 더 큰 러너 추가
  • copilot-setup-steps.yml에서 runs-on를 레이블/그룹(예: ubuntu-4-core)으로 설정합니다.
  • Ubuntu x64 실행기만 지원됩니다. 자체 호스팅 실행기는 지원되지 않습니다.

Git LFS

Git 대용량 파일 스토리지를 사용하는 경우 설치 단계에서 사용하도록 설정합니다.

jobs:
  copilot-setup-steps:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v5
        with:
          lfs: true

방화벽 사용자 지정

기본 인터넷 액세스는 반출 위험을 줄이기 위해 제한됩니다. 필요한 경우 조직 정책별로 방화벽을 사용자 지정하거나 사용하지 않도록 설정할 수 있습니다.

MCP(모델 컨텍스트 프로토콜)를 사용하여 확장

MCP는 LLM을 도구 및 데이터에 연결하기 위한 개방형 표준입니다. 에이전트는 로컬 또는 원격 MCP 서버에서 제공하는 도구를 사용하여 기능을 확장할 수 있습니다.

참고: Copilot Cloud Agent는 MCP 도구만 지원합니다(리소스 또는 프롬프트가 아님). OAuth가 필요한 원격 MCP 서버는 지원되지 않습니다.

기본 MCP 서버

  • GitHub MCP 서버: 읽기 전용 토큰이 기본적으로 현재 리포지토리로 범위가 지정된 문제, PR 및 GitHub 데이터에 액세스합니다(토큰을 사용자 지정할 수 있음).
  • Playwright MCP 서버: 에이전트 환경 내에서 접근 가능한 웹 페이지를 읽고 상호 작용하며 스크린샷을 찍습니다(localhost/127.0.0.1).

리포지토리 구성

관리자는 리포지토리에서 JSON 구성을 통해 MCP 서버를 선언할 수 있습니다. 구성되면 에이전트는 사용 가능한 도구를 승인 요청 없이 자동으로 사용합니다. MCP를 사용하여 GitHub Copilot 클라우드 에이전트 확장을 참조하세요.

모범 사례

  • 타사 MCP 서버를 성능 및 출력 품질에 대한 영향을 위해 검토합니다.
  • 읽기 도구를 선호합니다. 쓰기 도구가 있으면 필요한 것만 허용합니다.
  • 저장하기 전에 MCP 구성의 유효성을 신중하게 검사합니다.

에이전트 출력 테스트 및 유효성 검사

품질 및 보안에 대한 책임은 다음과 같습니다.

  • 모든 에이전트 PR에서 CI(테스트, 린터, 검사)를 실행합니다. 이러한 검사는 승인을 클릭하고 워크플로를 실행할 때까지 실행되지 않습니다.
  • 영향이 높거나 중요한 영역을 수동으로 검사합니다.
  • 에이전트에 테스트를 생성하도록 요청합니다(예: "다음 리포지토리 스타일의 모든 함수에 src/utils/ 대한 Jest 단위 테스트 추가") - 다중 파일 테스트 생성은 PRU를 사용합니다.
  • 병합 전에 에이전트 PR이 테스트, 검사, 린팅을 통과해야 하도록 규칙 집합을 적용합니다.
  • 에이전트 PR(예: agent-refactor, agent-tests)에 레이블을 붙여 모니터링하고, 필요한 경우 심사 및 되돌림을 수행합니다.
  • 반복되는 실수가 표시되면 .github/copilot-instructions.md의 지침을 반복합니다.
  • 필요한 경우 신속하게 되돌리고 에이전트에서 새 변경 내용을 요청합니다.

유효성 검사를 위해 의도적으로 PRU 사용

테스트 검사 확장, 디렉터리 간 감사 또는 위험한 영역 검색과 같은 심층적인 유효성 검사 작업을 위해 PRU를 활용합니다. 경량 검사는 더 적은 PRU를 사용하므로 의도적으로 적용하여 값을 최대화합니다.

구성, 확장 및 유효성 검사 사례를 적용하는 마지막 단계는 에이전트가 책임감 있게 작업 범위를 지정하고 환경을 보호하며 결과를 지속적으로 검토하는 것입니다.