Skip to main content

도구 사용 허용 및 거부

코파일럿 CLI가 사용하는 도구를 제어하여 의도하지 않은 변경을 방지합니다.

소개

코파일럿 CLI은(는) 다양한 도구를 사용하여 작업을 완료합니다. 셸 명령을 실행하고, 파일을 읽고 쓰고, 코드베이스를 검색하고, 웹 콘텐츠를 가져오고, 작업을 특수 하위 에이전트에 위임할 수 있습니다.

파일 검색, 파일 읽기 및 읽기 전용 셸 명령 실행과 같은 읽기 전용 작업은 자동으로 허용되지만 파괴적인 셸 명령 실행, 파일 편집 또는 URL 액세스와 같이 시스템을 수정할 수 있는 도구는 Copilot에서 사용하기 전에 명시적 승인이 필요합니다. 예를 들어 셸 명령은 패키지 설치, 파일 삭제, 코드 푸시 또는 네트워크 요청 등 사용자 계정에서 수행할 수 있는 모든 작업을 수행할 수 있으므로 CLI를 사용하지 않아도 됩니다.

CLI를 시작할 때 또는 대화형 세션 중에 도구에 대한 사용 권한을 허용하거나 거부할 수 있습니다. 세션을 시작하기 전에 권한을 부여하지 않은 경우 코파일럿 CLI은 잠재적으로 파괴적인 작업을 수행해야 할 때마다 권한을 묻는 메시지를 표시합니다. 이 도구를 한 번 또는 세션의 나머지 부분에 대해 허용하도록 선택할 수 있습니다.

도구 컨트롤의 레이어

명령줄 옵션에서 도구 권한을 지정할 때 사용할 수 있는 두 가지 컨트롤 계층이 있습니다. 당신은 할 수 있어요:

  • AI 모델에 사용할 수 있는 도구의 선택을 제한합니다.
  • 특정 도구에 대한 사용 권한을 허용하거나 거부합니다.

AI 모델에 사용할 수 있는 도구 선택 제한

          `--available-tools` 및 `--excluded-tools` 옵션은 AI 모델이 알고 있는 도구 집합을 제한하므로 작업을 완료하는 방법을 결정할 때 선택할 수 있습니다.

* --available-tools 은 지정한 도구 이외의 모든 도구를 사용하지 않도록 설정합니다. * --excluded-tools 는 지정된 도구만 사용하지 않도록 설정합니다.

두 옵션을 함께 사용하는 경우 CLI는 지정된 --available-tools 허용 목록을 적용하고 지정한 거부 목록을 --excluded-tools무시합니다.

도구가 사용 가능한 집합에 없는 경우 옵션으로 --allow-tool 지정하더라도 AI 모델은 도구를 전혀 사용할 수 없습니다. 사용 가능한 도구 집합을 지정하지 않는 대화형 세션에서 AI 모델은 거부될 때만 도구를 사용하려고 할 수 있습니다. --available-tools--excluded-tools 옵션을 사용하면 이러한 방식으로 모델과의 상호 작용을 낭비할 수 없습니다.

예제 사용 사례

프로젝트에서 벤치마킹을 실행하기 위해 CLI 세션을 시작하고 있으며, AI 모델이 웹 검색을 사용하지 않도록 하려고 합니다.

copilot --excluded-tools='web_fetch, web_search'

참고

이 문서에 언급된 이러한 명령줄 및 기타 명령줄 옵션에 대한 구문에 대한 자세한 내용은 GitHub Copilot CLI 명령 참조을 참조하세요.

특정 도구에 대한 사용 권한 허용 또는 거부

          `--allow-tool` 및 `--deny-tool` 옵션은 특정 도구 또는 도구 하위 명령에 대한 사용 권한을 허용하거나 거부합니다.

이러한 각 옵션의 값은 쉼표로 구분된 도구 종류 목록으로, 선택적으로 정확한 도구 및 하위 명령 패턴을 지정할 수 있습니다.

