Skip to main content
Skip to content

Flujos de trabajo dinámicos

Utiliza GitHub Copilot para orquestar el trabajo en tareas complejas, combinando potencialmente operaciones deterministas, agentes, herramientas, llamadas a la API e interacciones con el usuario.

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 detalles sobre cómo utilizarlos, 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 mezcla 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 un informe de escala de tiempo y 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 verifiquen los hallazgos entre sí.
  • Combine 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 pueda revisar los resultados y reanudar la ejecución cuando esté 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 Copilot extensiones. 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, usando la guía de creación integrada de Copilot.
  • Compartido con usted. 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 Copilot al lenguaje natural que lo ejecute por su nombre. Por ejemplo:

Copilot prompt
Run the java-security-review dynamic workflow on the java files in the current directory.

Al iniciar un flujo de trabajo dinámico desde un símbolo del sistema, Copilot lo ejecuta en segundo plano e informa de nuevo cuando haya terminado. Puede seguir trabajando en la sesión mientras se ejecuta.

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 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 GitHub Copilot SDK. En Copilot appel, 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 lienzos, consulte Trabajar con extensiones de Canvas en la aplicación GitHub Copilot.

Para ver qué flujos de trabajo dinámicos hay disponibles, solo tiene que preguntarle a Copilot:

Copilot prompt
What dynamic workflows are available?

Diferencias entre los flujos de trabajo dinámicos, Autopilot y Fleet

Si ya usas el modo Autopilot y el comando /fleet, es posible que un flujo de trabajo dinámico parezca lo mismo. 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.
  • /fleet anima a Copilot a delegar trabajo a 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 entregas. 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. El recorrido por esos pasos puede cambiar en función de las entradas o los hallazgos, y los agentes pueden dar respuestas distintas en diferentes ejecuciones.

AspectoPiloto automáticoFleetFlujo de trabajo dinámico
Finalidad principalDeje que Copilot siga trabajando de forma autónomaAlentar a Copilot a delegar trabajo a subagentesRealizar un proceso definido en el código
¿Quién define el proceso?
Copilot decide los pasos siguientes
Copilot decide cómo repartir y coordinar el trabajoEl autor del flujo de trabajo define los pasos, las condiciones y los traspasos.
Cómo se ejecuta un trabajoDepende de las decisiones de la tarea y Copilotde lasEl trabajo independiente se puede delegar en paraleloSecuencialmente, 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

Utilice un flujo de trabajo dinámico cuando desee definir un proceso reutilizable 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 una solicitud de extracción en paralelo.
  • Usar código para identificar comentarios de revisión sin resolver en las solicitudes fusionadas y después preguntar a dos modelos si esos comentarios siguen siendo relevantes. El código del flujo de trabajo solo informa de hallazgos 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 aviso 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 haya 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í, igual que lo haría con el agente principal. El subagente que necesita permiso simplemente espera hasta que respondas.

Si un subagent solicita un permiso y 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.

Creación de 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, Copilot crea una extensión para la sesión actual. En cambio, puede pedirle que cree una extensión personal o de proyecto, o escribir la extensión usted mismo mediante la guía integrada de creación 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:

Copilot prompt
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, ya esté almacenada para una sesión, en tu directorio personal de extensiones o en un repositorio de proyecto. 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 extraer 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 de extensiones personales 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 pertenecientes al flujo de trabajo que pueden estar activos al mismo tiempo.

  • Número máximo de agentes que pertenecen al flujo de trabajo que se pueden lanzar, en total, a lo largo 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 informa una vez que se produce, por lo que el trabajo que ya esté en marcha puede hacer que el total supere el límite. Este es un máximo aproximado, no un techo duro.

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 puedes usar las siguientes claves con el comando /settings para configurar tus límites predeterminados personales para flujos de trabajo dinámicos.

    • workflows.defaultLimits.maxConcurrentSubagents
    • workflows.defaultLimits.maxTotalSubagents
    • workflows.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 reanudarlo 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 , debe probar un flujo de AI creditstrabajo 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.

Supervisión, detención, pausa y reanudación de las ejecuciones

Puede usar el comando /workflows en una sesión de Copilot CLI, o el botón Copilot app en ****, para ver las ejecuciones actuales o anteriores de flujos de trabajo.

Los detalles muestran el uso de AI credits y todas las fases, los mensajes de progreso y los subagentes que informe 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 del Copilot app.

Si ha pausado una ejecución (o si se ha detenido porque se ha alcanzado un límite), puede seleccionarlo 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.