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, de múltiplas etapas, e para tarefas que você deseja repetir com um conjunto determinístico de ações executado sempre da mesma forma. 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.
- Passe os resultados de um estágio para o outro.
- Fazer com que os subagentes verifiquem as descobertas uns dos outros.
- Combine os resultados em uma única resposta.
- Peça uma entrada se o aplicativo que você está usando der suporte a ele.
- Faça uma pausa em um ponto de verificação para que você possa revisar 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 manipulam 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 em Copilot extensões. Eles podem ser:
- De autoria de 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 Copilotas diretrizes internas de criação.
- 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 informando o 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 estiver em execução.
Importante
Seu agente de chat só cria ou executa um fluxo de trabalho dinâmico quando você solicita isso explicitamente ou quando uma habilidade ou um comando de barra o instrui a fazer isso.
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 esta abordagem para repetir um fluxo de trabalho com entradas específicas, salvar o resultado ou executá-lo por meio de um script ou de um 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 GitHub Copilot SDK. Copilot appNa tela, uma extensão pode fornecer uma tela, 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?
Como os fluxos de trabalho dinâmicos diferem do piloto automático e da frota
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 entregas. O processo pode usar um agente ou muitos, com o trabalho acontecendo em sequência, em paralelo ou ambos.
Reutilizando um fluxo de trabalho significa reutilizando 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.
| Aspeto | Autopilot | Fleet | Fluxo de trabalho dinâmico |
|---|---|---|---|
| Objetivo principal | Vamos Copilot continuar trabalhando de forma autônoma | Incentivar Copilot a delegar tarefas a subagentes | Executar um processo definido no código |
| Quem define o processo? | |||
| Copilot define 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 as transferências | ||
| Como o trabalho é executado | Depende da tarefa e das decisões de Copilot | O trabalho independente pode ser delegado em paralelo | Sequencialmente, em paralelo, ou as duas opções, usando um agente ou vários |
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 exigir etapas claras, 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 solicitação de pull 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 concordam.
- 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.
- Pesquisar uma mudança, planejar sua implementação com base nas conclusões e, em seguida, fazer a mudança.
- 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 na 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ê 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 você mesmo a extensão usando a orientação de criação integrada do Copilot.
Para obter mais informações, consulte Usando fluxos de trabalho dinâmicos.
Revisando 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 os autores para você têm como escopo a sessão atual. Você pode copiar a extensão para o seu diretório pessoal de extensões para usá-la em diferentes sessões, ou para o diretório de extensões de um repositório para compartilhá-la com as 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 pertencentes ao 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 do AI credits que os agentes do fluxo de trabalho e seus subagentes podem consumir.
Observação
Copilot acompanha os créditos usados pelos agentes do fluxo de trabalho e impede o início de novos trabalhos quando o total atinge o limite. O uso é relatado após a ocorrência, 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.
Você Copilot CLI pode usar as seguintes chaves com o
/settingscomando para 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 subagentes adicionais aguardarem 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, AI creditsvocê 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, verifique o uso real AI credit e, em AI credits seguida, 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 todas as 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 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.