도구를 --allow-tool지정하는 경우 AI 모델은 사용 권한을 요청하지 않고 해당 도구를 사용하도록 선택할 수 있습니다. 도구를 --deny-tool사용하여 지정하는 경우 AI 모델은 작업을 완료하는 데 가장 적합한 선택인 경우에도 해당 도구를 전혀 사용할 수 없습니다.

거부 규칙은 설정된 경우에도 --allow-all 항상 허용 규칙보다 우선합니다.

예제

Option영향
--allow-tool=shell모든 셸 명령을 허용합니다.
--allow-tool='shell(git commit)'
          `git commit` 명령을 허용합니다. |

| --allow-tool='shell(git:*)' --deny-tool='shell(git push)' | git 명령을 제외한 모든 git push 명령을 허용합니다. | | --deny-tool=write | 모든 파일 쓰기 작업을 거부합니다. | | --allow-tool='read, write(.github/copilot-instructions.md)' | 모든 읽기 작업을 허용하고 특정 파일에 대한 쓰기 작업을 허용합니다. | | --allow-tool='MyMCP(create_issue), MyMCP(delete_issue)' | MyMCP MCP 서버의 create_issue 도구와 delete_issue 도구를 허용합니다. | | --available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)' | 제한된 CLI 세션에 대해 두 컨트롤 계층을 결합합니다. Copilot은(는) 코드를 탐색하고, 편집하고, 변경 내용을 커밋할 수 있지만 인터넷에 연결하거나, 임의의 스바겐트를 실행하거나, Git 기록에 푸시할 수 없습니다. |

지원되는 도구 종류에 대한 자세한 내용은 GitHub Copilot CLI 명령 참조을 참조하세요.

허용 옵션

다음 명령줄 옵션은 코파일럿 CLI에게 사용 가능한 모든 도구에 대한 사용 권한을 부여합니다.

  •         `--allow-all-tools` — 사용 가능한 도구에 대한 모든 권한.
    
  •         `--allow-all`  또는 `--yolo` - CLI를 시작할 때 모든 `--allow-all-tools`, `--allow-all-paths`및 `--allow-all-urls` 옵션을 사용하는 것과 같습니다.
    

    대화형 세션 내에서 /allow-all 또는 /yolo 슬래시 명령을 사용하여 세션을 다시 시작하지 않고도 모든 도구를 사용할 수 있습니다.

    참고

    격리된 환경에서만 이러한 옵션을 사용하는 것이 좋습니다. 별칭을 사용하여 코파일럿 CLI를 시작할 때 이러한 옵션을 항상 적용하면 안 됩니다. 이렇게 하면 CLI를 사용할 때마다 Copilot가 명시적인 권한 없이 도구를 사용하게 되어 예기치 않은 결과를 초래할 수 있습니다.

권한 다시 설정

          `/reset-allowed-tools` 슬래시 명령은 현재 대화형 세션 중에 부여한 모든 권한을 취소합니다. 이는 프롬프트에 응답하여 부여한 사용 권한과 또는 `/allow-all` 슬래시 명령의 `/yolo` 사용에 동일하게 적용됩니다.

          `/reset-allowed-tools`을(를) 사용하면 권한을 기본값으로 복원하거나 코파일럿 CLI을(를) 시작할 때 사용한 명령줄 옵션에 정의된 상태로 복원합니다. 예를 들어 옵션 `--allow-tool='shell(git:*)'`으로 코파일럿 CLI 대화형 세션을 시작한 다음 프롬프트에 응답하여 세션 중에 추가 권한을 허용하고 거부하는 경우 명령을 사용하면 `/reset-allowed-tools` CLI의 사용 권한은 허용되거나 거부된 다른 권한 없이 원래 `--allow-tool='shell(git:*)'` 상태로 돌아갑니다. 세션에서 작업을 계속하면 Copilot에 추가 권한이 필요한 경우 다시 메시지가 표시됩니다.

추가 읽기

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/cli-best-practices#configure-allowed-tools)
    
  •         [AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)