Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Terkadang alur kerja yang memiliki beberapa pelaksana dan interaksi kompleks dapat sulit dipahami dari hanya membaca kode. Visualisasi dapat membantu Anda melihat struktur alur kerja dengan lebih jelas, sehingga Anda dapat memverifikasi bahwa alur kerja memiliki desain yang dimaksudkan.
Visualisasi alur kerja dapat dicapai melalui metode ekstensi pada Workflow kelas: ToMermaidString(), dan ToDotString(), yang masing-masing menghasilkan format diagram Mermaid dan format DOT Graphviz.
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());
Untuk membuat file gambar dari format DOT, Anda dapat menggunakan alat GraphViz dengan perintah berikut:
dotnet run | tail -n +20 | dot -Tpng -o workflow.png
Petunjuk / Saran
Untuk mengekspor gambar visualisasi, Anda perlu menginstal GraphViz.
Untuk implementasi kerja lengkap dengan visualisasi, lihat sampel Visualisasi.
Visualisasi alur kerja dilakukan melalui WorkflowViz objek yang dapat diinstansiasi dengan Workflow objek. Objek WorkflowViz kemudian dapat menghasilkan visualisasi dalam format yang berbeda, seperti format Graphviz DOT atau format diagram Mermaid.
Membuat WorkflowViz objek mudah:
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)
Kemudian, Anda dapat membuat visualisasi dalam format yang berbeda:
# 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"))
Petunjuk / Saran
Untuk output teks dasar (Mermaid dan DOT), tidak diperlukan dependensi tambahan. Untuk ekspor gambar, Anda perlu menginstal graphviz paket Python dengan menjalankan: pip install graphviz>=0.20.0 dan menginstal GraphViz.
Untuk implementasi kerja lengkap dengan visualisasi, lihat sampel Serentak dengan Visualisasi.
Diagram yang diekspor akan terlihat mirip dengan yang berikut ini untuk contoh alur kerja:
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;
atau dalam format Graphviz DOT:
Fitur Visualisasi
Pemformatan Simpul
- Mulai eksekutor: Latar belakang hijau dengan label "(Start)"
- Pelaksana reguler: Latar belakang biru dengan ID pelaksana
- Simpul kipas: Latar belakang emas dengan bentuk elips (DOT) atau lingkaran ganda (Putri Duyung)
Stilisasi Ujung
- Tepi normal: Panah solid
- Tepi bersyarat: Panah garis putus-putus/garis titik-titik dengan label "kondisi"
- Fan-out/Fan-in: Perutean otomatis melalui simpul perantara
Opsi Tata Letak
- Tata letak atas ke bawah: Visualisasi alur hierarki yang jelas
- Pengklusteran subgraf: Alur kerja berlapis ditampilkan sebagai kluster yang dikelompokkan
- Pemosisian otomatis: GraphViz menangani penempatan simpul yang optimal