Introduction
Cuando Copilot trabaja en una tarea, a menudo necesita realizar acciones que podrían cambiar el sistema, como ejecutar comandos de shell, editar archivos o acceder a direcciones URL. Puede elegir cómo se controlan las solicitudes de permisos para estas acciones.
La respuesta a las solicitudes de aprobación le mantiene en control, pero puede ralentizarlo, especialmente al inicio de una sesión cuando Copilot necesita establecer qué acciones puede realizar. Para reducir el número de solicitudes, puede conceder Copilot permisos incondicionales, pero si lo hace, pierde la supervisión de las acciones individuales.
Assisted permissions es un punto intermedio entre la aprobación manual y la concesión de permisos amplios con una opción de permitir todo. Usa un modelo de lenguaje grande para revisar las solicitudes de permisos y aprobar automáticamente las acciones que considera seguras en el contexto de la tarea. En una sesión interactiva estándar, las solicitudes que aún requieren aprobación se le presentan.
Nota:
Assisted permissions está disponible en GitHub Copilot CLI, Visual Studio Code y el GitHub Copilot app.
Opciones de aprobación
Puede elegir entre tres opciones que determinan cuánto desea participar en la aprobación de las acciones que lleva a cabo Copilot. Se siguen aplicando las reglas de denegación existentes y las restricciones empresariales. Las solicitudes que ya están permitidas por tus permisos se pueden ejecutar sin un prompt o una revisión del modelo.
-
**Aprobación manual:**Copilot le pide su aprobación cuando aún no se permite una acción, como ejecutar un comando que no sea de solo lectura, editar un archivo o acceder a una dirección URL. Puede aprobar una acción una vez o para el resto de la sesión. Esto le proporciona la mayor supervisión, pero requiere que responda a la mayor cantidad de indicaciones.
-
**Assisted permissions:**Copilot usa un modelo para evaluar las solicitudes de permisos elegibles y aprueba automáticamente las que considera seguras. Se le avisará cuando una solicitud todavía necesite su aprobación. Esto reduce las solicitudes sin conceder permiso general para ejecutar comandos.
-
**Aprobación incondicional:**Copilot El usuario tiene un amplio permiso para usar herramientas, rutas de acceso y direcciones URL sin una revisión de seguridad del modelo o solicitudes de aprobación individuales. Esta es la opción más permisiva y elimina tu supervisión de las acciones individuales. Este es el comportamiento que obtiene Copilot CLI al usar la
--allow-allopción de línea de comandos (o--yolo) o el/permissions allow-allcomando de barra diagonal (o/yolo).
El administrador puede deshabilitar la aprobación incondicional con permissions.disableBypassPermissionsMode: "disable" sin deshabilitar assisted permissions. La configuración por separado permissions.disableAssistedPermissionsMode: true deshabilita assisted permissions. Para obtener más información, vea Configuración administrada por la empresa.
Cómo funciona assisted permissions
Al habilitar assisted permissions, las reglas existentes y las aprobaciones humanas se evalúan antes de una revisión del modelo. En el caso de las solicitudes aptas que aún no se han resuelto, ya sea para ejecutar un comando, acceder a una ruta de acceso u obtener una URL, el modelo evalúa si la acción es segura y está dentro de la autoridad que usted le dio para la tarea.
En Copilot CLI, las reglas de empresa ask para los comandos de shell, las lecturas de archivos, las escrituras de archivos y las direcciones URL se pueden satisfacer mediante la aprobación del modelo cuando la solicitud es apta para su revisión. Esto significa que esas reglas no siempre dan lugar a una solicitud para que confirmes. Las reglas de denegación empresariales siguen aplicándose.
Assisted permissions no revisa otras llamadas de herramienta que las reglas de la empresa requieren que apruebe o las solicitudes para omitir el espacio aislado local. Esas solicitudes permanecen sujetas al control de permisos normales de la sesión.
Para las solicitudes que puede revisar, el modelo realiza una recomendación:
- Si el modelo está seguro de que la solicitud es segura, Copilot la aprueba automáticamente y continúa, sin preguntarle.
- Si el modelo no está seguro de que la solicitud es segura, Copilot pide tu aprobación, como lo haría con la aprobación manual.
Si una revisión de seguridad no está disponible o no puede evaluar una solicitud, la solicitud sigue la gestión normal de permisos de la sesión.
Nota:
En el modo Autopilot y las ejecuciones no interactivas, se deniegan en su lugar las solicitudes que aún requieren tu aprobación. Cuando la revisión de seguridad requiere aprobación, su explicación se devuelve a Copilot para que pueda probar un enfoque diferente. Consulte Permitir que GitHub Copilot funcione de forma autónoma.
Copilot permite seleccionar el modelo usado para la revisión de seguridad, que puede diferir del modelo seleccionado para tu conversación. Si el modelo de revisión seleccionado no está disponible, la revisión puede usar el modelo activo de la sesión en su lugar. Si usa su propio proveedor de modelos, la revisión usa el modelo activo de la sesión.
Importante
Assisted permissions reduce la frecuencia con la que se te pide confirmación, pero no elimina tu responsabilidad por lo que Copilot hace. El modelo puede cometer errores y aprobar acciones peligrosas o no deseadas. Esta característica no es un sustituto del aislamiento en zona protegida ni de las restricciones de acceso. Al igual que con cualquier opción de aprobación automática, debe revisar las acciones que realiza Copilot y considerar la posibilidad de ejecutarla en un espacio aislado u otro entorno aislado. Para obtener más información, vea CLI de GitHub Copilot.
Uso de assisted permissions en GitHub Copilot app
Para activar assisted permissions para una sesión local:
- En el cuadro de texto, abra el menú de modo, que muestra el modo actual, como Interactivo, Plan o Piloto automático.
- Haga clic en Permisos de la herramienta y, a continuación, seleccione Con asistencia.
La selección se aplica a la sesión actual y también se guarda como valor predeterminado para las nuevas sesiones locales. No cambia otras sesiones existentes. Para cambiar el valor predeterminado sin cambiar la sesión actual, abra Configuración, seleccione Sesiones y elija Asistido en Permisos de herramientas.
Para activar assisted permissions solo para la sesión activa actual, sin cambiar el valor predeterminado, escriba /permissions assisted en el cuadro de comando. Seleccione /permissions manual para devolver esa sesión a la aprobación manual o /permissions show para comprobar su modo de permiso.
Los controles de permisos de herramientas no están disponibles para las sesiones en la nube. En el caso de las sesiones de un host remoto, los modos de permisos disponibles dependen de lo que admita ese host. Se siguen aplicando restricciones de administrador, incluso si selecciona Asistido como valor predeterminado.
Uso de assisted permissions en GitHub Copilot CLI
Hay tres maneras de activar assisted permissions, en función de si quiere activarlo para la sesión en la que se encuentra, para cada nueva sesión o para una sola ejecución automatizada.
Activarlo durante una sesión interactiva
Escriba el siguiente comando de barra diagonal:
/permissions assisted
/permissions assisted
Para volver a la aprobación manual, escriba /permissions manual. Para comprobar en qué modo de permiso está actualmente, escriba /permissions show. También puede escribir /permissions, sin argumento, para elegir un modo de una lista.
Convertirlo en el valor predeterminado para las nuevas sesiones
Para que assisted permissions sea su modo preferido para las nuevas sesiones interactivas, establezca defaultPermissionMode en "assisted" en el archivo de configuración de usuario (~/.copilot/settings.json). Puede editar el archivo directamente o usar el comando con barra /settings durante una sesión. Para obtener más información, vea directorio de configuración de la CLI de GitHub Copilot.
La configuración solo se aplica a nuevas sesiones interactivas. Si el administrador establece permissions.defaultMode, ese valor predeterminado administrado tiene prioridad sobre sus preferencias. Todavía puede elegir un modo diferente para una sesión, como con /permissions manual, si la directiva lo permite.
Las sesiones reanudadas mantienen su modo de permiso guardado, sujeto a restricciones de directiva actuales. La opción --allow-all o --yolo tiene prioridad sobre cualquiera de los valores predeterminados si la directiva lo permite. Si el valor predeterminado seleccionado no está disponible o bloqueado por la directiva, la CLI comienza con la aprobación manual.
Para que la aprobación manual sea la predeterminada, establezca defaultPermissionMode en "manual". Si ni usted ni su administrador han configurado un valor predeterminado, las nuevas sesiones pueden iniciarse en modo manual o asistido. Use /permissions show para comprobarlo.
Usarlo en una ejecución no interactiva
Cuando se ejecuta Copilot CLI de forma no interactiva, con la -p opción o --prompt , o en un entorno sin ningún terminal conectado, como un flujo de trabajo de CI/CD, use la --assisted-approval opción de línea de comandos:
copilot -p "Fix the failing tests" --assisted-approval
copilot -p "Fix the failing tests" --assisted-approval
También puede establecer la variable de entorno COPILOT_ASSISTED_APPROVAL en true, que es útil en entornos automatizados en los que no se puede cambiar fácilmente el comando que se ejecuta.
Esta opción solo es para ejecuciones no interactivas. Si lo usa al iniciar una sesión interactiva, la CLI finaliza con un error. Para usar assisted permissions en una sesión interactiva, use /permissions assisted o la configuración defaultPermissionMode en su lugar.
Cuándo usar la opción de línea de comandos
En una ejecución no interactiva, no hay nadie disponible para responder a las solicitudes de aprobación, por lo que, de lo contrario, tendría que elegir entre dos opciones no atractivas. Sin ninguna opción de permiso, a Copilot se le niega todo lo que necesite aprobación y, a menudo, no puede finalizar la tarea. Con --allow-all-tools, se conceden permisos de herramientas generales sin una revisión de seguridad del modelo.
--assisted-approval es el punto medio. Las solicitudes que la revisión de seguridad considere seguras se aprueban automáticamente. Si la revisión requiere su aprobación, se deniega la solicitud y se le devuelve su explicación a Copilot para que pueda probar un enfoque diferente. También se deniegan otras solicitudes que aún requieren aprobación.
Considere la posibilidad de usarlo cuando desee una ejecución desatendida (en un flujo de trabajo de CI/CD, un trabajo programado o un script por lotes) para completar el trabajo real sin conceder Copilot permiso incondicional para ejecutar ningún comando.
Para obtener más información sobre la ejecución del programa Copilot CLI mediante programación, consulte Ejecución GitHub Copilot CLI de forma programática.
Advertencia
Cuando se habilita correctamente, --assisted-approval tiene prioridad sobre --allow-all-tools, pero no cambia --allow-all-paths ni --allow-all-urls. Si lo combina con --allow-all (o --yolo), la ruta de acceso y el acceso url todavía pueden no estar restringidos aunque assisted permissions esté habilitado para las solicitudes de herramientas.
Si assisted permissions no se puede activar, porque la configuración de la empresa la bloquea, por ejemplo, la CLI escribe una advertencia en la salida de error estándar. No cancela una opción independiente --allow-all-tools que proporcionó, por lo que es posible que las solicitudes de herramientas se aprueben sin una revisión de seguridad. Compruebe esta advertencia en la salida de ejecuciones automatizadas.
Cómo assisted permissions se comporta en Copilot CLI
-
Activarla en una sesión afecta solo a esa sesión. Al introducir
/permissions assisted, assisted permissions permanece activado para el resto de esa sesión, a menos que lo desactive. No afecta a ninguna de las otras sesiones que tengas abiertas actualmente. Para aplicarla a sesiones futuras, use ladefaultPermissionModeconfiguración descrita anteriormente. -
Puede cambiar a assisted permissions en cualquier momento. Si ha iniciado una sesión con la configuración más permisiva (
--allow-allo su alias--yolo), al escribir/permissions assistedcambia de aprobación incondicional a assisted permissions. -
Puede activar assisted permissions mientras Copilot está en funcionamiento. No tiene que esperar a que finalice una tarea. Las solicitudes de permisos válidas posteriores usan assisted permissions. Dependiendo de la configuración anterior, esto puede aumentar o reducir el número de solicitudes de aprobación que ve durante la tarea.