Introdução
CLI do Copilot usa uma variedade de ferramentas para concluir tarefas para você. Ele pode executar comandos de shell, ler e gravar arquivos, pesquisar sua base de código, buscar conteúdo da Web e delegar tarefas a sub-agentes especializados.
Embora as operações somente leitura, como pesquisar, ler arquivos e executar comandos de shell somente leitura sejam permitidas automaticamente, ferramentas que podem modificar seu sistema, como executar comandos de shell destrutivos, editar arquivos ou acessar URLs, exigem sua aprovação explícita antes que Copilot possam usá-los. Isso ajuda a evitar o uso da CLI resultando em alterações que você não pretendia porque, por exemplo, um comando shell pode fazer qualquer coisa que sua conta de usuário possa fazer: instalar pacotes, excluir arquivos, enviar código por push ou fazer solicitações de rede.
Você pode permitir ou negar permissões para ferramentas ao iniciar a CLI ou durante sua sessão interativa. Se você não concedeu permissão antes de iniciar uma sessão, CLI do Copilot solicitará permissão sempre que precisar executar uma ação potencialmente destrutiva. Você pode optar por permitir a ferramenta desta vez ou pelo restante da sessão.
Camadas de controles de ferramenta
Há duas camadas de controle que você pode usar ao especificar permissões de ferramenta em opções de linha de comando. É possível:
- Restrinja a opção de ferramentas disponíveis para o modelo de IA.
- Permitir ou negar permissão para ferramentas específicas.
Restringindo a escolha das ferramentas disponíveis para o modelo de IA
As opções --available-tools e --excluded-tools restringem o conjunto de ferramentas que o modelo de IA conhece e, assim, ele pode escolher para determinar como concluir uma tarefa.
-
`--available-tools` desabilita todas as ferramentas diferentes das especificadas. -
`--excluded-tools` desabilita apenas as ferramentas especificadas.
Se você usar as duas opções em conjunto, a CLI aplicará a lista de permissões especificada --available-tools e ignorará a lista de negações especificada por --excluded-tools.
Se uma ferramenta não estiver no conjunto disponível, o modelo de IA não poderá usá-la, mesmo que você a especifique com a opção --allow-tool . Em uma sessão interativa em que você não especifica um conjunto de ferramentas disponível, o modelo de IA pode tentar usar uma ferramenta, apenas para ser negado. As --available-tools opções e --excluded-tools impedem que você desperdiça interações com o modelo dessa maneira.
Exemplo de caso de uso
Você está iniciando uma sessão da CLI para executar o benchmarking em seu projeto e deseja evitar que o modelo de IA tente usar a pesquisa na Web.
copilot --excluded-tools='web_fetch, web_search'
Observação
Para obter detalhes completos da sintaxe para essas e outras opções de linha de comando mencionadas neste artigo, consulte Referência de comandos da CLI do GitHub Copilot.
Permitir ou negar permissão para ferramentas específicas
As --allow-tool opções e --deny-tool permitem ou negam permissão para ferramentas específicas ou subcomandos de ferramentas.
O valor de cada uma dessas opções é uma lista separada por vírgulas de tipos de ferramentas, que opcionalmente pode especificar ferramentas exatas e padrões de subcomando.
Se você especificar uma ferramenta com --allow-tool, o modelo de IA poderá optar por usar essa ferramenta sem solicitar permissão. Se você especificar uma ferramenta com --deny-tool, o modelo de IA não poderá usar essa ferramenta, mesmo que seja a melhor opção para concluir uma tarefa.
As regras de negação sempre têm precedência sobre as regras de permissão, mesmo quando --allow-all estão definidas.
Exemplos
| Opção | Efeito |
|---|---|
--allow-tool=shell | Permitir todos os comandos do shell. |
--allow-tool='shell(git commit)' | Permitir o comando git commit. |
--allow-tool='shell(git:*)' --deny-tool='shell(git push)' | Permitir todos os git comandos, exceto git push. |
--deny-tool=write | Negar todas as operações de gravação de arquivo. |
--allow-tool='read, write(.github/copilot-instructions.md)' | Permitir todas as operações de leitura e permitir operações de gravação para um arquivo específico. |
--allow-tool='MyMCP(create_issue), MyMCP(delete_issue)' | Permitir as ferramentas create_issue e delete_issue do servidor MCP MyMCP. |
--available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)' | Combine ambas as camadas de controle para uma sessão restrita da CLI. Copilot pode explorar o código, fazer edições e confirmar alterações, mas não pode acessar a Internet, executar subagentes arbitrários ou enviar por push para o histórico do Git. |
Para obter detalhes dos tipos de ferramenta com suporte, consulte Referência de comandos da CLI do GitHub Copilot.
Opções permissivas
As opções de linha de comando a seguir fornecem permissão CLI do Copilot para usar todas as ferramentas disponíveis.
-
`--allow-all-tools` — Acesso completo às ferramentas disponíveis. -
`--allow-all` ou `--yolo` — Equivalente a usar todas as opções `--allow-all-tools`, `--allow-all-paths`, e `--allow-all-urls`, ao iniciar a CLI.Em uma sessão interativa, você pode usar os comandos barra de
/allow-allou/yolopara permitir o uso de todas as ferramentas sem a necessidade de reiniciar a sessão.Observação
É altamente recomendável que você use essas opções apenas em um ambiente isolado. Você não deve utilizar um alias para aplicar uma dessas opções sempre que iniciar CLI do Copilot, uma vez que permitiria ao Copilot usar qualquer ferramenta sem sua permissão explícita sempre que você utilizar a interface de linha de comando (CLI), o que poderia conduzir a consequências indesejadas.
Redefinindo permissões
O /reset-allowed-tools comando de barra revoga todas as permissões que você concedeu durante a sessão interativa atual. Isso se aplica igualmente às permissões que você deu respondendo às solicitações e ao uso dos comandos de barra /allow-all ou /yolo.
Usar /reset-allowed-tools redefine permissões para padrão ou para o estado definido por quaisquer opções de comando que você usou quando iniciou CLI do Copilot. Por exemplo, se você iniciar uma sessão interativa CLI do Copilot com a opção --allow-tool='shell(git:*)' e, em seguida, permitir e negar mais permissões durante a sessão respondendo aos prompts, quando você usar o comando /reset-allowed-tools, as permissões do CLI retornarão ao estado original --allow-tool='shell(git:*)', sem permitir ou negar outras permissões. Se você continuar a trabalhar na sessão, receberá outro aviso caso Copilot precise de permissões adicionais.
Leitura adicional
-
[AUTOTITLE](/copilot/how-tos/copilot-cli/cli-best-practices#configure-allowed-tools) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)