Observação
Esse recurso está em prévia pública e está sujeito a alterações.
Este artigo explica o que são fluxos de trabalho dinâmicos e o que eles podem fazer. Para obter detalhes de como usá-los, consulte Usando fluxos de trabalho dinâmicos.
Sobre fluxos de trabalho dinâmicos
Um fluxo de trabalho dinâmico é um programa que define como uma tarefa é executada. Ele pode combinar etapas automatizadas com o trabalho de um ou mais agentes. As etapas podem ser executadas uma após a outra, em paralelo ou como uma mistura de ambas.
Fluxos de trabalho dinâmicos são particularmente úteis para tarefas complexas e de várias etapas e tarefas que você deseja poder repetir com um conjunto determinístico de ações executadas todas as vezes. Por exemplo, você pode usar um fluxo de trabalho dinâmico para investigar um incidente de indisponibilidade de serviço, coletando logs e telemetria, atribuindo a diferentes agentes independentes a análise de sistemas distintos e combinando suas descobertas estruturadas em uma linha do tempo e um relatório de causa raiz.
Fluxos de trabalho dinâmicos podem:
- Execute comandos, use ferramentas ou chame outros serviços.
- Divida uma meta em tarefas e execute tarefas independentes em paralelo.
- Passar os resultados de uma etapa para a seguinte.
- Fazer com que os subagentes verifiquem as descobertas uns dos outros.
- Combine os resultados em uma única resposta.
- Solicitar sua entrada, se o aplicativo que você está usando der suporte a ele.
- Pause em um ponto de verificação para que você possa examinar os resultados e retomar a execução quando estiver pronto.
Tudo é definido no código: as etapas, quando envolver agentes e como usar seus resultados. Os agentes lidam com as partes que precisam de análise ou julgamento.
Um fluxo de trabalho pode pedir aos agentes que retornem resultados em um formato específico para que as etapas posteriores possam usá-los. Copilot pode pedir a um agente para corrigir o formato, se necessário.
Fluxos de trabalho dinâmicos são definidos nas Copilot extensões. Eles podem ser:
- Criado por Copilot. Descreva a tarefa e o processo que você deseja que o fluxo de trabalho siga.
- Criado por você. Você pode escrever a extensão por conta própria, usando as diretrizes de criação integradas do Copilot.
- Compartilhado com você. Depois que a extensão estiver carregada, seus fluxos de trabalho dinâmicos estarão disponíveis para uso.
Para usar um fluxo de trabalho dinâmico, você pode pedir a Copilot, em linguagem natural, que o execute pelo nome. Por exemplo:
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.
Quando você inicia um fluxo de trabalho dinâmico a partir de um prompt, Copilot o executa em segundo plano e informa você quando ele for concluído. Você pode continuar trabalhando em sua sessão enquanto ela é executada.
Importante
Seu agente de chat só cria ou executa um fluxo de trabalho dinâmico quando você solicita explicitamente, ou quando uma habilidade ou um comando de barra o instrui a fazê-lo.
Em Copilot CLI, você também pode executar um fluxo de trabalho dinâmico existente diretamente do terminal com copilot workflow run WORKFLOW-NAME. Você não precisa abrir um chat interativo nem pedir que um agente o inicie. O fluxo de trabalho ainda pode usar agentes para executar suas etapas.
O comando aguarda até que a execução termine ou seja interrompida antes de devolver o controle ao shell. Use essa abordagem para repetir um fluxo de trabalho com entradas específicas, salvar seu resultado ou executá-lo de um script ou pipeline de CI/CD. Para obter mais informações, consulte Usando fluxos de trabalho dinâmicos.
Você também pode iniciar um fluxo de trabalho por meio do comando de barra de uma extensão, da ferramenta personalizada ou do gancho programático ou de outro código que usa o Copilot SDK. No Copilot app, uma extensão pode fornecer um canvas — uma interface personalizada — com controles para iniciar o fluxo de trabalho. Essas alternativas dependem da extensão e do cliente que você está usando.
Para obter mais informações sobre telas, consulte Trabalhando com extensões do canvas no aplicativo GitHub Copilot.
Para ver quais são os fluxos de trabalho dinâmicos disponíveis, basta perguntar Copilot:
What dynamic workflows are available?
What dynamic workflows are available?
Disponibilidade de fluxos de trabalho dinâmicos
Fluxos de trabalho dinâmicos estão disponíveis no Copilot app, Copilot CLI e Copilot SDK. Eles estão disponíveis para usuários em todos os Copilot planos, exceto para assinantes Copilot Pro e Copilot Pro+ em planos anuais existentes que permanecem na cobrança premium legada baseada em solicitação. Para obter mais informações sobre esse modelo de cobrança, consulte GitHub Copilot cobrança por solicitação para assinantes do plano anual (legado).
Como os fluxos de trabalho dinâmicos diferem do Autopilot e do Fleet
Se você já usa o modo de piloto automático e o comando /fleet, um fluxo de trabalho dinâmico pode parecer o mesmo tipo de recurso. A principal diferença está em como o trabalho é planejado e controlado, e não simplesmente em quantos agentes são usados.
- O Autopilot é um modo que se trata de autonomia. Ele permite Copilot continuar trabalhando em uma tarefa sem pausar para obter sua entrada após cada etapa.
/fleetincentiva Copilot a delegar trabalho a subagentes e coordenar seu trabalho em paralelo. Copilot decide como dividir a tarefa a cada vez.- Um fluxo de trabalho dinâmico executa um processo definido em código. O autor do fluxo de trabalho define as etapas, as condições e as transferências. O processo pode usar um agente ou muitos, com o trabalho acontecendo em sequência, em paralelo ou ambos.
Reutilizar um fluxo de trabalho significa reutilizar suas etapas e regras. O caminho por essas etapas pode ser alterado com as entradas ou descobertas, e os agentes podem dar respostas diferentes em execuções diferentes.
| Aspecto | Autopilot | Fleet | Fluxo de trabalho dinâmico |
|---|---|---|---|
| Objetivo principal | Deixe Copilot continuar funcionando de forma autônoma | Incentivar Copilot a delegar tarefas a subagentes | Executar um processo definido no código |
| Quem define o processo? | |||
| Copilot decide as próximas etapas | |||
| Copilot decide como dividir e coordenar o trabalho | O autor do fluxo de trabalho define as etapas, as condições e os encaminhamentos | ||
| Como funciona | Depende da tarefa e das decisões de Copilot | O trabalho independente pode ser delegado em paralelo | Sequencialmente, em paralelo ou ambos, usando um agente ou muitos |
Para obter detalhes sobre como controlar as execuções de fluxo de trabalho, consulte Limitando um fluxo de trabalho dinâmico e observando, parando, pausando e retomando execuções.
Quando usar um fluxo de trabalho dinâmico
Use um fluxo de trabalho dinâmico quando quiser definir um processo que possa ser reutilizado ou quando uma única tarefa precisar de estágios claros, verificações ou limites. Bons candidatos incluem:
- Executando verificações de versão, solicitando que um agente avalie falhas e pausando para que você examine as conclusões antes de retomar.
- Examinar muitos arquivos alterados em uma pull request em paralelo.
- Usando código para encontrar comentários de revisão não resolvidos em solicitações de pull mescladas e perguntando a dois modelos se os comentários ainda importam. O código do fluxo de trabalho relata as descobertas somente quando ambos estiverem de acordo.
- Varrendo uma base de código grande para um padrão , por exemplo, testes ausentes ou usos de uma API que você está removendo – em muitos diretórios de uma só vez.
- Pesquisando uma alteração, planejando sua implementação a partir das descobertas e, em seguida, fazendo a alteração.
- Iniciando uma execução longa e potencialmente dispendiosa que talvez você queira pausar e retomar mais tarde.
Para uma resposta rápida ou uma alteração simples, um prompt normal no modo de chat padrão geralmente é suficiente.
Permissões para fluxos de trabalho dinâmicos
Os subagentes de um fluxo de trabalho dinâmico usam o sistema de permissões da CLI e herdam as concessões de permissão da sessão que os iniciou. Tudo o que você já permitiu em sua sessão se aplica aos subagentes do fluxo de trabalho dinâmico.
Se um dos subagentes de um fluxo de trabalho tentar fazer algo que ainda não é permitido, sua solicitação será exibida como um prompt de permissão normal em sua sessão interativa da CLI. Você o aprova lá, da mesma forma que faria para o agente principal. O subagente que precisa de permissão simplesmente aguarda até que você responda.
Se um subagente solicitar uma permissão e você concedê-la durante a sessão, essa concessão se aplicará a todos os subagentes que precisam da mesma permissão.
Quando você usa copilot workflow run, o comando não exibe prompts de aprovação de permissão. Conceda as permissões de que os agentes do fluxo de trabalho precisam antes de iniciar a execução. Consulte Usando fluxos de trabalho dinâmicos.
Uma extensão também pode executar seu próprio código diretamente, fora desses prompts de permissão.
Criando um fluxo de trabalho dinâmico
Você pode criar um fluxo de trabalho dinâmico pedindo a Copilot para fazer isso em uma sessão interativa. Diga Copilot o que você deseja que o fluxo de trabalho realize.
Por padrão, Copilot cria uma extensão para sua sessão atual. Em vez disso, você pode pedir que ele crie uma extensão pessoal ou de projeto ou escrever a extensão por conta própria usando as diretrizes internas de criação de Copilot.
Para obter mais informações, consulte Usando fluxos de trabalho dinâmicos.
Revisar um fluxo de trabalho dinâmico
Normalmente, na primeira vez que você usar um fluxo de trabalho dinâmico, você o testará executando-o com um escopo limitado. Por exemplo, para um fluxo de trabalho dinâmico projetado para processar vários arquivos, você pode inicialmente pedir a Copilot que execute o fluxo de trabalho em apenas dois ou três arquivos. Em seguida, você pode avaliar o resultado. Se necessário, você pode pedir Copilot para revisar o fluxo de trabalho antes de executá-lo novamente.
Use uma solicitação em linguagem natural para fazer com que Copilot revise a definição salva do fluxo de trabalho, em vez de substituir um limite para apenas uma execução. Por exemplo:
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.
As revisões são salvas na extensão do fluxo de trabalho dinâmico, seja ela armazenada para uma sessão, no diretório de extensões pessoais ou em um repositório de projetos. Novas execuções usam a versão revisada depois que a extensão atualizada é carregada. Isso não substitui os resultados salvos em uma execução pausada.
Se você revisar um fluxo de trabalho dinâmico que compartilhou no repositório de um projeto, as pessoas que trabalham nesse projeto deverão efetuar pull da versão atualizada do repositório e recarregar suas extensões antes de poderem usar a versão revisada.
Reutilizando e compartilhando fluxos de trabalho dinâmicos
Por padrão, os fluxos de trabalho que Copilot cria para você têm como escopo a sessão atual. Você pode copiar a extensão para o diretório de extensões pessoais para usá-la entre sessões ou no diretório de extensões de um repositório para compartilhá-la com pessoas que trabalham nesse projeto. Isso compartilha a definição, não o histórico de execuções da sessão original ou o progresso salvo. Para obter mais informações, consulte Usando fluxos de trabalho dinâmicos.
Para compartilhar um fluxo de trabalho dinâmico mais amplamente, você pode empacotá-lo como um plug-in e distribuí-lo por meio de seu sistema de gerenciamento de plug-in preferido. Para obter mais informações, consulte Criando um plug-in para GitHub Copilot CLI.
Limitando um fluxo de trabalho dinâmico
Você pode definir os seguintes limites para um fluxo de trabalho dinâmico:
-
O número máximo de agentes de fluxo de trabalho que podem estar ativos ao mesmo tempo.
-
O número máximo de agentes pertencentes ao fluxo de trabalho que podem ser iniciados, no total, ao longo de uma execução.
-
O tempo máximo de execução ativo, incluindo o tempo usado antes de uma pausa. O tempo enquanto a execução é pausada não conta.
-
O número máximo aproximado de AI credits que os agentes do fluxo de trabalho e seus subagentes podem consumir.
Observação
Copilot controla os créditos usados pelos agentes do fluxo de trabalho e impede novos trabalhos quando o total atinge o limite. O uso é relatado após ocorrer, portanto, o trabalho já em andamento pode levar o total além do limite. Este é um máximo aproximado, não um teto rígido.
Os limites podem ser definidos em três lugares:
-
Em seu prompt: Especifique um limite em linguagem natural no prompt que você usa para executar um fluxo de trabalho dinâmico. Por exemplo:
Use the architecture-research dynamic workflow on this repo, with a timeout of 1 hour. -
No código do fluxo de trabalho: Ao criar um fluxo de trabalho dinâmico, você pode (opcionalmente) definir limites que devem ser usados quando ele for executado.
-
Em suas configurações pessoais: Você pode definir limites padrão em suas configurações pessoais para Copilot. Isso se aplicará a qualquer fluxo de trabalho dinâmico executado, se o mesmo tipo de limite não for especificado no prompt ou no código do fluxo de trabalho.
Em Copilot CLI, você pode usar as seguintes opções com o comando
/settingspara configurar seus limites padrão pessoais para fluxos de trabalho dinâmicos.workflows.defaultLimits.maxConcurrentSubagentsworkflows.defaultLimits.maxTotalSubagentsworkflows.defaultLimits.timeoutSeconds(deve ser especificado em segundos)workflows.defaultLimits.maxAiCredits
Por exemplo:
/settings workflows.defaultLimits.timeoutSeconds 3600
Os limites são priorizados na ordem mostrada acima. Se você especificar um limite no prompt, ele substituirá qualquer limite correspondente definido no fluxo de trabalho dinâmico ou em suas configurações pessoais.
O limite de subagentes simultâneos faz com que subagentes adicionais aguardem até que outros terminem. Alcançá-lo não interrompe o fluxo de trabalho.
Os outros limites podem interromper uma execução, mas seu status e resultados salvos são mantidos para que você possa retomá-la mais tarde. Quando você retomar uma execução que foi interrompida ao atingir um limite, aumente esse limite para permitir mais trabalho. O novo limite é um total para a execução, incluindo o uso antes de parar, não uma nova cota.
Impedindo o uso inesperado de AI credit
Um fluxo de trabalho que inicia muitos subagentes pode levar muito tempo para ser concluído e consumir um grande número de AI credits.
Para evitar o alto consumo inesperado de AI credits, você deve testar um fluxo de trabalho dinâmico com um escopo de pequena escala antes de usá-lo para um trabalho em grande escala. Depois de executar uma pequena execução de teste, verifique o uso real AI credit e, em AI credits, defina um limite apropriado para a execução em grande escala.
Monitorando, parando, pausando e retomando execuções
Você pode usar o /workflows comando de barra em uma Copilot CLI sessão ou o botão Fluxos de Trabalho no Copilot app. para exibir execuções de fluxo de trabalho atuais ou anteriores.
Os detalhes mostram AI credits o uso e quaisquer fases, mensagens de progresso e subagentes que o fluxo de trabalho relata. Você pode cancelar ou pausar um fluxo de trabalho em execução daqui. Uma extensão também pode fornecer seu próprio indicador de progresso, por exemplo, em um canvas no Copilot app.
Se você tiver pausado uma execução ou se ela tiver parado porque um limite foi atingido, você poderá selecioná-la na lista de execuções para retomá-la. O fluxo de trabalho pode reutilizar resultados salvos de etapas concluídas e subagentes concluídos. O trabalho que não foi salvo pode precisar ser executado novamente.
Para obter mais informações, consulte Usando fluxos de trabalho dinâmicos.