Skip to main content
Skip to content

동적 워크플로

복잡한 작업을 조율하고 필요에 따라 결정론적 작업, 에이전트, 도구, API 호출 및 사용자 상호 작용을 결합하는 데 GitHub Copilot를 사용합니다.

참고

이 기능은 공개 미리 보기에 있으며 변경될 수 있습니다.

이 문서에서는 동적 워크플로의 정의와 수행할 수 있는 작업을 설명합니다. 사용 방법에 대한 자세한 내용은 동적 워크플로 사용을 참조하세요.

동적 워크플로 정보

동적 워크플로는 태스크가 수행되는 방법을 정의하는 프로그램입니다. 자동화된 단계를 하나 이상의 에이전트 작업과 결합할 수 있습니다. 단계는 병렬로 또는 둘 다의 혼합으로 하나씩 실행할 수 있습니다.

동적 워크플로는 복잡한 다단계 작업 및 매번 동일하게 수행되는 정해진 일련의 작업으로 반복 실행하려는 작업에 특히 유용합니다. 예를 들어 동적 워크플로를 사용하여 로그 및 원격 분석을 수집하고, 독립 에이전트를 할당하여 다른 시스템을 분석하고, 구조화된 결과를 타임라인 및 근본 원인 보고서에 결합하여 서비스 중단 인시던트를 조사할 수 있습니다.

동적 워크플로는 다음을 수행할 수 있습니다:

  • 명령을 실행하거나 도구를 사용하거나 다른 서비스를 호출합니다.
  • 목표를 작업으로 나누고 독립적인 작업을 병렬로 실행합니다.
  • 한 단계의 결과를 다음 단계로 전달합니다.
  • 하위 에이전트가 서로의 확인 사항을 검증하도록 하세요.
  • 결과를 단일 답변으로 결합합니다.
  • 사용 중인 애플리케이션이 이를 지원하는 경우 입력을 요청합니다.
  • 결과를 검토하고 준비가 되면 실행을 다시 시작할 수 있도록 검사점에서 일시 중지합니다.

모든 것은 코드로 정의됩니다: 단계, 에이전트를 언제 참여시킬지, 그리고 그 결과를 어떻게 사용할지. 에이전트는 분석 또는 판단이 필요한 부분을 처리합니다.

워크플로는 이후 단계에서 그 결과를 사용할 수 있도록 에이전트에게 지정된 형식으로 결과를 반환하도록 요청할 수 있습니다. Copilot 는 필요한 경우 에이전트에 형식을 수정하도록 요청할 수 있습니다.

동적 워크플로는 확장에 Copilot 정의됩니다. 그들은 다음과 같을 수 있습니다:

  • 작성자: Copilot. 워크플로가 따르도록 하려는 작업과 프로세스를 설명하세요.
  • 사용자가 작성했습니다. Copilot의 기본 제공 작성 가이드를 사용하여 확장을 직접 작성할 수 있습니다.
  • 회원님과 공유됨. 확장이 로드되면 동적 워크플로를 사용할 수 있습니다.

동적 워크플로를 사용하려면, 자연어로 Copilot에 해당 워크플로의 이름을 말해 실행해 달라고 요청할 수 있습니다. 다음은 그 예입니다.

Copilot prompt
Run the java-security-review dynamic workflow on the java files in the current directory.

프롬프트 Copilot 에서 동적 워크플로를 시작하면 백그라운드에서 실행하고 완료되면 다시 보고합니다. 세션이 실행되는 동안 계속 작업할 수 있습니다.

중요

채팅 에이전트는 사용자가 명시적으로 요청할 때 또는 스킬이나 슬래시 명령이 그렇게 하도록 지시할 때에만 동적 워크플로를 생성하거나 실행합니다.

Copilot CLI에서는 copilot workflow run WORKFLOW-NAME를 사용해 터미널에서 기존 동적 워크플로를 직접 실행할 수도 있습니다. 대화형 채팅을 열거나 에이전트에게 시작해 달라고 요청할 필요가 없습니다. 워크플로는 여전히 에이전트를 사용하여 해당 단계를 수행할 수 있습니다.

명령은 컨트롤을 셸로 반환하기 전에 실행이 완료되거나 중지되기를 기다립니다. 이 방법으로 특정 입력값을 사용해 워크플로를 반복 실행하고, 그 결과를 저장하거나, 스크립트 또는 CI/CD 파이프라인에서 실행할 수 있습니다. 자세한 내용은 동적 워크플로 사용을(를) 참조하세요.

