Partager via


Flux de travail Microsoft Agent Framework - Visualisation

Parfois, un flux de travail qui a plusieurs exécuteurs et interactions complexes peut être difficile à comprendre à partir de la lecture du code. La visualisation peut vous aider à voir plus clairement la structure du flux de travail, afin de pouvoir vérifier qu’elle a la conception prévue.

La visualisation de flux de travail peut être obtenue via des méthodes d’extension sur la Workflow classe : ToMermaidString(), et ToDotString(), qui génèrent respectivement le format de diagramme mermaid et le format 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());

Pour créer un fichier image au format DOT, vous pouvez utiliser les outils GraphViz avec la commande suivante :

dotnet run | tail -n +20 | dot -Tpng -o workflow.png

Conseil / Astuce

Pour exporter des images de visualisation, vous devez installer GraphViz.

Pour une implémentation fonctionnelle complète avec la visualisation, consultez l’exemple Visualisation.

La visualisation de flux de travail est effectuée via un WorkflowViz objet qui peut être instancié avec un Workflow objet. L’objet WorkflowViz peut ensuite générer des visualisations dans différents formats, tels que le format DOT Graphviz ou le format de diagramme mermaid.

La création d’un WorkflowViz objet est simple :

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)

Vous pouvez ensuite créer des visualisations dans différents formats :

# 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"))

Conseil / Astuce

Pour la sortie de texte de base (Mermaid et DOT), aucune dépendance supplémentaire n’est nécessaire. Pour l’exportation d’images, vous devez installer le graphviz package Python en exécutant : pip install graphviz>=0.20.0 et en installant GraphViz.

Pour une implémentation fonctionnelle complète avec visualisation, consultez l’exemple Concurrent avec visualisation.

Le diagramme exporté ressemble à ce qui suit pour l’exemple de flux de travail :

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 au format Graphviz DOT :

Diagramme de flux de travail

Fonctionnalités de visualisation

Style de nœud

  • Exécuteurs de démarrage : arrière-plan vert avec l’étiquette « (Démarrer) »
  • Exécuteurs standard : arrière-plan bleu avec ID d’exécuteur
  • Nœuds de ventilateur : arrière-plan doré avec une forme ellipse (DOT) ou des cercles doubles (Sirène)

Styling des contours

  • Bords normaux : flèches solides
  • Arêtes conditionnelles : flèches pointillées/pointillées avec des étiquettes « conditionnelles »
  • Fan-out/Fan-in : routage automatique via des nœuds intermédiaires

Options de disposition

  • Disposition de haut en bas : Visualisation claire du flux hiérarchique
  • Clustering de sous-graphes : flux de travail imbriqués affichés sous forme de clusters groupés
  • Positionnement automatique : GraphViz gère le positionnement optimal des nœuds