Copilot 클라우드 에이전트(이전의 Copilot 코딩 에이전트)에 대한 내용 GitHub.com
Copilot 클라우드 에이전트 는 에 통합된 자율 및 비동기 소프트웨어 개발 에이전트입니다 GitHub. 에이전트는 문제나 Copilot 채팅에서 작업을 선택하여, 리포지토리를 연구하고, 구현 계획을 세우며, 분기에서 코드 변경을 수행할 수 있습니다. 준비가 되면 diff를 검토하고, 에이전트와 함께 반복하여 수정한 후, 풀 리퀘스트를 만들 수 있습니다.
Copilot 클라우드 에이전트 는 코드베이스 연구, 접근 방식 계획, 버그 수정, 증분 새 기능 구현, 프로토타입 작성, 설명서 및 코드베이스 유지 관리와 같은 작업을 포함하여 설명 및 구성에 따라 맞춤형 변경 내용을 생성할 수 있습니다. 사용자의 의견을 반영하여 에이전트는 세션 중 후속 프롬프트를 통해서든, 아니면 끌어오기 요청에 대한 코멘트를 통해서든 반복 업무를 수행할 수 있습니다.
작업을 수행하는 중에 에이전트는 코드 변경, 자동화된 테스트 실행, Linter 실행이 가능한 자체 임시 개발 환경에 액세스할 수 있습니다.
에이전트는 다양한 프로그래밍 언어에서 평가되었으며, 영어가 기본 지원 언어로 제공됩니다.
에이전트는 자연어 처리와 기계 학습을 함께 사용하여 작업을 이해하고 코드베이스를 변경하여 작업을 완료합니다. 이 프로세스는 여러 단계로 나눌 수 있습니다.
참고
코드 변경에 대한 심층 조사, 계획 및 반복은 끌어오기 요청을 만들기 전에 Copilot 클라우드 에이전트의 GitHub.com에서만 가능합니다. 클라우드 에이전트 통합(예: Azure Boards, JIRA, Linear, Slack 또는 Teams)은 끌어오기 요청만 직접 만들 수 있습니다.
프롬프트 처리
문제를 통해 제공된 Copilot 작업, 끌어오기 요청 주석 또는 Copilot 채팅 메시지가 다른 관련 컨텍스트 정보와 결합되어 프롬프트를 형성합니다. 해당 프롬프트는 처리를 위해 대규모 언어 모델로 전송됩니다. 입력은 일반 자연어, 코드 조각 또는 이미지 형식을 사용할 수 있습니다.
언어 모델 분석
그런 다음 프롬프트는 방대한 데이터로 학습된 신경망인 대규모 언어 모델에 전달됩니다. 언어 모델은 입력 프롬프트를 분석하여 에이전트가 작업을 추론하고 필요한 도구를 활용할 수 있도록 지원합니다.
응답 생성
언어 모델은 프롬프트에 대한 분석을 기반으로 응답을 생성합니다. 이 응답은 자연어 제안 및 코드 제안의 형태를 취할 수 있습니다.
출력 형식
에이전트가 첫 번째 실행을 완료하면 수행한 변경 내용에 대한 요약을 제공합니다. 끌어오기 요청을 만든 경우 에이전트는 끌어오기 요청 설명을 업데이트합니다. 에이전트는 액세스할 수 없는 리소스와 관련된 추가 정보를 포함하고 해결 방법에 대한 단계별 제안을 제공할 수 있습니다.
세션 중에 후속 프롬프트를 보내거나, 끌어오기 요청 내에서 주석을 달거나, 끌어오기 요청에 에이전트(@copilot)를 명시적으로 언급하여 에이전트에 피드백을 제공할 수 있습니다. 그러면 에이전트가 추가 분석을 위해 해당 피드백을 언어 모델에 다시 제출합니다. 에이전트가 피드백에 따라 변경 내용을 완료하면 업데이트된 변경 내용으로 응답합니다.
Copilot 작업 해결을 위한 가장 관련성이 큰 솔루션을 제공하기 위한 것입니다. 그러나 항상 원하는 답변을 제공하지는 않을 수도 있습니다. 사용자는 정확하고 적절한지 확인하기 위해 생성된 Copilot 응답을 검토하고 유효성을 검사할 책임이 있습니다.
또한 제품 개발 프로세스 GitHub 의 일환으로 에이전트의 안전을 이해하고 개선하기 위해 레드 팀(테스트)을 수행합니다.
성능을 향상시키는 방법에 대한 자세한 내용은 아래 의 성능 향상을 Copilot 클라우드 에이전트 참조하세요.
에 대한 사용 사례 Copilot 클라우드 에이전트
다음을 포함하지만 제한되지 않는 다양한 시나리오에서 작업을 Copilot 위임할 수 있습니다.
-
**심층 연구:** 코드베이스의 작동 방식을 이해하거나, 변경할 위치를 식별하거나, 가정을 확인합니다. -
**계획:** 변경하기 전에 구현 계획을 만듭니다. -
**코드베이스 유지 관리:** 보안 관련 수정 사항, 종속성 업그레이드 및 대상 리팩터링 해결 -
**설명서:** 새 설명서 업데이트 및 만들기. -
**기능 개발:** 증분 기능 요청 구현. -
**테스트 적용 범위 개선:** 품질 관리를 위한 추가 테스트 모음 개발. -
**새 프로젝트 프로토타입 생성:** 그린필드 방식으로 새 개념 도입.
Copilot 클라우드 에이전트의 성능 향상
Copilot 클라우드 에이전트 는 다양한 작업을 지원할 수 있습니다. 성능을 향상시키고 일부 제한 사항을 해결하기 위해 채택할 수 있는 여러 가지 방법이 있습니다.
제한 사항에 대한 자세한 내용은 (아래)의 Copilot 클라우드 에이전트제한 사항을 참조하세요.
작업의 범위가 올바른지 확인
Copilot 클라우드 에이전트 는 작업을 수행할 때 프롬프트를 키 컨텍스트로 활용합니다. 에이전트에 할당하는 프롬프트가 명확하고 범위가 잘 지정될수록 더 나은 결과를 얻을 수 있습니다. 이상적인 작업에는 다음이 포함됩니다.
- 해결해야 할 문제 또는 필요한 작업에 대한 명확한 설명입니다.
- 좋은 솔루션으로 인정받기 위한 명확한 기준을 설정합니다(예: 단위 테스트의 필요 여부).
- 변경해야 하는 파일에 대한 힌트 또는 포인터입니다.
추가 컨텍스트를 사용하여 환경 사용자 지정
Copilot 클라우드 에이전트 는 제안된 변경 내용을 생성할 때 프롬프트, 주석 및 리포지토리의 코드를 컨텍스트로 활용합니다. 또한 에이전트는 의미 체계 코드 검색에 액세스할 수 있으므로 정확한 텍스트 일치가 아닌 의미를 기반으로 관련 코드를 찾을 수 있으므로 작업을 더 빠르게 완료할 수 있습니다.
Copilot의 성능을 향상시키기 위해, 에이전트가 프로젝트와 변경 사항을 구축, 테스트 및 검증하는 방법을 더 잘 이해할 수 있도록 사용자 지정 Copilot 지침을 구현하는 것이 좋습니다. 자세한 내용은 [AUTOTITLE](/copilot/tutorials/coding-agent/best-practices#adding-custom-instructions-to-your-repository)의 "리포지토리에 사용자 지정 지침 추가"를 참조하세요.
Copilot 클라우드 에이전트의 다른 사용자 지정에 대한 자세한 내용은 다음을 참조하세요.
* GitHub Copilot 클라우드 에이전트에 대한 개발 환경 사용자 지정 * GitHub Copilot 클라우드 에이전트에 대한 방화벽 사용자 지정 또는 비활성화 * MCP(모델 컨텍스트 프로토콜)를 사용하여 GitHub Copilot 클라우드 에이전트 확장
대체가 아닌 도구로 사용 Copilot 클라우드 에이전트
코드 및 설명서를 생성하기 위한 강력한 도구일 수 있지만 Copilot 클라우드 에이전트 사용자 프로그래밍을 대체하는 대신 도구로 사용하는 것이 중요합니다. 에이전트가 생성한 콘텐츠는 병합하기 전에 항상 검토 및 테스트하여 요구 사항을 충족하며 오류나 보안 문제가 없는지 확인해야 합니다.
보안 코딩 및 코드 검토 관행 사용
구문적으로 올바른 코드를 생성할 수 있지만 Copilot 클라우드 에이전트 항상 안전한 것은 아닙니다. 하드 코드된 암호나 SQL 삽입 취약점을 피하고 코드 검토 모범 사례를 따르는 등 항상 보안 코딩 모범 사례를 따라 에이전트의 제한 사항을 해결해야 합니다. 직접 작성하지 않은 자료를 사용하는 코드를 작성할 때와 마찬가지로, 해당 코드가 적합한지 확인하는 예방 조치를 포함하여 항상 동일한 예방 조치를 취해야 합니다. 엄격한 테스트, IP 스캔, 보안 취약점 확인이 포함됩니다.
피드백 제공
문제나 제한 사항이 Copilot 클라우드 에이전트에서 GitHub.com에 관련되어 발생하는 경우, 각 에이전트 응답 아래에 있는 엄지손가락 아이콘을 클릭하여 피드백을 제공하시기 바랍니다. 이를 통해 개발자가 도구를 개선하고 우려 사항이나 한계를 해결하는 데 도움이 될 수 있습니다. 또한 커뮤니티 토론 포럼에 피드백을 제공할 수 있습니다.
최신 소식을 받아보세요.
Copilot 클라우드 에이전트 는 새로운 기술이며 시간이 지남에 따라 진화할 가능성이 높습니다. 새로운 보안 위험 또는 모범 사례에 대한 최신 정보를 알고 있어야 합니다.
Copilot 클라우드 에이전트에 대한 보안 조치
기본적으로 Copilot 클라우드 에이전트 데이터 및 코드베이스의 보안을 보장하기 위해 몇 가지 완화를 사용하여 빌드되었습니다. 완화 조치가 있더라도, 에이전트의 제한 사항과 코드에 미치는 영향을 파악하면서 보안 모범 사례를 계속 적용해야 합니다.
권한 에스컬레이션 방지
Copilot 클라우드 에이전트 는 리포지토리 쓰기 액세스 권한이 있는 사용자의 상호 작용(예: 에이전트 할당 또는 주석 처리)에만 응답합니다.
GitHub Actions 워크플로는 실행되기 전에 리포지토리 쓰기 액세스 권한이 있는 사용자의 승인이 필요하여 Copilot 클라우드 에이전트 발생한 끌어오기 요청에 대한 응답으로 트리거됩니다.
에이전트는 GitHub.com에 표시되지 않는 숨겨진 문자를 필터링합니다. 그렇지 않으면 사용자가 댓글이나 주석에 유해한 지침을 숨기거나 본문 내용에 포함할 수 있습니다. 이는 탈옥과 같은 위험으로부터 보호하는 역할을 합니다.
Copilot 권한 제한
코필로트는 작동 중인 리포지토리에만 액세스할 수 있으며 다른 리포지토리에 액세스할 수 없습니다.
권한이 제한되어 있으므로 코드 푸시와 다른 리소스 읽기만 허용됩니다. 기본 제공 보호 기능으로 인해 Copilot는 단일 분기로만 푸시할 수 있습니다. @copilot를 통해 트리거될 경우 기존 끌어오기 요청 분기로 푸시되고, 그렇지 않을 경우 새 copilot/ 분기로 푸시됩니다. 즉, 코필로트는 기본 분기(예 main: )로 직접 푸시할 수 없습니다.
Copilot 클라우드 에이전트 는 런타임 동안 Actions 조직 또는 리포지토리 비밀 또는 변수에 액세스할 수 없습니다. 특별히 `copilot` 환경에 추가된 비밀과 변수만 에이전트에 전달됩니다.
추적 가능성 보장
Copilot 클라우드 에이전트의 커밋은 Copilot에 의해 작성되었으며, 작업을 시작한 사람은 공저자로 표시됩니다. 이렇게 하면 에이전트에서 생성한 코드와 작업을 시작한 사용자를 더 쉽게 식별할 수 있습니다.
Copilot 클라우드 에이전트'의 커밋은 서명되었으므로 .에 GitHub"확인됨"으로 표시됩니다. 이것은 Copilot 클라우드 에이전트에 의해 커밋이 이루어졌으며 변경되지 않았음을 확신할 수 있게 해줍니다.
각 커밋 메시지에는 에이전트 세션 로그에 대한 링크가 포함됩니다. 이렇게 하면 에이전트에서 작성한 커밋에서 전체 세션 로그에 대한 영구 링크가 제공되므로 코드 검토 중에 변경한 이유를 Copilot 이해하거나 나중에 감사 목적으로 추적할 수 있습니다.
데이터 유출 방지
기본적으로 실수로 또는 악의적인 Copilot 클라우드 에이전트 사용자 입력으로 인해 코드 또는 기타 중요한 데이터의 반출을 방지하기 위해 방화벽이 활성화되어 있습니다.
자세한 내용은 GitHub Copilot 클라우드 에이전트에 대한 방화벽 사용자 지정 또는 비활성화을(를) 참조하세요.
생성된 코드의 보안 취약성 방지
코드 생성 프로세스 Copilot 클라우드 에이전트 중에 새로 생성된 코드에서 보안 취약성을 자동으로 분석하고 이를 해결하려고 시도하여 검색된 문제가 발생하지 않도록 합니다. 분석은 다음 도구와 프로세스를 사용하여 수행됩니다.
-
** CodeQL **: 잠재적인 취약성 및 오류를 식별하기 위해 실행됩니다. -
** Secret scanning **: 알려진 유형의 비밀을 검색하여 응답에 비밀이 도입되지 않도록 합니다. -
**종속성 분석**: 새 코드에서 참조하는 종속성에서 GitHub Advisory Database알려진 취약성이 확인됩니다.
의 제한 사항 Copilot 클라우드 에이전트
코드베이스 및 입력 데이터와 같은 요인에 따라 사용할 Copilot 클라우드 에이전트때 성능 수준이 다를 수 있습니다. 다음 정보는 시스템 제한 사항 및 성능에 적용되는 Copilot 클라우드 에이전트주요 개념을 이해하는 데 도움이 되도록 설계되었습니다.
제한된 범위
사용되는 Copilot 클라우드 에이전트 언어 모델은 큰 코드 본문에서 학습되었지만 범위가 제한되어 있으며 특정 코드 구조 또는 모호한 프로그래밍 언어를 처리하지 못할 수 있습니다. 각 언어의 경우 해당 언어에 대한 학습 데이터의 양과 다양성에 따라 제공되는 제안의 품질이 달라질 수 있습니다.
잠재적 편향성
대규모 언어 모델에서 수집한 Copilot 클라우드 에이전트'의 학습 데이터 및 컨텍스트에 사용되는 언어 모델에는 도구에서 영속할 수 있는 바이어스 및 오류가 포함될 수 있습니다. Copilot 클라우드 에이전트 또한 특정 프로그래밍 언어 또는 코딩 스타일에 편향되어 최적이 아니면 불완전한 제안으로 이어질 수 있습니다.
보안 위험
Copilot 클라우드 에이전트 는 리포지토리 내의 문제 또는 주석의 컨텍스트에 따라 코드 및 자연어를 생성하며, 신중하게 사용하지 않을 경우 잠재적으로 중요한 정보 또는 취약성을 노출할 수 있습니다. 에이전트에서 생성한 모든 출력을 병합하기 전에 철저하게 검토해야 합니다.
부정확한 코드
Copilot 클라우드 에이전트 는 유효한 것처럼 보이지만 실제로 의미 체계나 구문적으로 올바르지 않거나 개발자의 의도를 정확하게 반영하지 않을 수 있는 코드를 생성할 수 있습니다.
부정확한 코드의 위험을 줄이려면 특히 중요하거나 민감한 애플리케이션을 다룰 때 생성된 코드를 신중하게 검토하고 테스트해야 합니다. 또한 생성된 코드가 모범 사례 및 디자인 패턴을 따르고, 코드베이스의 전체 아키텍처 및 스타일에 부합하는지 확인해야 합니다.
공용 코드
Copilot 클라우드 에이전트 는 "공개 코드와 일치하는 제안" 정책이 "차단"으로 설정된 경우에도 공개적으로 사용할 수 있는 코드와 일치하거나 거의 일치하는 코드를 생성할 수 있습니다.
[AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-your-copilot-plan/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code)을(를) 참조하세요.
이 경우 Copilot 일치하는 코드의 세부 정보를 표시하는 링크가 있는 에이전트 세션 로그에 일치 항목이 표시됩니다. 자세한 내용은 GitHub 코필로트의 세션 추적을(를) 참조하세요.
법률 및 규정 고려 사항
사용자는 AI 서비스 및 솔루션이 모든 산업이나 시나리오에 적합하지 않을 수 있으므로, 사용 시 잠재적인 법률 및 규정 의무를 평가해야 합니다. 또한 AI 서비스나 솔루션은 해당 서비스 약관 및 관련 행동 강령에서 금지하는 방식으로 설계되지 않았으며, 그러한 방식으로 사용될 수 없습니다.
Copilot 클라우드 에이전트와 외부 통합
Copilot 클라우드 에이전트 는 Microsoft Teams, Linear, Slack 및 Jira와 같은 외부 애플리케이션에서 정보와 컨텍스트를 받을 수 있습니다. 이러한 플랫폼에서 외부 애플리케이션을 언급하거나 연결된 워크플로를 통해 클라우드 에이전트에 작업을 할당할 때는 언급된 스레드의 대화 기록과 같은 관련 컨텍스트에 액세스하거나 세부 정보 및 활동 타임라인을 실행할 수 있습니다. 이를 통해 클라우드 에이전트는 개발 요구 사항을 더 잘 이해하고 더 관련성 있는 지원을 제공할 수 있습니다. 이러한 통합을 통해 팀은 도구를 전환하지 않고도 코드를 공동 작업하고, 작업을 할당하고, 기존 워크플로 내에서 직접 진행 상황을 추적할 수 있습니다. 팀에서 공유되는 정보를 이해하고 조직의 개인 정보 및 데이터 처리 정책에 따라 통합을 구성해야 합니다.
외부 통합에 대한 자세한 내용은 다음 Copilot 클라우드 에이전트을 참조하세요. * Teams와 Copilot 클라우드 에이전트 통합 * Copilot 클라우드 에이전트를 Linear에 통합 * Slack과 Copilot 클라우드 에이전트 통합