Udostępnij przez


Przepływy pracy programu Microsoft Agent Framework — wizualizacja

Czasami przepływ pracy, który ma wiele funkcji wykonawczych i złożonych interakcji, może być trudny do zrozumienia z samego czytania kodu. Wizualizacja może ułatwić bardziej czytelne wyświetlanie struktury przepływu pracy, dzięki czemu można sprawdzić, czy ma on zamierzony projekt.

Wizualizację przepływu pracy można osiągnąć za pomocą metod rozszerzeń w Workflow klasie : ToMermaidString()i ToDotString(), które generują odpowiednio format diagramu Mermaid i 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());

Aby utworzyć plik obrazu w formacie DOT, możesz użyć narzędzi GraphViz za pomocą następującego polecenia:

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

Wskazówka

Aby wyeksportować obrazy wizualizacji, musisz zainstalować program GraphViz.

Aby uzyskać pełną implementację roboczą z wizualizacją, zobacz przykład Wizualizacja.

Wizualizacja przepływu pracy jest wykonywana za pośrednictwem obiektu WorkflowViz, który można zainstancjonować za pomocą obiektu Workflow. Obiekt WorkflowViz może następnie generować wizualizacje w różnych formatach, takich jak format Graphviz DOT lub format diagramu Mermaid.

WorkflowViz Tworzenie obiektu jest proste:

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)

Następnie można tworzyć wizualizacje w różnych formatach:

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

Wskazówka

W przypadku podstawowego wyjścia tekstowego (Mermaid i DOT) nie są potrzebne żadne dodatkowe zależności. W przypadku eksportowania graphviz obrazów należy zainstalować pakiet języka Python, uruchamiając polecenie : pip install graphviz>=0.20.0 i zainstaluj program GraphViz.

Aby uzyskać pełną implementację roboczą z wizualizacją, zobacz przykład Concurrent with Visualization.

Wyeksportowany diagram będzie wyglądać podobnie do następującego dla przykładowego przepływu pracy:

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;

lub w formacie DOT Graphviz:

Diagram przepływu pracy

Funkcje wizualizacji

Styl węzła

  • Uruchamianie funkcji wykonawczych: zielone tło z etykietą "(Start)"
  • Regularni wykonawcy: Niebieskie tło z identyfikatorem wykonawcy
  • Węzły skupiające: Złote tło z kształtem elipsy (DOT) lub podwójnymi okręgami (Mermaid)

Stylizacja krawędzi

  • Zwykłe krawędzie: strzałki stałe
  • Krawędzie warunkowe: kreskowane/kropkowane strzałki z etykietami "warunkowymi"
  • Fan-out/Fan-in: automatyczny routing za pośrednictwem węzłów pośrednich

Opcje układu

  • Układ od góry do dołu: Jasna wizualizacja przepływu hierarchicznego
  • Klastrowanie podgrafów: zagnieżdżone przepływy pracy wyświetlane jako zgrupowane klastry
  • Automatyczne pozycjonowanie: Narzędzie GraphViz obsługuje optymalne umieszczanie węzłów