Acyclic Graph) は、 ノード(処理) とエッジ (流れ) で構成さ れるグラフ構造 • 各エージェントを独立したノードとして定 義し、条件分岐やループ (制御付き) をエッジで宣言的に表現できる • メリット • フローを視覚的に把握可能 • ノード追加・削除が容易 • 条件分岐を関数で定義 • ループも自然に表現 Sample.py from agent_framework import WorkflowBuilder, Executor, handler # ① 各ステップを Executor クラスとして定義 class StepA(Executor): @handler(input=str, output=str) async def run(self, data, ctx): result = await process(data) await ctx.send_message(result) class StepB(Executor): @handler(input=str, output=str) async def run(self, data, ctx): await ctx.send_message(data) # ② WorkflowBuilder でノードとエッジを宣言的に定義 step_a = StepA(id="step_a") step_b = StepB(id="step_b") step_c = StepC(id="step_c") builder = WorkflowBuilder(start=step_a) builder.add_edge(step_a, step_b) # A → B(無条件) builder.add_edge(step_b, step_c, condition=is_complete) # B → C(条件付き) builder.add_edge(step_b, step_a, condition=is_not_complete) # B → A(ループ) # ③ ワークフロー実行 workflow = builder.build() events = await workflow.run([Message(role="user", contents=["入力テキスト"])]) Microsoft Agent Framework ワークフロー | Microsoft Learn