Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Às vezes, um fluxo de trabalho que tem vários executores e interações complexas pode ser difícil de entender apenas lendo o código. A visualização pode ajudá-lo a ver a estrutura do fluxo de trabalho com mais clareza, para que você possa verificar se ele tem o design pretendido.
A visualização de fluxo de trabalho pode ser obtida por meio de métodos de extensão na Workflow classe: ToMermaidString()e ToDotString(), que geram formato de diagrama de Sereia e formato Graphviz DOT, respectivamente.
using Microsoft.Agents.AI.Workflows;
// Create a workflow with a fan-out and fan-in pattern
var workflow = new WorkflowBuilder()
.SetStartExecutor(dispatcher)
.AddFanOutEdges(dispatcher, [researcher, marketer, legal])
.AddFanInEdges([researcher, marketer, legal], aggregator)
.Build();
// Mermaid diagram
Console.WriteLine(workflow.ToMermaidString());
// DiGraph string
Console.WriteLine(workflow.ToDotString());
Para criar um arquivo de imagem a partir do formato DOT, você pode usar as ferramentas graphViz com o seguinte comando:
dotnet run | tail -n +20 | dot -Tpng -o workflow.png
Dica
Para exportar imagens de visualização, você precisa instalar o GraphViz.
Para obter uma implementação de trabalho completa com visualização, consulte o exemplo de Visualização.
A visualização do fluxo de trabalho é feita por meio de um WorkflowViz objeto que pode ser instanciado com um Workflow objeto. Em seguida, o WorkflowViz objeto pode gerar visualizações em formatos diferentes, como formato Graphviz DOT ou formato de diagrama de Sereia.
A criação de um WorkflowViz objeto é simples:
from agent_framework import WorkflowBuilder, WorkflowViz
# Create a workflow with a fan-out and fan-in pattern
workflow = (
WorkflowBuilder()
.set_start_executor(dispatcher)
.add_fan_out_edges(dispatcher, [researcher, marketer, legal])
.add_fan_in_edges([researcher, marketer, legal], aggregator)
.build()
)
viz = WorkflowViz(workflow)
Em seguida, você pode criar visualizações em formatos diferentes:
# Mermaid diagram
print(viz.to_mermaid())
# DiGraph string
print(viz.to_digraph())
# Export to a file
print(viz.export(format="svg"))
# Different formats are also supported
print(viz.export(format="png"))
print(viz.export(format="pdf"))
print(viz.export(format="dot"))
# Export with custom filenames
print(viz.export(format="svg", filename="my_workflow.svg"))
# Convenience methods
print(viz.save_svg("workflow.svg"))
print(viz.save_png("workflow.png"))
print(viz.save_pdf("workflow.pdf"))
Dica
Para saída de texto básico (Mermaid e DOT), não são necessárias dependências adicionais. Para exportação de imagem, você precisa instalar o pacote python graphviz executando: pip install graphviz>=0.20.0 e instalar o GraphViz.
Para obter uma implementação de trabalho completa com visualização, consulte o exemplo Simultâneo com Visualização.
O diagrama exportado será semelhante ao seguinte para o exemplo de fluxo de trabalho:
flowchart TD
dispatcher["dispatcher (Start)"];
researcher["researcher"];
marketer["marketer"];
legal["legal"];
aggregator["aggregator"];
fan_in__aggregator__e3a4ff58((fan-in))
legal --> fan_in__aggregator__e3a4ff58;
marketer --> fan_in__aggregator__e3a4ff58;
researcher --> fan_in__aggregator__e3a4ff58;
fan_in__aggregator__e3a4ff58 --> aggregator;
dispatcher --> researcher;
dispatcher --> marketer;
dispatcher --> legal;
ou no formato Graphviz DOT:
Recursos de visualização
Estilo de nó
- Iniciar executores: plano de fundo verde com o rótulo "(Start)"
- Executores regulares: plano de fundo azul com ID do executor
- Nós de Fan-in: fundo dourado com forma de elipse (DOT) ou círculos duplos (Mermaid)
Estilização de bordas
- Bordas normais: flechas sólidas
- Bordas condicionais: setas tracejadas/pontilhadas com rótulos "condicionais"
- Fan-out/Fan-in: Roteamento automático por meio de nós intermediários
Opções de layout
- Layout de cima para baixo: visualização clara de fluxo hierárquico
- Agrupamentos de subgrafo: fluxos de trabalho aninhados mostrados como clusters
- Posicionamento automático: o GraphViz gerencia o posicionamento ideal dos nós