확장의 슬래시 명령, 사용자 지정 도구 또는 프로그래밍 방식의 후크를 통해서나 GitHub Copilot SDK를 사용하는 다른 코드에서 워크플로를 시작할 수도 있습니다. 확장에서는 Copilot app워크플로를 시작하는 컨트롤이 포함된 캔버스(사용자 지정 인터페이스)를 제공할 수 있습니다. 이러한 대안은 사용 중인 확장 및 클라이언트에 따라 달라집니다.

캔버스에 대한 자세한 내용은 GitHub Copilot 앱에서 캔버스 확장 기능 사용하기을 참조하세요.

어떤 동적 워크플로를 사용할 수 있는지 확인하려면 Copilot에게 물어보기만 하면 됩니다.

Copilot prompt
What dynamic workflows are available?

동적 워크플로가 autopilot 및 fleet와 어떻게 다른지

이미 autopilot 모드 및 /fleet 명령을 사용하는 경우 동적 워크플로는 동일한 종류의 작업처럼 보일 수 있습니다. 주요 차이점은 단순히 사용되는 에이전트의 수가 아니라 작업을 계획하고 제어하는 방법입니다.

  • Autopilot은 자율성을 핵심으로 하는 모드입니다. Copilot가 각 단계 후에 입력을 받기 위해 일시 중지하지 않고 작업을 계속 수행할 수 있게 합니다.
  • /fleet 는 Copilot 작업을 스바겐트에게 위임하고 작업을 병렬로 조정하도록 권장합니다. Copilot 는 매번 작업을 중단하는 방법을 결정합니다.
  • 동적 워크플로 는 코드에 정의된 프로세스를 수행합니다. 워크플로의 작성자는 단계, 조건 및 인계 방식을 정의합니다. 이 프로세스는 하나의 에이전트 또는 여러 에이전트를 사용할 수 있으며, 작업은 순서대로, 병렬로 또는 둘 다에서 수행됩니다.

워크플로를 다시 사용한다는 것은 해당 단계와 규칙을 다시 사용하는 것을 의미합니다. 이러한 단계를 통한 경로는 입력 또는 결과와 함께 변경되고 에이전트는 다른 실행에 대해 서로 다른 답변을 제공할 수 있습니다.

AspectAutoPilotFleet동적 워크플로
주된 목적자율적으로 계속 작업하도록 Copilot 허용
Copilot 하위 에이전트에게 작업을 위임하도록 권장하세요코드에 정의된 프로세스 수행
프로세스를 정의하는 사람은 누구인가요?
Copilot 다음 단계를 결정합니다.
Copilot는 작업을 어떻게 나누고 조율할지 결정합니다.워크플로 작성자가 단계, 조건 및 핸드오프를 정의합니다.
작업 실행 방법작업 및 Copilot'의 결정에 따라 다름독립 작업을 병렬로 위임할 수 있습니다.하나의 에이전트 또는 여러 에이전트를 사용하여 순차적으로, 병렬 또는 둘 다

워크플로 실행 제어에 대한 자세한 내용은 동적 워크플로 제한 및 실행 감시, 중지, 일시 중지 및 다시 실행을 참조하세요.

동적 워크플로 사용 시기

다시 사용할 수 있는 프로세스를 정의하려는 경우 또는 단일 작업에 명확한 단계, 검사 또는 제한이 필요한 경우 동적 워크플로를 사용합니다. 적합한 후보는 다음과 같습니다.

  • 릴리스 검사를 실행하고, 한 에이전트에게 오류를 평가하도록 요청하고, 결과를 검토할 수 있도록 일시 중지한 후 다시 시작합니다.
  • 끌어오기 요청에서 여러 변경된 파일을 병렬로 검토합니다.
  • 코드를 사용하여 병합된 끌어오기 요청에 대한 해결되지 않은 검토 주석을 찾은 다음, 두 모델에게 주석이 여전히 중요한지 여부를 묻습니다. 워크플로의 코드는 두 조건이 모두 일치할 때만 발견 사항을 보고합니다.
  • 한 번에 여러 디렉터리에 걸쳐 대규모 코드베이스에서 패턴을 찾는 작업(예: 제거하려는 API의 누락된 테스트나 사용 사례 검색).
  • 변경 내용 조사, 결과에서 구현 계획 및 변경
  • 나중에 일시 중지하고 다시 시작할 수 있는 길고 잠재적으로 비용이 많이 드는 실행을 시작합니다.

빠른 답변 또는 간단한 변경의 경우 표준 채팅 모드의 일반적인 프롬프트는 일반적으로 충분합니다.

