Nota:
Esta característica está en versión preliminar pública y está sujeta a cambios.
En este artículo se explica cómo crear, usar y compartir flujos de trabajo dinámicos en GitHub Copilot CLI y GitHub Copilot app.
Para obtener información general sobre qué son los flujos de trabajo dinámicos y cómo funcionan, consulte Flujos de trabajo dinámicos.
Prerequisite
Para usar flujos de trabajo dinámicos en Copilot CLI, debe habilitar las características experimentales mediante la ejecución de la CLI con la --experimental opción de línea de comandos o mediante /experimental on en una sesión interactiva.
Obtener información sobre los flujos de trabajo dinámicos disponibles
Es posible que ya tenga acceso a uno o varios flujos de trabajo dinámicos en la sesión, por ejemplo, a través de una extensión personal o una extensión en el repositorio en el que está trabajando. Si es así, puede usar uno mencionándolo por nombre en un símbolo del sistema.
Para saber si hay flujos de trabajo dinámicos disponibles, solo pregúntale a Copilot. Por ejemplo:
What dynamic workflows are available?
What dynamic workflows are available?
Si hay flujos de trabajo dinámicos disponibles, puede pedir a Copilot que describa uno. Por ejemplo:
Tell me more about the java-security-checks dynamic workflow.
Tell me more about the java-security-checks dynamic workflow.
Si aún no tiene ningún flujo de trabajo dinámico, puede crear uno. Consulte Creación de un flujo de trabajo dinámico.
Ejecución de un flujo de trabajo dinámico
-
En una Copilot sesión, escriba un mensaje de lenguaje natural para pedir Copilot que ejecute un flujo de trabajo dinámico.
Use el nombre registrado del flujo de trabajo y proporcione las entradas necesarias. Por ejemplo, un flujo de trabajo dinámico que realiza una revisión de seguridad por lo general le pedirá que especifique los archivos sobre los que debe ejecutarse. En este caso, puede escribir un mensaje como:
Copilot prompt Run the java-security-checks dynamic workflow on the java files in the current directory, with an AI credit limit of 500.
Run the java-security-checks dynamic workflow on the java files in the current directory, with an AI credit limit of 500.Importante
Establecer límites en un flujo de trabajo dinámico es opcional, pero se recomienda, ya que ayuda a controlar el uso de recursos y a evitar un consumo excesivo de AI credits. Para obtener más información sobre los límites que puede establecer, consulte Flujos de trabajo dinámicos.
-
Según la configuración actual de aprobación de permisos, Copilot le pide que apruebe la ejecución del flujo de trabajo dinámico antes de que se inicie. Elija sí.
Si la extensión proporciona otra manera de iniciar su flujo de trabajo, como un comando de barra diagonal o un control de lienzo en Copilot app, siga las instrucciones de esa extensión.
Ejecución de un flujo de trabajo dinámico desde la línea de comandos
-
En un terminal, use el Copilot CLI comando
copilot workflow run WORKFLOW-NAME [OPTIONS]para ejecutar un flujo de trabajo dinámico existente.El flujo de trabajo debe estar disponible a través de una extensión personal, una extensión de proyecto o un complemento instalado. Si creó el flujo de trabajo en una sesión de chat, primero habilite su extensión para que esté disponible fuera de esa sesión. Consulte Reutilización y uso compartido de flujos de trabajo dinámicos.
Use
--argspara proporcionar entradas para el flujo de trabajo como JSON.Importante
Este comando no muestra solicitudes de aprobación de permisos, incluso cuando se ejecuta en un terminal. Otorgue los permisos que necesiten los agentes del flujo de trabajo antes de comenzar, por ejemplo con
--allow-toolo--allow-url. Las solicitudes que no se pueden aprobar automáticamente se deniegan. Para obtener más información, vea Referencia programática de la CLI de GitHub Copilot.Por ejemplo, supongamos que tiene un flujo de trabajo denominado
java-security-checksque acepta unadirectoryentrada y necesita permiso para leer archivos:Shell copilot workflow run java-security-checks \ --args '{"directories":["java/src","java/tests"]}' \ --allow-tool=readcopilot workflow run java-security-checks \ --args '{"directories":["java/src","java/tests"]}' \ --allow-tool=readReemplace el nombre del flujo de trabajo, los campos de entrada y los permisos para que coincidan con el flujo de trabajo. Si el flujo de trabajo no necesita entradas, omita
--args.Como alternativa, coloque las entradas JSON en un archivo y anteponga
@a su ruta de acceso:Shell copilot workflow run java-security-checks \ --args @workflow-input.json \ --allow-tool=read
copilot workflow run java-security-checks \ --args @workflow-input.json \ --allow-tool=read -
Observe las fases y los mensajes de progreso notificados por el flujo de trabajo. Cuando se completa, el comando imprime su resultado, si devuelve uno y sale. Si se detiene o se detiene sin completarse, el comando notifica el estado y el identificador de ejecución de la ejecución. Para interrumpir una ejecución, presione Ctrl+C.
Los límites configurados del flujo de trabajo y los límites predeterminados personales se siguen aplicando. Consulte Flujos de trabajo dinámicos.
Guardar el resultado en un archivo
Añada --result-file para escribir el valor devuelto del flujo de trabajo en un archivo JSON en lugar de imprimirlo en la terminal. Los mensajes de progreso todavía se muestran.
copilot workflow run java-security-checks \ --args @workflow-input.json \ --result-file security-results.json \ --allow-tool=read
copilot workflow run java-security-checks \
--args @workflow-input.json \
--result-file security-results.json \
--allow-tool=read
El archivo contiene solo el valor devuelto, no los mensajes de progreso ni los detalles de ejecución. Las rutas relativas se resuelven a partir del directorio donde se ejecutó el comando.
El archivo solo se escribe cuando el flujo de trabajo se completa correctamente y devuelve un resultado. Un archivo existente solo se reemplaza después de que el nuevo resultado se escribe correctamente. Una ejecución en pausa, con errores o interrumpida deja cualquier archivo existente sin cambios.
Ejecución de un flujo de trabajo en un script
Para scripts y canalizaciones de CI/CD, configure la autenticación y los permisos antes de ejecutar el comando. Puede usar una variable de entorno de autenticación como COPILOT_GITHUB_TOKEN. Consulte Referencia de comandos de la CLI de GitHub Copilot.
Para cargar una extensión de proyecto cuando el directorio de trabajo aún no haya sido de confianza, establezca GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true para esa invocación. Esto permite que se ejecute el código de extensión del repositorio. Úselo solo para el código de confianza. Todavía debe conceder los permisos de herramienta que necesitan los agentes del flujo de trabajo.
Use --silent para suprimir la salida de progreso. Agregue --output-format json para recibir un registro JSON que contenga el nombre del flujo de trabajo, el identificador de ejecución, el estado y cualquier resultado devuelto:
copilot --allow-tool=read workflow run java-security-checks \ --args @workflow-input.json \ --silent --output-format json
copilot --allow-tool=read workflow run java-security-checks \
--args @workflow-input.json \
--silent --output-format json
Crear un flujo de trabajo dinámico
De forma predeterminada, Copilot crea un flujo de trabajo en una extensión para tu sesión actual. En su lugar, puede pedirle que cree el flujo de trabajo en una extensión personal o de proyecto.
-
Describa lo que desea que el flujo de trabajo realice, cualquier orden necesario de pasos, qué elementos deben usar un agente y los límites. Por ejemplo:
Copilot prompt Create a dynamic workflow named review-changed that lists changed files, asks an agent to review them, and summarizes the findings.
Create a dynamic workflow named review-changed that lists changed files, asks an agent to review them, and summarizes the findings.Nota:
Si no proporciona un nombre para el flujo de trabajo, Copilot elige uno durante la creación.
-
En función de la configuración actual de aprobación de permisos, se le pedirá que autorice a Copilot a crear un nuevo flujo de trabajo dinámico. Elija sí.
Copilot puede solicitar otras aprobaciones, ya que funciona al crear y registrar el flujo de trabajo dinámico.
- Una vez completado el proceso de creación, compruebe que el flujo de trabajo se creó y registró correctamente. Para ello, pregunte Copilot qué flujos de trabajo dinámicos están disponibles.
La creación y el registro de un flujo de trabajo no inician una ejecución. Para usarlo, consulte Ejecución de un flujo de trabajo dinámico.
También puede escribir la extensión usted mismo, con instrucciones de Copilot. Para leer las instrucciones integradas, pregunte:
Show me the guidance for writing dynamic workflows.
Show me the guidance for writing dynamic workflows.
Reutilización y uso compartido de flujos de trabajo dinámicos
Los flujos de trabajo dinámicos se implementan como Copilot extensiones. De forma predeterminada, cuando se pide Copilot crear un flujo de trabajo, su extensión solo está disponible en esa sesión. Un flujo de trabajo también puede estar ya guardado en una extensión personal o de proyecto.
Para reutilizar o compartir un flujo de trabajo que creó en la sesión actual, copie su extensión en el directorio de extensiones personales o en el directorio de extensiones del repositorio. Esto copia la definición, no su historial de ejecución ni el progreso guardado.
-
Pida Copilot que le indique la ruta de acceso al flujo de trabajo dinámico que desea compartir. Por ejemplo:
Copilot prompt Tell me the path to the java-security-checks dynamic workflow.
Tell me the path to the java-security-checks dynamic workflow.
Copilot responderá con una ruta de acceso como: /Users/yourname/.copilot/session-state/d58ba0bf-78fa-4172-b277-c18ba400e7c6/extensions/java-security-checks/extension.mjs
-
Para que este flujo de trabajo dinámico esté disponible en todas las sesiones, copie el directorio que contiene el archivo en el
extension.mjs``~/.copilot/extensions/directorio.Puedes pedirle a Copilot que lo haga por ti. Por ejemplo:
Copilot prompt Copy the java-security-checks workflow to my personal extensions directory.
Copy the java-security-checks workflow to my personal extensions directory. -
Como alternativa, para compartir el flujo de trabajo dinámico con todos los que trabajan en un repositorio, copie el directorio que contiene el archivo
extension.mjsen el directorio.github/extensions/de su copia local del repositorio.De nuevo, puedes pedir Copilot que lo hagas por ti. Por ejemplo, si está trabajando actualmente en el repositorio en el que desea que el flujo de trabajo dinámico esté disponible:
Copilot prompt Copy the java-security-checks workflow to the current repository's extensions directory.
Copy the java-security-checks workflow to the current repository's extensions directory.Una vez que este cambio se integra en el repositorio, los miembros del equipo pueden usar el flujo de trabajo después de actualizar su copia local y cargar la extensión.
-
Iniciar una nueva sesión o reiniciar una sesión existente. Cuando finalice la carga de la sesión, pida que enumere Copilot los flujos de trabajo dinámicos disponibles para comprobar que el flujo de trabajo ya está disponible.
Distribuir flujos de trabajo dinámicos en un complemento
Los complementos proporcionan una manera de distribuir la funcionalidad personalizada Copilot . Puede usar un complemento para agregar flujos de trabajo dinámicos a Copilot CLI y .GitHub Copilot app
Para obtener más información, vea Creación de un complemento para GitHub Copilot CLI.
Después de crear un complemento que incluya tu flujo de trabajo dinámico y publicarlo en un mercado de complementos, la gente podrá descubrirlo e instalarlo. Consulte Búsqueda e instalación de complementos para GitHub Copilot CLI.
Supervisión y administración de ejecuciones dinámicas de flujo de trabajo
Puede supervisar el progreso y AI credits el uso de una ejecución, junto con las fases y subagentes de los informes de flujo de trabajo. También puedes consultar las ejecuciones completadas, pausar o cancelar una ejecución activa y reanudar una ejecución que pausaste o que se detuvo porque se alcanzó un límite.
En Copilot CLI:
-
En una sesión interactiva, escriba
/workflows.Se muestran las ejecuciones de flujo de trabajo dinámicas que se están ejecutando y completados recientemente.
-
Use las teclas de dirección para mover la selección y presione Entrar para abrir los detalles de una ejecución.
Los detalles incluyen el período de tiempo que se ha activo una ejecución, cualquier fase actual notificada por el flujo de trabajo, el número de subagentes activos actualmente, el número total de subagentes generados y el número de AI credits usados hasta ahora.
-
En una ejecución activa, presione P para pausar, X para cancelar la ejecución.
En Copilot app:
Nota:
La supervisión de ejecución solo está disponible para las sesiones locales.
Si está ejecutando, o ha ejecutado, un flujo de trabajo dinámico en la sesión actual, se muestra un botón Flujos de trabajo sobre el cuadro de instrucciones.
-
Haga clic en el botón Flujos de trabajo .
Se muestra un elemento emergente en el que se enumeran las ejecuciones activas, las ejecuciones listas para reanudarse y las ejecuciones finalizadas recientemente.
-
Haga clic en una ejecución de flujo de trabajo en el menú emergente.
Se muestra un panel que muestra los detalles de la ejecución del flujo de trabajo seleccionado.
Los detalles incluyen el período de tiempo que se ha activo una ejecución, cualquier fase actual notificada por el flujo de trabajo, el número de subagentes activos actualmente, el número total de subagentes generados y el número de AI credits usados hasta ahora.
-
Para detener una ejecución activa, haga clic en Cancelar. Para pausarlo, para que se pueda reanudar más adelante, haga clic en Pausa.
Supervisión de flujos de trabajo dinámicos con OTel
Si ha habilitado OpenTelemetry (OTel), puede inspeccionar la actividad del flujo de trabajo en los seguimientos. Un flujo de trabajo crea un invoke_workflow intervalo cada vez que se ejecuta o reanuda, con la actividad de sus agentes vinculada a él.
Para obtener la configuración en Copilot CLI, consulte Referencia de comandos de la CLI de GitHub Copilot.
Reanudación de una ejecución
Puede reanudar una ejecución en pausa o una que se detenga en un límite cuando se muestre como reanudable. El flujo de trabajo puede reutilizar los resultados guardados de los pasos completados y los subagentes, en lugar de iniciar una nueva ejecución. Es posible que el trabajo que no se guardó tenga que volver a ejecutarse.
Al reanudar una ejecución que alcanzó un límite, establezca un total mayor para ese límite. El uso antes de que se detenga la ejecución sigue contando hacia el nuevo total.
No se pueden reanudar las ejecuciones canceladas.
En Copilot CLI:
- En una sesión interactiva, escriba
/workflows. - Use las teclas de dirección para mover la selección a la ejecución pausada o detenida que desea reanudar.
- Presione R para reanudar la ejecución.
- Si se le solicita, aumente el límite alcanzado y confirme el nuevo total.
En el Copilot app:
-
En una sesión que contiene ejecuciones dinámicas de flujo de trabajo en pausa o detenidas, haga clic en el botón Workflows, justo encima del cuadro de solicitud.
Las ejecuciones reanudables se muestran en una sección "Listo para reanudar".
-
Haga clic en la ejecución que desea reanudar.
-
En el panel lateral, haga clic en Reanudar. Si la ejecución alcanzó un límite, haga clic en Reanudar con límite... en su lugar, siga las indicaciones para establecer un total superior y reanudar.
Programar una ejecución de flujo de trabajo dinámico
Puede programar una ejecución dinámica de flujo de trabajo en la sesión actual Copilot CLI , al igual que cualquier otro aviso, mediante los /every comandos o /after . Por ejemplo:
/every 1d run the changed-files-report dynamic workflow on the 'main' branch, limiting it to 200 AI credits
/every 1d run the changed-files-report dynamic workflow on the 'main' branch, limiting it to 200 AI credits
Para obtener más información, vea Programación de indicaciones en GitHub Copilot CLI.