다음을 통해 공유


Microsoft 에이전트 프레임워크 워크플로 - 시각화

여러 실행기와 복잡한 상호 작용이 있는 워크플로는 코드를 읽는 것만으로는 이해하기 어려울 수 있습니다. 시각화를 사용하면 워크플로의 구조를 보다 명확하게 확인할 수 있으므로 의도한 디자인이 있는지 확인할 수 있습니다.

워크플로 시각화는 클래스의 WorkflowToMermaidString()확장 메서드를 통해 수행할 수 있으며 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"))

팁 (조언)

기본 텍스트 출력(인어 및 DOT)의 경우 추가 종속성이 필요하지 않습니다. 이미지 내보내기의 경우 다음을 graphviz 실행 pip install graphviz>=0.20.0 하여 Python 패키지를 설치하고 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;

또는 그래프비즈 DOT 형식으로:

워크플로 다이어그램

시각화 기능

노드 스타일 지정

  • 시작 실행기: "(Start)" 레이블이 있는 녹색 배경
  • 일반 실행기: 실행기 ID가 있는 파란색 배경
  • 팬인 노드: 줄임표 모양(DOT) 또는 이중 원(인어)이 있는 황금색 배경

에지 스타일 지정

  • 일반 가장자리: 단색 화살표
  • 조건부 가장자리: "조건부" 레이블이 있는 파선/점선 화살표
  • 팬아웃/팬인: 중간 노드를 통한 자동 라우팅

레이아웃 옵션

  • 하향식 레이아웃: 명확한 계층적 흐름 시각화
  • 하위 그래프 클러스터링: 그룹화된 클러스터로 표시된 중첩된 워크플로
  • 자동 위치 지정: GraphViz가 최적의 노드 배치를 처리합니다.