有時,具有多個執行器和複雜交互的工作流程可能很難僅通過閱讀代碼來理解。 視覺化可協助您更清楚地查看工作流程的結構,以便您可以驗證它是否具有預期的設計。
工作流程視覺化可透過類別 Workflow 上的擴展方法實現: ToMermaidString()、 和 ToDotString(),分別產生美人魚圖格式與 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());
要從 DOT 格式建立影像檔案,您可以使用 GraphViz 工具,並執行以下指令:
dotnet run | tail -n +20 | dot -Tpng -o workflow.png
小提示
要匯出視覺化影像,你需要 安裝 GraphViz。
欲了解完整的視覺化實作,請參閱 視覺化範例。
工作流程視覺化是透過使用WorkflowViz物件並通過Workflow物件來實現。 然後,該 WorkflowViz 對象可以生成不同格式的可視化,例如 Graphviz DOT 格式或美人魚圖格式。
要建立 WorkflowViz 物件非常簡單:
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)
然後,您可以建立不同格式的視覺效果:
# 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"))
小提示
對於基本文字輸出(Mermaid 和 DOT),不需要額外的相依性。 若要匯出圖片,你需要透過執行 Python 套件安裝 graphviz : pip install graphviz>=0.20.0 並 安裝 GraphViz。
欲了解完整的視覺化實作,請參閱「 並行與視覺化」範例。
匯出的圖表將如下所示,類似於以下範例工作流程:
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;
或以 Graphviz DOT 的格式:
視覺化功能
節點樣式
- 啟動執行器:綠色背景,帶有“(開始)”標籤
- 一般執行者:藍色背景,執行者 ID
- 扇形節點:帶有橢圓形 (DOT) 或雙圓形 (Mermaid) 的金色背景
外框樣式
- 一般邊緣:實心箭頭
- 條件邊:帶有「條件」標籤的虛線/點線箭頭
- 扇出/扇入:通過中間節點自動路由
版面配置選項
- 自上而下的佈局:清晰的分層流程視覺化
- 子圖叢集:巢狀工作流程被分組為叢集显示
- 自動定位:GraphViz 處理最佳節點放置