Microsoft مهام سير عمل إطار عمل العامل - التصور

في بعض الأحيان، قد يكون من الصعب فهم سير العمل الذي يحتوي على العديد من المنفذين والتفاعلات المعقدة من مجرد قراءة التعليمات البرمجية. يمكن أن تساعدك المرئيات على رؤية بنية سير العمل بشكل أكثر وضوحا، بحيث يمكنك التحقق من أنه يحتوي على التصميم المقصود.

يمكن تحقيق مرئيات سير العمل عبر أساليب الامتداد على Workflow الفئة: ToMermaidString()، و ToDotString()، والتي تنشئ تنسيق رسم تخطيطي ل Mermaid وتنسيق Graphviz DOT على التوالي.

using Microsoft.Agents.AI.Workflows;

// Create a workflow with a fan-out and fan-in pattern
var workflow = new WorkflowBuilder(dispatcher)
    .AddFanOutEdge(dispatcher, [researcher, marketer, legal])
    .AddFanInBarrierEdge([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

Tip

لتصدير صور المرئيات تحتاج إلى تثبيت GraphViz.

للحصول على تنفيذ كامل للعمل مع المرئيات، راجع عينة المرئيات.

يتم تصور سير العمل عبر كائن WorkflowViz يمكن إنشاء مثيل له باستخدام كائن Workflow . WorkflowViz يمكن للكائن بعد ذلك إنشاء مرئيات بتنسيقات مختلفة، مثل تنسيق Graphviz DOT أو تنسيق الرسم التخطيطي ل Mermaid.

إنشاء كائن WorkflowViz أمر مباشر:

from agent_framework import WorkflowBuilder, WorkflowViz

# Create a workflow with a fan-out and fan-in pattern
workflow = (
    WorkflowBuilder(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"))

Tip

بالنسبة إلى إخراج النص الأساسي (Mermaid و DOT)، لا توجد حاجة إلى تبعيات إضافية. لتصدير الصور، تحتاج إلى تثبيت حزمة graphviz Python عن طريق تشغيل: pip install graphviz>=0.20.0وتثبيت GraphViz.

للحصول على تنفيذ كامل للعمل مع المرئيات، راجع نموذج المتزامن مع المرئيات.

لا تتضمن Go حاليا ميزة Mermaid أو DOT أو عارض صور مضمنة لسير العمل. وهو يعرض بيانات تعريف سير العمل التي يمكنك استخدامها لإنشاء مرئيات مخصصة أو أدوات فحص.

for sourceID, edges := range wf.ReflectEdges() {
  for _, edge := range edges {
    fmt.Printf("%s -> %v\n", sourceID, edge.Connection.SinkIDs)
  }
}

for executorID, binding := range wf.ReflectExecutors() {
  fmt.Printf("executor %s: %s\n", executorID, binding.ImplementationID)
}

for portID, port := range wf.ReflectPorts() {
  fmt.Printf("request port %s: %s -> %s\n", portID, port.RequestType.TypeName, port.ResponseType.TypeName)
}

استخدم بيانات التعريف هذه إذا كنت بحاجة إلى إنشاء إخراج Mermaid أو 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:

يمثل الرسم التخطيطي Mermaid أعلاه أيضا إخراج تنسيق Graphviz DOT، الذي يتم عرضه كرسم بياني موجه.

ميزات المرئيات

تصميم العقدة

  • بدء المنفذين: خلفية خضراء مع تسمية "(ابدأ)"
  • المنفذون العاديون: خلفية زرقاء بمعرف المنفذ
  • عقد المروحة: خلفية ذهبية ذات شكل قطع ناقص (DOT) أو دوائر مزدوجة (Mermaid)

تصميم الحافة

  • الحواف العادية: أسهم متصلة
  • الحواف الشرطية: أسهم متقطعة/منقطة مع تسميات "شرطية"
  • Fan-out/Fan-in: التوجيه التلقائي من خلال العقد الوسيطة

خيارات التخطيط

  • تخطيط من أعلى لأسفل: مسح مرئيات التدفق الهرمي
  • تجميع الرسوم البيانية الفرعية: مهام سير العمل المتداخلة الموضحة كمجموعات مجمعة
  • تحديد الموضع التلقائي: يعالج GraphViz موضع العقدة الأمثل

الخطوات التالية