Skip to main content

Разрешение и отказ в использовании инструментов

Контролируйте, какие инструменты Второй пилот CLI могут использовать для предотвращения непреднамеренных изменений.

Введение

Второй пилот CLI использует различные инструменты для выполнения задач за вас. Он может выполнять команды shell, читать и записывать файлы, искать вашу кодовую базу, загружать веб-контент и делегировать задачи специализированным субагентам.

Хотя операции только для чтения, такие как поиск, чтение файлов и выполнение команд только для чтения оболочки, разрешены автоматически, инструменты, способные изменять вашу систему — такие как запуск деструктивных команд shell, редактирование файлов или доступ к URL — требуют вашего явного одобрения, прежде чем Copilot сможет их использовать. Это помогает избежать того, чтобы использование CLI не привело к изменениям, которые вы не планировали, потому что, например, команда shell может делать всё, что может ваш аккаунт: устанавливать пакеты, удалять файлы, отправлять push-код или делать сетевые запросы.

Вы можете разрешить или отклонить разрешения для инструментов как при запуске CLI, так и во время интерактивной сессии. Если вы не предоставили разрешение до начала сессии, Второй пилот CLI будет запрашивать вас о разрешении каждый раз, когда требуется совершить потенциально разрушительное действие. Вы можете разрешить использовать этот инструмент один раз или на оставшуюся часть сессии.

Слои управления инструментами

Есть два уровня управления, которые можно использовать при указании разрешений инструментов в командной строке. Вы можете:

  • Ограничьте выбор инструментов, доступных для модели ИИ.
  • Разрешать или отказывать в разрешении для определённых инструментов.

Ограничение выбора инструментов, доступных модели ИИ

Опции --available-tools и --excluded-tools ограничивают набор инструментов, о которых знает модель ИИ, и поэтому может выбирать, когда определяет, как выполнить задачу.

  •         `--available-tools` Отключает все инструменты, кроме указанных вами инструментов.
    
  •         `--excluded-tools` отключает только указанные инструменты.
    

Если использовать оба варианта одновременно, CLI применит список разрешений, указанный в , --available-tools и проигнорирует список отказов, указанный .--excluded-tools

Если инструмент отсутствует в доступном наборе, AI-модель вообще не сможет его использовать, даже если вы укажете это с --allow-tool помощью этой опции. В интерактивной сессии, где вы не указываете доступный набор инструментов, AI-модель может попытаться использовать инструмент, но получит отказ. Опции --available-tools и --excluded-tools не позволяют вам тратить время на взаимодействие с моделью таким образом.

Пример варианта использования

Вы начинаете сессию CLI для бенчмаркинга вашего проекта и хотите избежать попыток использования веб-поиска со стороны модели ИИ.

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

Примечание.

Полная информация о синтаксисе этих и других командных опций, упомянутых в этой статье, см. GitHub Copilot Справочник команды CLI.

Разрешение или отказ в разрешении для определённых инструментов

Опции и --deny-tool позволяют --allow-tool или отказывают в разрешении на конкретные инструменты или подкоманды инструментов.

Значение каждого из этих вариантов — это список типов инструментов с разделёнными запятами, который по желанию может указывать точные инструменты и шаблоны подкоманд.

Если вы указываете инструмент с --allow-tool, AI-модель может выбрать использование этого инструмента без запроса разрешения. Если вы указываете инструмент с --deny-tool, AI-модель вообще не может использовать этот инструмент, даже если он будет лучшим выбором для выполнения задачи.

Правила отказа всегда имеют приоритет над правилами допуска, даже если --allow-all они установлены.

Примеры

ОпцияЭффект
--allow-tool=shellРазрешить все команды 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)'Разрешите и create_issue``delete_issue инструменты с MyMCP сервера MCP.
--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` — Эквивалентно использованию всех `--allow-all-tools`, `--allow-all-paths`, и `--allow-all-urls` опций при запуске CLI.
    

    В интерактивной сессии вы можете использовать /allow-all команды OR /yolo , чтобы разрешить все инструменты без необходимости перезапускать сессию.

    Примечание.

    Настоятельно рекомендуется использовать эти варианты только в изолированных условиях. Никогда не используйте псевдоним для применения одной из этих опций при запуске Второй пилот CLI, так как это позволит Copilot использовать любой инструмент без вашего явного разрешения при использовании CLI, что может привести к непредвиденным последствиям.

Сброс разрешений

          `/reset-allowed-tools` Команда слэш отменяет все разрешения, предоставленные вами во время текущей интерактивной сессии. Это относится одинаково к разрешениям, которые вы предоставили, отвечая на подсказки, и к использованию `/allow-all` команд OR `/yolo` .

Использование /reset-allowed-tools сбрасывает права по умолчанию или в состояние, определённое любыми командными опциями при запуске Второй пилот CLI. Например, если вы начинаете интерактивную сессию Второй пилот CLI с опцией --allow-tool='shell(git:*)', а затем разрешаете и запрещаете дальнейшие права во время сессии, отвечая на запросы, то при использовании /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)