동적 워크플로에 대한 권한

동적 워크플로의 하위 에이전트는 CLI의 권한 시스템을 사용하고 시작한 세션의 사용 권한 부여를 상속합니다. 세션에서 이미 허용한 모든 항목은 동적 워크플로의 하위 에이전트에 적용됩니다.

워크플로의 하위 에이전트 중 하나가 아직 허용되지 않은 작업을 수행하려고 하면, 그 요청은 대화형 CLI 세션에서 일반적인 권한 요청 프롬프트로 표시됩니다. 거기에서 주 에이전트를 승인할 때와 동일한 방식으로 이를 승인합니다. 승인이 필요한 하위 에이전트는 사용자가 응답할 때까지 기다리기만 합니다.

한 스바천트가 사용 권한을 요청하고 세션 기간 동안 권한을 부여하는 경우 해당 권한은 동일한 권한이 필요한 모든 스바겐에 적용됩니다.

사용하는 copilot workflow run경우 명령에 사용 권한 승인 프롬프트가 표시되지 않습니다. 실행을 시작하기 전 워크플로의 에이전트에 필요한 권한을 부여합니다. 동적 워크플로 사용을(를) 참조하세요.

확장은 이러한 권한 프롬프트 외부에서 직접 자체 코드를 실행할 수도 있습니다.

동적 워크플로 만들기

대화형 세션에서 Copilot에게 그렇게 하도록 요청하여 동적 워크플로를 만들 수 있습니다. Copilot에 워크플로로 무엇을 수행하고 싶은지 알려주세요.

기본적으로 Copilot는 현재 세션에 대해 확장 프로그램을 만듭니다. 대신 개인 또는 프로젝트 확장을 만들도록 요청하거나 Copilot의 기본 제공 제작 지침을 사용하여 직접 확장을 작성할 수 있습니다.

자세한 내용은 동적 워크플로 사용을(를) 참조하세요.

동적 워크플로 수정

일반적으로 동적 워크플로를 처음 사용하는 경우 제한된 범위로 실행하여 테스트합니다. 예를 들어, 여러 파일을 처리하도록 설계된 동적 워크플로의 경우, 처음에는 Copilot에 워크플로를 두세 개의 파일에 대해서만 실행하라고 지시할 수 있습니다. 그런 다음 결과를 평가할 수 있습니다. 필요한 경우 워크플로를 다시 실행하기 전에 수정하도록 요청할 Copilot 수 있습니다.

자연어 요청을 Copilot 사용하여 한 번의 실행에 대한 제한을 재정의하는 대신 워크플로의 저장된 정의를 수정합니다. 다음은 그 예입니다.

Copilot prompt
Update the check-python-style dynamic workflow to use no more than 10 subagents in total.

수정 내용은 세션, 개인 확장 디렉터리 또는 프로젝트 리포지토리에 저장되는지 여부에 관계없이 동적 워크플로의 확장 기능에 저장됩니다. 새 실행은 업데이트된 확장이 로드된 후 수정된 버전을 사용합니다. 이렇게 하면 일시 중지된 실행에서 저장된 결과가 대체되지 않습니다.

프로젝트의 리포지토리에서 공유한 동적 워크플로를 수정하는 경우 해당 프로젝트에서 작업하는 사용자는 업데이트된 버전의 리포지토리를 끌어온 다음 해당 확장을 다시 로드해야 수정된 버전을 사용할 수 있습니다.

동적 워크플로 재사용 및 공유

기본적으로 작성자가 제공하는 Copilot 워크플로는 현재 세션으로 범위가 지정됩니다. 확장을 개인 확장 디렉터리에 복사하여 여러 세션에 걸쳐 사용하거나, 저장소의 확장 디렉터리에 복사하여 해당 프로젝트에서 작업하는 사람들과 공유할 수 있습니다. 원래 세션의 실행 기록이나 저장된 진행률이 아닌 정의를 공유합니다. 자세한 내용은 동적 워크플로 사용을(를) 참조하세요.

동적 워크플로를 더 널리 공유하려면 플러그인으로 패키징한 후 선호하는 플러그인 관리 시스템을 통해 배포할 수 있습니다. 자세한 내용은 에 대한 플러그 인 만들기 GitHub Copilot CLI을(를) 참조하세요.

동적 워크플로 제한하기

