Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
A veces, un flujo de trabajo que tiene varios ejecutores y interacciones complejas puede ser difícil de entender simplemente leyendo el código. La visualización puede ayudarle a ver la estructura del flujo de trabajo con más claridad, de modo que pueda comprobar que tiene el diseño previsto.
La visualización del flujo de trabajo se puede lograr a través de métodos de extensión en la Workflow clase : ToMermaidString(), y ToDotString(), que generan el formato de diagrama de Sirena y el formato DOT de Graphviz, 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 crear un archivo de imagen a partir del formato DOT, puede usar las herramientas de GraphViz con el siguiente comando:
dotnet run | tail -n +20 | dot -Tpng -o workflow.png
Sugerencia
Para exportar imágenes de visualización, debe instalar GraphViz.
Para obtener una implementación de trabajo completa con visualización, consulte el ejemplo de visualización.
La visualización del flujo de trabajo se realiza a través de un objeto WorkflowViz que se puede instanciar con un objeto Workflow. A continuación, el WorkflowViz objeto puede generar visualizaciones en diferentes formatos, como el formato graphviz DOT o el formato de diagrama de sirena.
La creación de un WorkflowViz objeto es sencilla:
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)
A continuación, puede crear visualizaciones en 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"))
Sugerencia
Para la salida de texto básica (Sirena y DOT), no se necesitan dependencias adicionales. Para la exportación de imágenes, debe instalar el graphviz paquete de Python mediante la ejecución de: pip install graphviz>=0.20.0 e instalar GraphViz.
Para obtener una implementación completa con visualización, consulte el ejemplo denominado Concurrent with Visualization.
El diagrama exportado tendrá un aspecto similar al siguiente para el flujo de trabajo de ejemplo:
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;
o en formato Graphviz DOT:
Características de visualización
Estilo de nodo
- Iniciar ejecutores: fondo verde con la etiqueta "(Start)"
- Ejecutores normales: fondo azul con el identificador del ejecutor
- Nodos de entrada: fondo dorado con forma de elipse (DOT) o círculos dobles (Mermaid)
Estilo de bordes
- Bordes normales: flechas sólidas
- Bordes condicionales: flechas discontinuas o punteadas, con etiquetas "condicionales"
- Distribución/concentración: enrutamiento automático a través de nodos intermedios
Opciones de diseño
- Diseño de arriba abajo: Clara visualización de flujo jerárquico
- Agrupación en clústeres de subgráficos: flujos de trabajo anidados que se muestran como clústeres agrupados
- Posicionamiento automático: GraphViz controla la ubicación óptima del nodo.