Nota:
Esta característica está en versión preliminar pública y está sujeta a cambios.
En este artículo se explica qué son los flujos de trabajo dinámicos y qué pueden hacer. Para obtener más información sobre cómo usarlos, consulte Uso de flujos de trabajo dinámicos.
Acerca de los flujos de trabajo dinámicos
Un flujo de trabajo dinámico es un programa que define cómo se lleva a cabo una tarea. Puede combinar pasos automatizados con el trabajo de uno o varios agentes. Los pasos se pueden ejecutar uno después de otro, en paralelo o como una combinación de ambos.
Los flujos de trabajo dinámicos son especialmente útiles para tareas complejas, de varios pasos y tareas que desea poder repetir con un conjunto de acciones determinista realizadas cada vez. Por ejemplo, puede usar un flujo de trabajo dinámico para investigar un incidente de interrupción del servicio, mediante la recopilación de registros y telemetría, la asignación de agentes independientes para analizar distintos sistemas y combinar sus hallazgos estructurados en una cronología y un informe de causa principal.
Los flujos de trabajo dinámicos pueden:
- Ejecuta comandos, usa herramientas o llama a otros servicios.
- Divida un objetivo en tareas y ejecute tareas independientes en paralelo.
- Pase los resultados de una fase a la siguiente.
- Hacer que los subagentes comprueben los hallazgos entre sí.
- Combina los resultados en una sola respuesta.
- Solicitarle que introduzca datos, si la aplicación que está usando lo admite.
- Pause en un punto de control para que puedas revisar los resultados y reanudar la ejecución cuando estés listo.
Todo se define en el código: los pasos, cuándo involucrar a los agentes y cómo usar sus resultados. Los agentes se encargan de las partes que requieren análisis o criterio.
Un flujo de trabajo puede pedir a los agentes que devuelvan resultados en un formato especificado para que los pasos posteriores puedan usarlos. Copilot puede pedir a un agente que corrija el formato si es necesario.
Los flujos de trabajo dinámicos se definen en las extensiones Copilot. Pueden ser:
- Escrito por Copilot. Describir la tarea y el proceso que desea que siga el flujo de trabajo.
- Escrito por ti. Puede escribir la extensión usted mismo, mediante la guía de creación integrada de Copilot.
- Compartido contigo. Una vez cargada la extensión, sus flujos de trabajo dinámicos están disponibles para su uso.
Para usar un flujo de trabajo dinámico, puede pedir a Copilot en lenguaje natural que lo ejecute por su nombre. Por ejemplo:
Run the java-security-review dynamic workflow on the java files in the current directory.
Run the java-security-review dynamic workflow on the java files in the current directory.
Al iniciar un flujo de trabajo dinámico desde una solicitud, Copilot lo ejecuta en segundo plano e informa de nuevo cuando haya terminado. Puede seguir trabajando en la sesión mientras se ejecuta el proceso.
Importante
El agente de chat solo crea o ejecuta un flujo de trabajo dinámico cuando se lo pide explícitamente, o cuando una habilidad o un comando con barra le indica que lo haga.
En Copilot CLI, también puede ejecutar un flujo de trabajo dinámico existente directamente desde el terminal con copilot workflow run WORKFLOW-NAME. No es necesario abrir un chat interactivo ni pedir a un agente que lo inicie. El flujo de trabajo todavía puede usar agentes para llevar a cabo sus pasos.
El comando espera a que la ejecución finalice o se detenga antes de devolver el control al shell. Use este enfoque para repetir un flujo de trabajo con entradas específicas, guardar su resultado o ejecutarlo desde una canalización de CI/CD o script. Para obtener más información, vea Uso de flujos de trabajo dinámicos.
También puede iniciar un flujo de trabajo a través del comando de barra diagonal de una extensión, una herramienta personalizada o un enlace mediante programación, o desde otro código que use la Copilot SDK. En el Copilot app, una extensión puede proporcionar un lienzo (una interfaz personalizada) con controles para iniciar el flujo de trabajo. Estas alternativas dependen de la extensión y del cliente que usa.
Para obtener más información sobre los canvas, vea Trabajar con extensiones de Canvas en la aplicación GitHub Copilot.
Para ver qué flujos de trabajo dinámicos están disponibles, solo tiene que preguntar Copilot:
What dynamic workflows are available?
What dynamic workflows are available?
Disponibilidad de flujos de trabajo dinámicos
Los flujos de trabajo dinámicos están disponibles en Copilot app, Copilot CLIy Copilot SDK. Están disponibles para los usuarios en todos los planes Copilot, excepto para los suscriptores de Copilot Pro y Copilot Pro+ en planes anuales existentes que permanecen en la facturación heredada basada en solicitudes premium. Para obtener más información sobre este modelo de facturación, consulte Facturación por solicitud de GitHub Copilot para suscriptores del plan anual (heredado).
Diferencias entre los flujos de trabajo dinámicos, Autopilot y Fleet
Si ya usa el modo Autopilot y el /fleet comando, es posible que un flujo de trabajo dinámico parezca ser el mismo tipo de cosa. La principal diferencia es cómo se planea y controla el trabajo, no solo el número de agentes que se usan.
- Autopilot es un modo que se trata de autonomía. Permite Copilot seguir trabajando en una tarea sin detenerse para pedirte tu intervención después de cada paso.
/fleetanima a Copilot a delegar el trabajo a los subagentes y coordinar su trabajo en paralelo. Copilot decide cómo desglosar la tarea cada vez.- Un flujo de trabajo dinámico lleva a cabo un proceso definido en el código. El autor del flujo de trabajo define los pasos, las condiciones y las transferencias. El proceso puede usar un agente o varios, con el trabajo que sucede en secuencia, en paralelo o ambos.
Reutilizar un flujo de trabajo significa reutilizar sus pasos y reglas. La ruta de acceso a esos pasos puede cambiar con las entradas o los hallazgos, y los agentes pueden proporcionar respuestas diferentes en distintas ejecuciones.
| Aspecto | Piloto automático | Fleet | Flujo de trabajo dinámico |
|---|---|---|---|
| Finalidad principal | Deje que Copilot siga trabajando de forma autónoma | Animar Copilot a delegar el trabajo a subagentes | Realizar un proceso definido en el código |
| ¿Quién define el proceso? | |||
| Copilot decide los pasos siguientes | |||
| Copilot decide cómo dividir y coordinar el trabajo | El autor del flujo de trabajo define los pasos, las condiciones y los traspasos. | ||
| Cómo se ejecuta el trabajo | Depende de la tarea y de las decisiones de Copilot | El trabajo independiente se puede delegar en paralelo | Secuencialmente, en paralelo o ambos, mediante un agente o varios |
Para obtener más información sobre cómo controlar las ejecuciones de flujo de trabajo, consulte Limitación de un flujo de trabajo dinámico y Inspección, detención, pausa y reanudación de ejecuciones.
Cuándo usar un flujo de trabajo dinámico
Use un flujo de trabajo dinámico cuando quiera definir un proceso que pueda reutilizar o cuando una sola tarea necesite fases, comprobaciones o límites claros. Entre los candidatos adecuados destacan los siguientes:
- Ejecutando comprobaciones de la versión, pidiendo a un agente que evalúe los fallos y haciendo una pausa para que revise los resultados antes de reanudar.
- Revisar muchos archivos modificados en un pull request en paralelo.
- Usar código para buscar comentarios de revisión sin resolver en las pull requests fusionadas y, a continuación, preguntar a dos modelos si los comentarios siguen siendo importantes. El código del flujo de trabajo informa de los resultados solo cuando ambos coinciden.
- Buscar un patrón en una base de código grande (por ejemplo, pruebas que faltan o usos de una API que estás eliminando) en muchos directorios a la vez.
- Investigar un cambio, planear su implementación a partir de los resultados y, a continuación, realizar el cambio.
- Iniciar una ejecución larga y potencialmente costosa que puede querer pausar y reanudar más adelante.
Para obtener una respuesta rápida o un cambio simple, un prompt normal en el modo de chat estándar suele ser suficiente.
Permisos para flujos de trabajo dinámicos
Los subagentes de un flujo de trabajo dinámico utilizan el sistema de permisos de la CLI y heredan los permisos concedidos de la sesión que los inició. Todo lo que ya hayas permitido en la sesión se aplica a los subagentes del flujo de trabajo dinámico.
Si uno de los subagentes de un flujo de trabajo intenta hacer algo que no esté ya permitido, su solicitud se mostrará como un aviso de permiso normal en tu sesión interactiva de la CLI. Lo aprueba allí, de la misma manera que lo haría para el agente principal. El subagente que necesita permiso simplemente espera hasta que responda.
Si un subagente solicita un permiso y usted lo concede durante la duración de la sesión, esa concesión se aplica a todos los subagentes que necesitan el mismo permiso.
Cuando usas copilot workflow run, el comando no muestra avisos de aprobación de permisos. Otorgue los permisos que los agentes del flujo de trabajo necesitan antes de iniciar la ejecución. Consulte Uso de flujos de trabajo dinámicos.
Una extensión también puede ejecutar su propio código directamente, fuera de estas solicitudes de permisos.
Crear un flujo de trabajo dinámico
Puede crear un flujo de trabajo dinámico pidiéndoselo a Copilot en una sesión interactiva. Indique Copilot lo que desea que el flujo de trabajo realice.
De forma predeterminada, se crea una extensión para la sesión actual. En su lugar, puede pedirle que cree una extensión personal o de proyecto, o bien escriba la extensión usted mismo usando la guía de creación integrada de Copilot.
Para obtener más información, vea Uso de flujos de trabajo dinámicos.
Modificar un flujo de trabajo dinámico
Normalmente, la primera vez que uses un flujo de trabajo dinámico, lo probarás ejecutándolo con un ámbito limitado. Por ejemplo, para un flujo de trabajo dinámico diseñado para procesar varios archivos, puede indicarle inicialmente a Copilot que ejecute el flujo de trabajo con solo dos o tres archivos. Después, puede evaluar el resultado. Si es necesario, puede pedirle a Copilot que revise el flujo de trabajo antes de volver a ejecutarlo.
Usa una solicitud en lenguaje natural para pedirle a Copilot que revise la definición guardada del flujo de trabajo, en lugar de anular un límite solo para una ejecución. Por ejemplo:
Update the check-python-style dynamic workflow to use no more than 10 subagents in total.
Update the check-python-style dynamic workflow to use no more than 10 subagents in total.
Las revisiones se guardan en la extensión del flujo de trabajo dinámico, tanto si se almacena para una sesión, en el directorio de extensiones personales o en un repositorio de proyectos. Las nuevas ejecuciones usan la versión revisada después de cargar la extensión actualizada. Esto no reemplaza los resultados guardados en una ejecución en pausa.
Si revisa un flujo de trabajo dinámico que ha compartido en el repositorio de un proyecto, los usuarios que trabajan en ese proyecto deben hacer pull de la versión actualizada del repositorio y, a continuación, volver a cargar sus extensiones para poder usar la versión revisada.
Reutilización y uso compartido de flujos de trabajo dinámicos
De forma predeterminada, los flujos de trabajo que Copilot crea para usted se limitan a la sesión actual. Puede copiar la extensión en el directorio personal de extensiones para usarla en sesiones o en el directorio de extensiones de un repositorio para compartirla con personas que trabajan en ese proyecto. Esto comparte la definición, no el historial de ejecución de la sesión original ni el progreso guardado. Para obtener más información, vea Uso de flujos de trabajo dinámicos.
Para compartir un flujo de trabajo dinámico con un público más amplio, puede empaquetarlo como un complemento y distribuirlo a través de su sistema de gestión de complementos preferido. Para obtener más información, vea Creación de un complemento para GitHub Copilot CLI.
Limitar un flujo de trabajo dinámico
Puede establecer los límites siguientes para un flujo de trabajo dinámico:
-
Número máximo de agentes propiedad del flujo de trabajo que pueden estar activos al mismo tiempo.
-
Número máximo de agentes propiedad del flujo de trabajo que se pueden iniciar, en total, durante el transcurso de una ejecución.
-
Tiempo de ejecución activo máximo, incluido el tiempo usado antes de una pausa. El tiempo mientras la ejecución está en pausa no cuenta.
-
El número máximo aproximado de AI credits que los agentes del flujo de trabajo y sus subagentes pueden consumir.
Nota:
Copilot realiza un seguimiento de los créditos usados por los agentes del flujo de trabajo y detiene el nuevo trabajo cuando el total alcanza el límite. El uso se notifica después de que se produzca, por lo que el trabajo ya en curso puede hacer que el total supere el límite. Este es un máximo aproximado, no un límite estricto.
Los límites se pueden definir en tres lugares:
-
En el prompt: Especifique un límite en lenguaje natural dentro del prompt que utiliza para ejecutar un flujo de trabajo dinámico. Por ejemplo:
Use the architecture-research dynamic workflow on this repo, with a timeout of 1 hour. -
En el código de flujo de trabajo: Al crear un flujo de trabajo dinámico, puede definir (opcionalmente) límites que se deben usar cuando se ejecuta el flujo de trabajo dinámico.
-
En la configuración personal: Puede definir límites predeterminados en la configuración personal para Copilot. Estos se aplicarán a cualquier flujo de trabajo dinámico que se ejecute, si no se especifica ese mismo tipo de límite en la instrucción o en el código del flujo de trabajo.
En Copilot CLI puede usar las siguientes teclas con el comando
/settingspara configurar los límites predeterminados personales de los flujos de trabajo dinámicos.workflows.defaultLimits.maxConcurrentSubagentsworkflows.defaultLimits.maxTotalSubagentsworkflows.defaultLimits.timeoutSeconds(debe especificarse en segundos)workflows.defaultLimits.maxAiCredits
Por ejemplo:
/settings workflows.defaultLimits.timeoutSeconds 3600
Los límites se priorizan en el orden indicado anteriormente. Si especifica un límite en su prompt, este anula cualquier límite correspondiente definido en el flujo de trabajo dinámico o en su configuración personal.
El límite de subagentes simultáneos hace que los subagentes adicionales esperen hasta que finalicen otros. Alcanzarlo no detiene el flujo de trabajo.
Los otros límites pueden detener una ejecución, pero su estado y los resultados guardados se mantienen para que pueda reanudarla más adelante. Al reanudar una ejecución que se detuvo al alcanzar un límite, aumente ese límite para permitir más trabajo. El nuevo límite representa el total de la ejecución, incluido el uso anterior a que se detuviera, no una cuota nueva.
Prevención del uso inesperado de AI credit
Un flujo de trabajo que inicia muchos subagentes puede tardar mucho tiempo en completarse y consumir un gran número de AI credits.
Para evitar un consumo elevado inesperado de AI credits, debe probar un flujo de trabajo dinámico con un ámbito a pequeña escala antes de usarlo para un trabajo a gran escala. Después de realizar una ejecución breve, compruebe el uso real de AI credit y, a continuación, establezca un límite adecuado en AI credits para la ejecución a gran escala.
Seguimiento, detención, pausa y reanudación de ejecuciones
Puede usar el comando de barra diagonal /workflows en una sesión Copilot CLI, o el botón Copilot app en el ****, para ver las ejecuciones de flujo de trabajo actuales o anteriores.
Los detalles muestran el uso AI credits y las fases, los mensajes de progreso y los subagentes que informa el flujo de trabajo. Puede cancelar o pausar desde aquí un flujo de trabajo en ejecución. Una extensión también puede proporcionar su propia vista de progreso, por ejemplo, en un lienzo dentro de Copilot app.
Si ha pausado una ejecución (o si se ha detenido porque se ha alcanzado un límite), puede seleccionarla en la lista de ejecución para reanudarla. El flujo de trabajo puede reutilizar resultados guardados de pasos completados y de subagentes. Es posible que el trabajo que no se guardó tenga que volver a ejecutarse.
Para obtener más información, vea Uso de flujos de trabajo dinámicos.