동적 워크플로에 대해 다음 제한을 설정할 수 있습니다.

  • 동시에 활성 상태일 수 있는 워크플로에 속한 에이전트의 최대 수입니다.

  • 한 번의 실행 동안 워크플로에 속한 에이전트를 총 몇 개까지 실행할 수 있는지 나타내는 최대 수입니다.

  • 일시 중지 전에 사용된 시간을 포함하여 최대 활성 실행 시간입니다. 실행이 일시 중지된 동안의 시간은 포함되지 않습니다.

  • 워크플로 에이전트 AI credits 및 해당 스바겐트가 사용할 수 있는 대략적인 최대 수입니다.

    참고

    Copilot 는 워크플로 에이전트가 사용하는 크레딧을 추적하고 합계가 한도에 도달하면 새 작업을 중지합니다. 사용량은 발생 후 보고되므로 이미 진행 중인 작업이 제한을 초과할 수 있습니다. 대략적인 최대값이며 하드 천장이 아닙니다.

제한은 다음 세 곳에서 정의할 수 있습니다.

  • 프롬프트에서 다음을 수행합니다 . 동적 워크플로를 실행하는 데 사용하는 프롬프트 내에서 자연어로 제한을 지정합니다. 다음은 그 예입니다.

    Use the architecture-research dynamic workflow on this repo, with a timeout of 1 hour.
    
  • 워크플로 코드에서: 동적 워크플로를 만들 때 동적 워크플로 실행 시 사용할 제한값을 선택적으로 정의할 수 있습니다.

  • 개인 설정에서: 에 대한 Copilot개인 설정에서 기본 제한을 정의할 수 있습니다. 프롬프트 또는 워크플로 코드에 동일한 유형의 제한이 지정되지 않은 경우 실행하는 모든 동적 워크플로에 적용됩니다.

    명령 Copilot CLI 과 함께 /settings 다음 키를 사용하여 동적 워크플로에 대한 개인 기본 제한을 구성할 수 있습니다.

    • workflows.defaultLimits.maxConcurrentSubagents
    • workflows.defaultLimits.maxTotalSubagents
    • workflows.defaultLimits.timeoutSeconds (초 단위로 지정해야 합니다.)
    • workflows.defaultLimits.maxAiCredits

    다음은 그 예입니다.

    /settings workflows.defaultLimits.timeoutSeconds 3600
    

제한은 위에 표시된 순서대로 우선 적용됩니다. 프롬프트에서 제한을 지정하면 동적 워크플로 또는 개인 설정에 정의된 해당 제한을 재정의합니다.

동시 스바겐트 제한으로 인해 다른 스바겐트가 완료될 때까지 추가적인 스바겐트가 대기합니다. 도달해도 워크플로가 중지되지 않습니다.

다른 제한 사항은 실행을 중지시킬 수 있지만, 나중에 재개할 수 있도록 해당 실행의 상태와 저장된 결과는 유지됩니다. 한도에서 중지된 실행을 다시 시작하면 해당 제한을 늘려 더 많은 작업을 허용합니다. 새 제한은 중지되기 전에 사용한 양을 포함한 해당 실행 전체의 총한도이며, 새로 주어지는 한도가 아닙니다.

예기치 않은 AI credit 사용 방지

많은 스바겐트를 시작하는 워크플로를 완료하고 많은 수의 AI credits작업을 사용하는 데 시간이 오래 걸릴 수 있습니다.

AI credits의 예기치 않은 과도한 사용을 방지하려면 대규모 작업에 사용하기 전에 작은 범위에서 동적 워크플로를 테스트해야 합니다. 작은 실행을 수행한 후 실제 AI credit 사용량을 확인한 다음 대규모 실행에 적절한 제한을 AI credits 설정합니다.

실행 감시, 중지, 일시 중지 및 다시 시작하는 중

세션에서 슬래시 명령을 Copilot CLI 사용하거나 , 의 워크플로 단추를 Copilot app사용하여 /workflows 현재 또는 과거 워크플로 실행을 볼 수 있습니다.

세부 정보에는 AI credits 사용 현황과 워크플로가 보고하는 모든 단계, 진행 메시지 및 하위 에이전트가 표시됩니다. 여기에서 현재 실행 중인 워크플로를 취소하거나 일시 중지할 수 있습니다. 확장 프로그램은 예를 들어 Copilot app의 캔버스에서 자체 진행률 보기를 제공할 수도 있습니다.

실행을 일시 중지했거나 제한에 도달해 중지된 경우 실행 목록에서 선택하여 재개할 수 있습니다. 워크플로는 완료된 단계 및 스바겐트의 저장된 결과를 다시 사용할 수 있습니다. 저장되지 않은 작업은 다시 실행해야 할 수 있습니다.

자세한 내용은 동적 워크플로 사용을(를) 참조하세요.