GitHub.com GitHub Copilot 클라우드 에이전트의 책임 있는 사용

완료됨

목적, 기능 및 제한 사항을 이해하여 책임감 있게 GitHub.com Copilot Cloud Agent를 사용하는 방법을 알아봅니다.

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

  • GitHub.com Copilot 클라우드 에이전트의 목적, 기능 및 제한을 이해합니다.
  • 작업 범위 지정, 환경 보안 및 결과 유효성 검사와 같은 책임 있는 사용 사례를 적용합니다.
  • 보안 조치, 위험 및 완화 방법 및 성능을 개선할 위치를 인식합니다.

GitHub.com의 코파일럿 클라우드 에이전트에 대한 정보

Copilot Cloud Agent는 GitHub에 통합된 자율 및 비동기 소프트웨어 개발 에이전트입니다. 에이전트는 문제 또는 Copilot 채팅에서 작업을 선택하고, 분기를 만들고, 코드베이스를 탐색하고, 구현 계획을 생성하고, 코드 초안을 작성하여 끌어오기 요청을 열지 여부와 시기를 결정할 수 있습니다.

코필로트 클라우드 에이전트는 버그 수정, 증분 새 기능 구현, 프로토타입 작성, 설명서 및 코드베이스 유지 관리와 같은 작업을 포함하여 설명 및 구성에 따라 맞춤형 변경 내용을 생성할 수 있습니다. 풀 리퀘스트를 만들기로 결정한 경우, 담당자는 여러분의 의견과 리뷰를 바탕으로 여러분과 함께 개선 작업을 반복할 수 있습니다.

작업을 수행하는 동안 에이전트는 코드를 변경하고 자동화된 테스트를 실행하고 Linter를 실행할 수 있는 자체 임시 개발 환경에 액세스할 수 있습니다. 에이전트는 다양한 프로그래밍 언어에서 평가되었으며, 영어가 기본 지원 언어로 제공됩니다.

에이전트 작동 방식(엔드 투 엔드)

  • 프롬프트 처리

    문제를 통해 Copilot에 제공된 작업, 끌어오기 요청 주석 또는 코필로트 채팅 메시지는 다른 관련 컨텍스트 정보와 결합되어 프롬프트를 형성합니다. 입력은 일반 자연어, 코드 조각 또는 이미지 형식을 사용할 수 있습니다.

  • 언어 모델 분석

    그런 다음, 프롬프트가 큰 언어 모델을 통해 전달됩니다. 이 모델은 입력을 분석하여 에이전트가 작업에 대한 이유를 파악하고 필요한 도구를 활용하는 데 도움이 됩니다.

  • 응답 생성

    언어 모델은 프롬프트에 대한 분석을 기반으로 응답을 생성합니다. 이 응답은 자연어 제안 및 코드 제안의 형태를 취할 수 있습니다.

  • 출력 서식 지정

    에이전트가 첫 번째 실행을 완료하면 끌어오기 요청 설명을 변경 내용으로 업데이트합니다. 에이전트는 액세스할 수 없는 리소스에 대한 추가 정보를 포함하고 해결 단계에 대한 제안을 제공할 수 있습니다.

    끌어오기 요청 내에서 주석 처리하거나 에이전트(@copilot)를 명시적으로 언급하여 에이전트에 피드백을 제공할 수 있습니다. 그러면 에이전트가 추가 분석을 위해 해당 피드백을 언어 모델에 다시 제출합니다. 에이전트가 피드백에 따라 변경 내용을 완료하면 업데이트된 변경 내용으로 메모에 응답합니다.

Copilot은 작업 해결을 위한 가장 관련성이 큰 솔루션을 제공하기 위한 것입니다. 그러나 항상 원하는 답변을 제공하지는 않을 수도 있습니다. Copilot에서 생성된 응답을 검토하고 유효성을 검사하여 정확하고 적절한지 확인해야 합니다. 또한 제품 개발 프로세스의 일환으로 GitHub는 에이전트의 안전을 이해하고 개선하기 위해 레드 팀(테스트)을 수행합니다.

Copilot 클라우드 에이전트에 대한 사용 사례

  • 코드베이스 유지 관리: 보안 수정, 종속성 업그레이드 및 대상 리팩터링.
  • 설명서: 새 설명서 업데이트 및 만들기.
  • 기능 개발: 증분 기능 요청 구현.
  • 테스트 적용 범위 개선: 품질 관리를 위한 추가 테스트 모음 개발.
  • 새 프로젝트 프로토타입 생성: 새로운 개념의 녹색 필드 작업.

Copilot 클라우드 에이전트의 성능 향상

성능 및 해결 제한 사항을 향상시키려면 다음 측정값을 사용합니다.

