Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
À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 do fluxo de trabalho pode ser obtida através de métodos de extensão na Workflow classe: ToMermaidString(), e ToDotString(), que geram, respetivamente, o formato diagrama da Sereia e o formato Graphviz DOT.
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 ficheiro de imagem a partir do formato DOT, pode usar as ferramentas GraphViz com o seguinte comando:
dotnet run | tail -n +20 | dot -Tpng -o workflow.png
Sugestão
Para exportar imagens de visualização precisas de instalar o GraphViz.
Para uma implementação completa e funcional com visualização, veja a amostra 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. O WorkflowViz objeto pode então gerar visualizações em diferentes formatos, como formato Graphviz DOT ou formato de diagrama Mermaid.
Criar 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 diferentes formatos:
# 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"))
Sugestão
Para uma saída de texto básico (Mermaid e DOT), não são necessárias dependências adicionais. Para exportar imagens, precisas de instalar o graphviz pacote Python executando: pip install graphviz>=0.20.0 e instalar o GraphViz.
Para uma implementação completa e operativa com visualização, consulte o exemplo Concorrente com Visualização.
O diagrama exportado será semelhante ao seguinte para o fluxo de trabalho de exemplo:
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 do nó
- Executores de início: fundo verde com rótulo "(Iniciar)"
- Executores regulares: Fundo azul com ID do executor
- Nós fan-in: Fundo dourado com forma de elipse (DOT) ou círculos duplos (Mermaid)
Estilo de borda
- Bordas normais: setas contínuas
- Bordas condicionais: setas tracejadas/pontilhadas com rótulos "condicionais"
- Fan-out/Fan-in: Roteamento automático através de nós intermediários
Opções de layout
- Layout de cima para baixo: visualização de fluxo hierárquico clara
- Agrupamento de subgráficos: fluxos de trabalho aninhados mostrados como clusters agrupados
- Posicionamento automático: GraphViz lida com a colocação ideal de nós