Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Fluxos de trabalho dinâmicos são uma funcionalidade das competências alojadas no Funções do Azure. Permitem que uma competência hospedada inicie um fluxo de trabalho persistente, com várias etapas de chamadas a ferramentas e períodos de espera, sem teres de escrever código de orquestração do Durable Functions.
Para obter a documentação do runtime mais atualizada e abrangente, consulte Fluxos de trabalho dinâmicos no Funções do Azure Agents Runtime.
Importante
As habilidades hospedadas do Funções do Azure estão atualmente em pré-visualização. Funcionalidades, nomes de configuração e conectores suportados podem mudar antes da disponibilidade geral.
Em vez de chamar as ferramentas uma a uma através do ciclo de conversa, os fluxos de trabalho dinâmicos permitem ao modelo de IA gerar um plano estruturado de chamadas de ferramentas. O runtime executa o plano como uma orquestração Durable Functions que pode dispersar-se, esperar, sobreviver a reinicios e permanecer observável enquanto apenas o resultado final entra no contexto da habilidade hospedada.
Porquê fluxos de trabalho dinâmicos
Existem quatro limitações básicas na chamada direta de ferramentas por competências hospedadas no ciclo do modelo:
- Custo de token. Cada resultado intermédio de ferramenta é adicionado ao contexto do modelo. Um plano de múltiplas etapas pode gastar tokens em dados brutos que o modelo só precisa de resumir.
- Latência. Cada chamada direta a uma ferramenta corresponde a mais uma ida e volta ao modelo. O trabalho longo ou com ramificações é executado em série no ciclo do modelo, em vez de executar trabalho independente em paralelo.
- Durabilidade. O trabalho em linha pode ser perdido se o trabalhador reiniciar, e não há uma forma perfeita de dormir com temporizador ou esperar por um sinal externo de longa duração.
- Observabilidade. Os operadores não conseguem listar, inspecionar ou cancelar facilmente trabalhos durante o voo sem passar pela sessão de chat.
Fluxos de trabalho dinâmicos resolvem estas limitações ao mover a execução do plano para uma orquestração duradoura. A competência hospedada inicia o fluxo de trabalho, recebe um ID de workflow e pode terminar o seu turno. O orquestrador executa ferramentas compatíveis com fluxos de trabalho e temporizadores persistentes. A interface do chat e as superfícies de operações podem acompanhar o fluxo de trabalho de forma independente, e a competência alojada volta a ser ativada quando o fluxo de trabalho termina.
Como os fluxos de trabalho dinâmicos se relacionam com a chamada de ferramentas programáticas
Os fluxos de trabalho dinâmicos são semelhantes em forma ao padrão de chamada de ferramentas programáticas da Anthropic. Nesse padrão, o modelo cria um plano estruturado de utilização de ferramentas e o ambiente de execução executa esse plano fora do ciclo normal de conversa, ferramenta a ferramenta. Esta abordagem pode reduzir o uso de tokens e a latência porque os resultados intermédios ficam fora do contexto do modelo, e um plano criado pelo modelo pode representar múltiplas chamadas de ferramenta.
Fluxos de trabalho dinâmicos aplicam esse padrão ao Funções do Azure e adicionam uma camada de durabilidade e operações:
| Capacidade | Padrão de chamada de ferramenta programática | Fluxos de trabalho dinâmicos |
|---|---|---|
| Chamadas de ferramentas estruturadas em plano | Sim | Sim |
| Menor utilização de tokens e latência para trabalho com várias ferramentas | Sim | Sim |
| Execução duradoura através dos reinícios dos trabalhadores | No | Sim, utilizando o Durable Functions |
| Esperas e temporizadores persistentes | No | Sim |
| Listar fora do ciclo, inspecionar, cancelar e encerrar | No | Sim |
| Visibilidade do operador no Durable Task Scheduler | No | Sim, quando configurado |
Quando usar fluxos de trabalho dinâmicos
Use fluxos de trabalho dinâmicos quando uma competência alojada precisar de executar trabalho maior do que um simples turno de chat ou uma chamada direta de ferramenta. Boas opções incluem:
- Padrões de dispersão/ventilação que recolhem evidências de várias fontes independentes em paralelo, como registos, métricas e histórico de implementação.
- Executar capacidades especializadas isoladas alojadas em paralelo e combinar as suas respostas.
- Executar um plano em vários passos onde os passos seguintes dependem dos resultados anteriores da ferramenta.
- Esperar por um temporizador durável sem manter um trabalhador ocupado.
- Manter resultados intermédios grandes fora do contexto de conversa da competência hospedada até que um resultado final ou resumo esteja disponível.
- Acompanhar e controlar tarefas de longa duração fora do ciclo do modelo.
Dica
Se o trabalho puder terminar numa única chamada de ferramenta ou precisar de uma resposta imediata do utilizador em cada etapa, use a chamada direta de ferramenta em vez de um fluxo de trabalho dinâmico.
Como funciona um fluxo de trabalho
O diagrama seguinte mostra os principais componentes da arquitetura dinâmica do fluxo de trabalho:
Um fluxo de trabalho dinâmico percorre esta sequência:
- Um evento ativa a competência hospedada, ou um utilizador envia um pedido através da interface do chat.
- A competência alojada chama
start_workflowcom um plano de fluxo de trabalho gerado pelo modelo de IA. - O runtime inicia o plano como uma orquestração do Durable Functions e devolve de imediato um ID de fluxo de trabalho.
- O orquestrador executa em paralelo as atividades de ferramenta que estão prontas e cria temporizadores duráveis para os passos
wait. Também pode delegar trabalho a capacidades alojadas em subagentes, cada uma delas a executar numa sessão isolada e sem estado. - Quando o fluxo de trabalho atinge um estado terminal, o runtime notifica a skill hospedada, que chama
get_workflow_statuse resume a saída final.
Quando a habilidade alojada usa a interface de chat incorporada, a interface também consulta o estado do fluxo de trabalho e mostra um cartão de progresso.
Os resultados intermédios mantêm-se no armazenamento do fluxo de trabalho. A skill alojada apenas vê o ID do workflow no momento do arranque e o estado final quando obtém o resultado. A skill alojada não efetua verificações periódicas enquanto o fluxo de trabalho está em execução.
Ferramentas de gestão de fluxos de trabalho
Quando ativas fluxos de trabalho, o runtime adiciona estas ferramentas à skill alojada:
| Tool | Purpose |
|---|---|
start_workflow |
Inicia um plano de fluxo de trabalho validado e devolve imediatamente um ID de workflow. |
get_workflow_status |
Obtém o estado atual e o resultado final de um fluxo de trabalho. |
list_workflows |
Lista os fluxos de trabalho pertencentes à sessão atual. |
cancel_workflow |
Solicita o cancelamento cooperativo. |
terminate_workflow |
Termina abruptamente a instância do workflow. |
A habilidade hospedada chama estas ferramentas. Os utilizadores não os chamam diretamente no código da aplicação.
Subagentes de fluxo de trabalho
Uma competência alojada com fluxo de trabalho pode conceder acesso a competências especializadas alojadas na sua configuração workflows.subagents. Cada especialista é outro ficheiro .agent.md na mesma aplicação alojada de competências.
O seguinte assunto inicial permite ao coordenador usar dois especialistas:
---
name: PR Status Portfolio Coordinator
description: Reviews pull requests and produces an actionable report.
workflows:
enabled: true
subagents:
- agent: pr_status_analyst
when: Review one pull request and summarize its current status
- agent: actionable_report_writer
when: Combine pull-request summaries into an actionable portfolio report
---
O agent valor é o slug com nome de ficheiro do especialista. Por exemplo, pr_status_analyst refere-se a pr_status_analyst.agent.md. O valor opcional when ajuda o modelo a decidir quando usar o especialista. O ambiente de execução valida cada especialista face a esta autorização explícita antes de programar o fluxo de trabalho.
O modelo pode gerar uma tarefa de fluxo de trabalho sub_agent com id, agent e um task autónomo. Uma tarefa de subagente também pode usar depends_on, when, e for_each.
{
"id": "analyze_pr",
"type": "sub_agent",
"agent": "pr_status_analyst",
"task": "Review the supplied pull request and summarize its current status."
}
Cada invocação de subagente é sem estado e isolada:
- O especialista utiliza o seu próprio modelo, instruções, ferramentas, servidores MCP, capacidades e tempo limite.
- O especialista não recebe o histórico de conversas do coordenador, o sandbox, as ferramentas de gestão de fluxos de trabalho ou as ferramentas de delegação de tempo de chat.
- Uma falha ou um tempo limite excedido de um especialista faz falhar o fluxo de trabalho principal.
- As ferramentas especializadas devem tolerar a reexecução porque uma falha de trabalhador pode fazer com que um subagente seja executado mais do que uma vez.
Para um exemplo de ponta a ponta que executa tarefas paralelas de analistas de relações públicas e combina os seus resumos num relatório, veja o exemplo de subagentes de fluxo de trabalho.
Backend de armazenamento
Fluxos de trabalho dinâmicos utilizam o Durable Functions internamente e suportam os mesmos backends de armazenamento. Por defeito, os fluxos de trabalho usam a conta do Armazenamento do Azure que a sua aplicação de funções já tem. Para cargas de trabalho de produção, pode passar para o Durable Task Scheduler (DTS), que fornece um painel com o estado das tarefas por instância, o histórico de novas tentativas e controlos para trabalho em curso. O guia prático cobre ambas as opções.
Considerations
Tenha em mente estas limitações atuais ao utilizar fluxos de trabalho dinâmicos:
- Os manipuladores de ferramentas seguros para fluxos de trabalho devem ser síncronos e devolver valores serializáveis em JSON.
- O modelo de IA gera o plano de fluxo de trabalho em tempo de execução. Não podes definir templates de workflow estáticos no YAML ou no Markdown.
- Não é possível configurar políticas de repetição e tempo limite por tarefa.
- O processamento de grandes volumes de saída e a integração com MCP Tasks não estão disponíveis.
Passos seguintes
Configure ferramentas seguras para fluxos de trabalho e execute o seu fluxo de trabalho localmente:
Conteúdo relacionado
- Fluxos de trabalho dinâmicos no Funções do Azure Agents Runtime
- Competências alojadas no Funções do Azure
- Construa uma aplicação de IA orientada a eventos com competências alojadas no Funções do Azure
- Exemplo de triagem de incidentes de workflow
- Exemplo de subagentes de workflow
- Visão geral de Durable Functions