Megosztás:


Microsoft Agent Framework-munkafolyamatok – Vizualizáció

Néha a több végrehajtóval és összetett interakciókkal rendelkező munkafolyamatokat nehéz megérteni a kód elolvasása során. A vizualizáció segíthet a munkafolyamat szerkezetének egyértelműbb megjelenítésében, így ellenőrizheti, hogy a munkafolyamat a kívánt kialakítással rendelkezik-e.

A munkafolyamat-vizualizáció a Workflow osztály bővítési metódusai segítségével érhető el: ToMermaidString() és ToDotString(), amelyek a Mermaid diagramformátumot és a Graphviz DOT formátumot hozzák létre.

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());

Ha DOT formátumú képfájlt szeretne létrehozni, használja a GraphViz-eszközöket a következő paranccsal:

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

Jótanács

Vizualizációs képek exportálásához telepítenie kell a GraphVizet.

A vizualizációval végzett teljes körű megvalósításért tekintse meg a vizualizációs mintát.

A munkafolyamat-vizualizáció egy WorkflowViz objektum segítségével történik, amely egy Workflow objektummal példányosítható. Az WorkflowViz objektum ezután különböző formátumú vizualizációkat hozhat létre, például Graphviz DOT vagy Hableány diagramformátumban.

Az objektum létrehozása WorkflowViz egyszerű:

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)

Ezután különböző formátumokban hozhat létre vizualizációkat:

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

Jótanács

Az alapszintű szöveges kimenethez (Hableány és PONT) nincs szükség további függőségekre. A képexportáláshoz telepítenie kell a Python-csomagot a következő futtatásával: graphviz és pip install graphviz>=0.20.0 GraphVizet.

A vizualizációval végzett teljes körű implementációért tekintse meg az Egyidejű vizualizációs minta című témakört.

Az exportált diagram az alábbihoz hasonlóan fog kinézni a példa-munkafolyamat esetében:

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;

vagy Graphviz DOT formátumban:

Munkafolyamat-diagram

Vizualizációs funkciók

Csomópont stílus

  • Végrehajtók indítása: Zöld háttér "(Start)" címkével
  • Normál végrehajtók: Kék háttér végrehajtóazonosítóval
  • Fan-in csomópontok: Arany háttér ellipszis alakú (DOT) vagy kettős körökkel (Mermaid)

Élformázás

  • Normál élek: Egyszínű nyilak
  • Feltételes élek: Szaggatott/pontozott nyilak "feltételes" címkékkel
  • Kifúvatás/kifúvatás: Automatikus útválasztás köztes csomópontokon keresztül

Elrendezési beállítások

  • Hierarchikus elrendezés: Hierarchikus folyamat vizualizációja
  • Algráf-klaszterezés: Beágyazott munkafolyamatok csoportos klaszterként való megjelenítése
  • Automatikus helymeghatározás: A GraphViz kezeli az optimális csomópontelhelyezést