작업이 적절한 범위 내에 있는지 확인하기 위해 다음을 제공합니다.

  • 해결해야 할 문제 또는 필요한 작업에 대한 명확한 설명입니다.
  • 좋은 솔루션의 모습에 대한 완전한 수용 조건(예: 단위 테스트가 있어야 하나요?).
  • 변경해야 하는 파일에 대한 힌트 또는 포인터입니다.

추가 컨텍스트를 사용하여 환경 사용자 지정

코필로트 클라우드 에이전트는 제안된 변경 내용을 생성할 때 프롬프트, 주석 및 리포지토리의 코드를 컨텍스트로 활용합니다. 에이전트가 변경 내용을 빌드, 테스트 및 유효성 검사하는 방법을 이해할 수 있도록 사용자 지정 Copilot 지침을 추가하여 결과를 개선합니다.

기타 유용한 사용자 지정:

  • GitHub Copilot 클라우드 에이전트에 대한 개발 환경 사용자 지정
  • GitHub Copilot 클라우드 에이전트에 대한 방화벽 사용자 지정 또는 비활성화
  • MCP(모델 컨텍스트 프로토콜)를 사용하여 GitHub Copilot 클라우드 에이전트 확장

대체가 아닌 도구로 Copilot 클라우드 에이전트 사용

에이전트가 생성한 콘텐츠를 항상 검토하고 테스트하여 요구 사항을 충족하고 병합 전에 오류 또는 보안 문제가 없는지 확인합니다.

보안 코딩 및 코드 검토 사례 사용

코필로트 클라우드 에이전트는 구문적으로 올바른 코드를 생성할 수 있지만 항상 안전하지는 않을 수 있습니다. 보안 코딩에 대한 모범 사례를 계속 따르고(하드 코딩된 비밀 방지, 삽입 취약성 방지) 엄격한 테스트, IP 검사 및 취약성 검사를 적용합니다.

피드백 제공하기

문제 또는 제한 사항이 발생하는 경우 에이전트 응답 아래의 엄지 손가락 아래로 아이콘을 사용하거나 커뮤니티 토론 포럼에서 피드백을 공유합니다.

최신 상태 유지

Copilot 클라우드 에이전트는 진화하고 있습니다. 새로운 보안 위험 및 모범 사례를 모니터링합니다.

Copilot 클라우드 에이전트에 대한 보안 조치

권한 상승 방지

  • Copilot 클라우드 에이전트는 쓰기 액세스 권한이 있는 사용자의 상호 작용에만 응답합니다.
  • 에이전트 PR에 의해 트리거되는 작업 워크플로는 실행하기 전에 쓰기 액세스 권한이 있는 사용자의 승인이 필요합니다.
  • 프롬프트 삽입 위험을 줄이기 위해 GitHub.com에서 렌더링되지 않는 숨겨진 문자가 필터링됩니다.

코필로트의 사용 권한 제한

  • 에이전트는 범위가 지정된 리포지토리에만 액세스합니다. 다른 리포지토리에 액세스할 수 없습니다.
  • 푸시는 copilot/로 시작하는 이름의 분기(기본 분기가 아님)로 제한됩니다.
  • 에이전트는 런타임에 조직/리포지토리 작업 비밀 또는 변수에 액세스할 수 없습니다. 부조종사 환경에 추가된 비밀/변수만 에이전트에 전달됩니다.

데이터 반출 방지

방화벽은 기본적으로 코드 또는 중요한 데이터의 우발적이거나 악의적인 반출을 방지하기 위해 사용하도록 설정됩니다. GitHub Copilot Cloud Agent에 대한 방화벽 사용자 지정 또는 비활성화를 참조하세요.

Copilot 클라우드 에이전트의 제한 사항

코드베이스 및 입력에 따라 성능이 달라질 수 있습니다. 다음 제약 조건에 유의하세요.

  • 제한된 범위 및 품질: LLM은 특정 코드 구조 또는 모호한 언어를 처리할 수 없습니다. 품질은 언어 범위에 따라 다릅니다.
  • 잠재적 편견: 학습 데이터 및 검색된 컨텍스트에는 바이어스가 포함될 수 있습니다. 에이전트는 특정 언어 또는 스타일에 의지할 수 있습니다.
  • 보안 위험: 생성된 코드는 리포지토리 컨텍스트를 기반으로 하며 검토하지 않으면 중요한 정보를 노출할 수 있습니다. 철저한 검토가 필요합니다.
  • 부정확한 코드: 코드는 올바르지만 의미 체계적/구문적으로 잘못되었거나 의도로 잘못 정렬될 수 있습니다. 맞춤, 패턴 및 스타일의 유효성을 검사합니다.
  • 공용 코드: 에이전트는 "차단"이 설정된 경우에도 공용 코드와 일치/근접 일치를 생성할 수 있습니다. 참조가 제공되지 않을 수 있습니다.
  • 법률/규정: 적용 가능한 의무를 준수하는지 확인합니다. 서비스 약관 및 행동 강령에 따라 금지된 사용을 방지합니다.