Introducción
CLI de Copilot usa una variedad de herramientas para completar tareas para ti. Puede ejecutar comandos de shell, leer y escribir archivos, buscar en el código base, capturar contenido web y delegar tareas en subagentes especializados.
Aunque las operaciones de solo lectura, como la búsqueda, la lectura de archivos y la ejecución de comandos de shell de solo lectura se permiten automáticamente, las herramientas que pueden modificar el sistema,como ejecutar comandos de shell destructivos, editar archivos o acceder a direcciones URL, requieren su aprobación explícita antes de que Copilot puedan usarlos. Esto ayuda a evitar el uso de la CLI, lo que da lugar a cambios que no tenía previstos porque, por ejemplo, un comando de shell puede hacer cualquier cosa que pueda hacer su cuenta de usuario: instalar paquetes, eliminar archivos, insertar código o realizar solicitudes de red.
Puede permitir o denegar permisos para herramientas al iniciar la CLI o durante la sesión interactiva. Si no ha concedido permiso antes de iniciar una sesión, CLI de Copilot le pedirá permiso cada vez que necesite realizar una acción potencialmente destructiva. Puede optar por permitir la herramienta una vez o durante el resto de la sesión.
Controles de herramientas por capas
Hay dos capas de control que puede usar al especificar permisos de herramienta en las opciones de la línea de comandos. Ustedes pueden:
- Restrinja la elección de herramientas disponibles para el modelo de IA.
- Permitir o denegar el permiso para herramientas específicas.
Restricción de la elección de herramientas disponibles para el modelo de IA
Las opciones --available-tools y --excluded-tools restringen el conjunto de herramientas de las que el modelo de IA tiene conocimiento y, por lo tanto, puede elegir cuando determina cómo llevar a cabo una tarea.
-
`--available-tools` deshabilita todas las herramientas que no sean las especificadas. -
`--excluded-tools` deshabilita solo las herramientas especificadas.
Si usa ambas opciones juntas, la CLI aplicará la lista de permitidos especificada por --available-tools y omitirá la lista de denegación especificada por --excluded-tools.
Si una herramienta no está en el conjunto disponible, el modelo de IA no podrá usarlo en absoluto, aunque lo especifique con la --allow-tool opción . En una sesión interactiva en la que no se especifica un conjunto de herramientas disponible, el modelo de IA puede intentar usar una herramienta, solo para denegarla. Las opciones --available-tools y --excluded-tools te evitan desperdiciar interacciones con el modelo de esta manera.
Ejemplo de caso de uso
Está iniciando una sesión de la CLI para ejecutar pruebas comparativas en el proyecto y quiere evitar que el modelo de IA intente incluso usar la búsqueda web.
copilot --excluded-tools='web_fetch, web_search'
Nota:
Para obtener detalles completos de la sintaxis de estas y otras opciones de línea de comandos mencionadas en este artículo, consulte Referencia de comandos de la CLI de Copilot de GitHub.
Permitir o denegar el permiso para herramientas específicas
Las --allow-tool opciones y --deny-tool permiten o deniegan el permiso para herramientas específicas o subcomandos de herramientas.
El valor de cada una de estas opciones es una lista separada por comas de tipos de herramientas, que opcionalmente puede especificar herramientas exactas y patrones de subcomando.
Si especifica una herramienta con --allow-tool, el modelo de IA puede optar por usar esa herramienta sin pedir permiso. Si especifica una herramienta con --deny-tool, el modelo de IA no puede usar esa herramienta en absoluto, aunque sea la mejor opción para completar una tarea.
Las reglas de denegación siempre tienen prioridad sobre las reglas de autorización, incluso cuando --allow-all está configurado.
Ejemplos
| Opción | Efecto |
|---|---|
--allow-tool=shell | Permitir todos los comandos de shell. |
--allow-tool='shell(git commit)' | Permitir el comando git commit. |
--allow-tool='shell(git:*)' --deny-tool='shell(git push)' | Permitir todos los git comandos excepto git push. |
--deny-tool=write | Denegar todas las operaciones de escritura de archivos. |
--allow-tool='read, write(.github/copilot-instructions.md)' | Permitir todas las operaciones de lectura y permitir operaciones de escritura para un archivo específico. |
--allow-tool='MyMCP(create_issue), MyMCP(delete_issue)' | Permita las herramientas create_issue y delete_issue desde el servidor MCP MyMCP. |
--available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)' | Combine ambas capas de control para una sesión restringida de la CLI. Copilot puede explorar el código, realizar modificaciones y confirmar cambios, pero no puede acceder a Internet, ejecutar subagentes arbitrarios o insertar en el historial de Git. |
Para obtener más información sobre los tipos de herramientas admitidos, consulte Referencia de comandos de la CLI de Copilot de GitHub.
Opciones permisivas
Las siguientes opciones de línea de comandos conceden permiso a CLI de Copilot para usar todas las herramientas disponibles.
-
`--allow-all-tools` — Acceso total a las herramientas disponibles. -
`--allow-all` o `--yolo` — Equivalente al uso de todas las `--allow-all-tools`opciones , `--allow-all-paths`y `--allow-all-urls` al iniciar la CLI.Dentro de una sesión interactiva, puede usar los comandos de barra
/allow-allo/yolopara habilitar todas las herramientas sin necesidad de reiniciar la sesión.Nota:
Se recomienda encarecidamente que solo use estas opciones en un entorno aislado. Nunca debe usar un alias para aplicar una de estas opciones cada vez que inicie CLI de Copilot, ya que esto permitiría que Copilot use cualquier herramienta sin su permiso explícito cada vez que use la CLI, lo que podría dar lugar a consecuencias imprevistas.
Restablecimiento de permisos
El /reset-allowed-tools comando de barra diagonal revoca todos los permisos concedidos durante la sesión interactiva actual. Esto se aplica igualmente a los permisos que ha dado al responder a las indicaciones y al uso de los comandos de barra /allow-all o /yolo.
Utilizar /reset-allowed-tools restablece los permisos al valor predeterminado o al estado definido por las opciones de línea de comandos que usó al iniciar CLI de Copilot. Por ejemplo, si inicia una sesión interactiva de CLI de Copilot con la opción --allow-tool='shell(git:*)'y, a continuación, permite y deniega permisos adicionales durante la sesión respondiendo a los mensajes, al usar el /reset-allowed-tools comando , los permisos de la CLI vuelven al estado original --allow-tool='shell(git:*)' , sin otros permisos permitidos o denegados. A medida que continúe trabajando en la sesión, se le pedirá de nuevo si Copilot necesita permisos adicionales.
Lectura adicional
-
[AUTOTITLE](/copilot/how-tos/copilot-cli/cli-best-practices#configure-allowed-tools) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)