Microsoft Agent Frameworkとは?
Microsoft Agent Frameworkとは、Microsoftが提供する、AIエージェントおよびマルチエージェントワークフローを構築するための統合開発キット(SDK)であり、オープンソースの開発基盤です。
本フレームワークは、単一のタスクを実行する単純なAIアシスタントから、複数の自律的なエージェントが協調して複雑なビジネスプロセスを遂行する大規模なシステムまで、一貫したアーキテクチャで開発することができます。
従来のAI開発では、モデルの呼び出しを行うSemantic Kernelと、エージェント間の対話を制御するAutoGenというアプローチが存在していましたが、Microsoft Agent Frameworkはこれらを統合し、エンタープライズレベルの堅牢性と研究レベルの柔軟性を兼ね備えた標準基盤として設計されています。
特に、グラフベースのワークフロー制御、状態の永続化、および人間参加型(Human-in-the-loop)プロセスの標準サポートにより、予測可能性と制御性が求められる企業の基幹業務へのAI導入を支援します。
Semantic KernelとAutoGenとは?

Semantic KernelとAutoGenの統合 (参考:agent-framework)
ここでは、Microsoft Agent Frameworkを深く理解するために、その前身であり構成要素となっているSemantic KernelとAutoGenの役割、そして2つのアプローチの統合の意義について解説します。
Semantic Kernel
Semantic Kernelは、大規模言語モデル(LLM)を既存のソフトウェアコードと接続するためのSDKとして提供されました。C#、Python、Javaといった主要なプログラミング言語をサポートし、企業の既存システムやAPIをプラグインとしてAIに提供することで、AIが実社会のアクション(メール送信、会議予約、データベース検索など)を実行できるようにする技術です。
Semantic Kernelは、型安全性、フィルタリング機能、テレメトリといった、大規模システム開発に不可欠な要素が組み込まれており、予測可能で安定したAIアプリケーションの構築に適しています。
しかし、複数のエージェントが動的に会話しながら問題を解決するような複雑なオーケストレーションの実装には、高度な設計スキルと膨大なコード記述が必要となる課題がありました。
AutoGen
AutoGenは、マルチエージェントシステムの可能性を広げるための実験的なフレームワークとして設計されました。プログラマ役とコードレビュー役のエージェントが対話し、人間が介入せずとも自律的にコードを修正してタスクを完了させるようなワークフロー構築に強みを持ちます。
AutoGenは、エージェント間の会話パターンを容易に定義できる反面、その挙動が確率的であり、企業の実務プロセスとして定型化して組み込む際の制御性や、長期的なメンテナンス性に課題がありました。
Microsoft Agent Frameworkへの統合の意義
Microsoft Agent Frameworkは、これら二つのフレームワークの強みを融合しています。Semantic Kernelが持つ「信頼性・統合性」と、AutoGenが持つ「自律性・柔軟性」を単一のSDKで提供することで、開発者は実験的なプロトタイプから本番運用まで、シームレスに移行することが可能になります。
Microsoft Agent Frameworkの主な機能
Microsoft Agent Frameworkは、複雑な業務プロセスをグラフとして表現し、実行するためのランタイム環境を提供します。ここでは、その中核となる機能とアーキテクチャについてご説明します。
AIエージェントの抽象化
Microsoft Agent Frameworkにおけるエージェントは、LLM、メモリ、ツール、およびペルソナ(指示)をカプセル化した自律的な単位です。
エージェントは単体で動作するだけでなく、ワークフロー内の部品として扱うことができます。これにより、特定の専門知識(例:法務チェック担当、在庫確認担当)を持ったエージェントをモジュールとして開発し、異なるプロジェクト間で再利用することができます。
グラフベースのワークフロー
Microsoft Agent Frameworkの主要な機能の一つが、処理の流れを有向グラフとして定義するワークフローエンジンです。従来のエージェント開発では、プロンプトエンジニアリングに依存した制御が主でしたが、Microsoft Agent Frameworkではロジックを明示的なグラフ構造で表現します。
- Executor:ワークフローのノードにあたる部分で、AIエージェントそのものや、純粋なコードによる関数処理を実行します。
- Edge:ワークフローのノード間の接続線です。単なる接続だけでなく、条件分岐やデータのルーティングを定義できます。
このアーキテクチャにより、線形な処理だけでなく、並列処理、条件分岐、ループ処理といった複雑な制御構造を、理解しやすい形で実装できます。
永続化とチェックポイント
企業の実務プロセスでは、処理が数時間から数日に及ぶことがあります(例:上司の承認待ち、外部バッチ処理の完了待ち)。Microsoft Agent Frameworkは、ワークフローの実行状態を任意の時点で保存し、中断した箇所から再開できるチェックポイント機能を備えています。
これにより、サーバーの再起動や障害発生時でもプロセスが失われることがなく、システム全体の耐障害性が向上します。また、この機能は人間参加型(Human-in-the-loop)のシナリオにおいても重要であり、AIが一旦処理を停止して人間の判断を待ち、承認を得た後にその状態から処理を続行するといった運用が可能になります。
型安全性とデータフロー
Pythonや.NETの型システムを活用し、エージェント間やExecutor間で受け渡されるメッセージのデータ型を明示的に定義できます。
これにより、非構造化データを扱うAIシステムにおいても、実行時エラーや予期せぬデータの形式不整合を防ぐことができます。
オブザーバビリティ
分散システムにおける標準規格であるOpenTelemetryに準拠しており、エージェントの実行トレース(会話の流れ、ツール呼び出しのレイテンシ、トークン使用量など)を詳細に追跡できます。
ブラックボックスになりがちなAIの挙動を可視化し、パフォーマンスのボトルネック特定や、不適切な応答の原因究明を容易にします。
Microsoft Agent Frameworkの料金
2026年1月現在、Microsoft Agent Frameworkはパブリックプレビューのオープンソースとして提供されており、無料で利用可能です。
ただし、利用するLLM(Azure OpenAI、OpenAIなど)やホスティングサービスのコストは別途計上が必要です。
最新情報は、Microsoft Agent Framework公式リポジトリをご覧ください。
Microsoft Agent Frameworkの利用手順
ここからは、Microsoft Agent Frameworkを実際に使い始めるための手順を示します。
前提条件
- Python 環境:Python 3.10 以上
- .NET 環境:.NET SDK 8.0 以上
- Azure OpenAI:エンドポイントとモデルのデプロイ(Azure OpenAIを利用する場合)
- 認証:Azure CLIでサインイン済み(例:az login)(Azure OpenAIを利用する場合)
- 権限:Azure OpenAIを呼び出すために必要なロール/権限(Azure OpenAIを利用する場合)
インストール
Python 環境では、次のコマンドでMicrosoft Agent Frameworkをインストールできます(パブリックプレビュー版のため --pre を付けます)。
pip install agent-framework-core --pre
.NET 環境では、以下のコマンドを実行してください。
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
ワークフロー機能を利用する場合は、次のパッケージも追加します。
dotnet add package Microsoft.Agents.AI.Workflows --prerelease
基本的な利用例
エージェントを作成して実行する最小構成のサンプルを以下に示します。
LLMを呼び出すためには、利用する認証方式(Azure CLI 認証/APIキー認証など)に応じて、環境変数などの設定を行っておく必要があります。
import asyncio
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
async def main():
# エージェントの設定
agent = AzureOpenAIResponsesClient(credential=AzureCliCredential()).create_agent(
name="", # エージェントの名前
instructions="" # エージェントの説明
)
# エージェントの実行
result = await agent.run("") # プロンプト
print(result.text)
if __name__ == "__main__":
asyncio.run(main())
詳細なチュートリアルや追加のサンプルコードは、Microsoft Agent Frameworkの公式ドキュメントを参照してください。
Microsoft Agent Frameworkの活用デモ
このセクションでは、簡易的なマルチエージェントワークフローのデモとして、「入力テキストを大文字に変換するExecutor」と「テキストを反転させるExecutor」をつなぐフローを作成します。
まずは、テキストを大文字に変換する関数をExecutorとして実装します。
# @executorデコレータで通常の関数をワークフローのノードとして定義します
@executor(id="upper_case_executor")
async def to_upper_case(text: str, ctx: WorkflowContext[str]) -> None:
"""入力を大文字に変換し、次のステップへ渡す"""
result = text.upper()
print(f" Converted to Upper: {result}")
# send_messageで次のExecutorへデータを送信
await ctx.send_message(result)
同様に、テキストを反転する関数をExecutorとして実装します。
# WorkflowContext[Never, str]で、これが最終出力(str)を生成することを示します
@executor(id="reverse_text_executor")
async def reverse_text(text: str, ctx: WorkflowContext[Never, str]) -> None:
"""入力を反転させ、ワークフローの最終結果として出力する"""
result = text[::-1]
print(f" Reversed Text: {result}")
# yield_outputでワークフロー自体の出力として値を返す
await ctx.yield_output(result)
以下のように、大文字変換 → 反転処理というワークフローを定義します。
# Edgeを定義します
workflow = (
WorkflowBuilder()
.add_edge(to_upper_case, reverse_text) # 大文字変換 -> 反転処理 へ接続
.set_start_executor(to_upper_case) # 開始ノードを指定
.build()
)
以下のコードでワークフローを実行します。
async def main():
print("Starting Workflow...")
# run_streamを使用することで、イベントをリアルタイムに受信可能
async for event in workflow.run_stream("hello microsoft agent framework"):
if isinstance(event, WorkflowOutputEvent):
print(f"\n Final Workflow Output: {event.data}")
if __name__ == "__main__":
asyncio.run(main())
実際に実行すると、以下のように出力が得られました。

ワークフローの出力
ここでは簡易的なデモをご紹介しましたが、実際にエージェントをマルチワークフローで動作させる場合も、利用手順で示したエージェントの構成と併せて、同様の手順で実装できます。
Microsoft Agent Frameworkの使い方のコツ
ここでは、エンタープライズ環境での開発において、生産性と保守性を高めるための実践的なコツをご紹介します。
専門家エージェントのライブラリ化
エージェントを巨大で多機能に作るのではなく、単一責任の原則に従って設計しましょう。「SQLクエリ生成専門」「法務文書要約専門」「顧客感情分析専門」といった特化型エージェントを作成し、これらをライブラリとして管理します。
新しいワークフローを作成する際は、これら既存のエージェントをExecutorとしてインポートし、エッジで繋ぐだけでシステムを構築できるようになります。
並列処理の活用
複数の独立したタスクがある場合、順次処理ではなく並列処理を活用してスループットを向上させることができます。
- ファンアウト:一つの入力を複数のエージェントに同時に送信します(例:一つのニュース記事を「要約担当」「感情分析担当」「タグ付け担当」に同時に送る)。
- ファンイン:複数のエージェントからの結果が全て揃うのを待ち、それらを統合するExecutorで最終判断を行います。
Microsoft Foundry連携の活用
Agent FrameworkからMicrosoft Foundry(旧Azure AI Foundry)のAgent Serviceと連携することで、以下のような活用が可能です。
- MCPツール対応エージェントの作成:HostedMCPToolを使用して、Microsoft LearnやGitHubなどの外部データソースに接続するエージェントを構築できます。これにより、エージェントは最新のドキュメントや情報にアクセスして回答を生成できます。
- 複数Foundryエージェントのオーケストレーション:既存のFoundryエージェントと新規作成したエージェントを組み合わせて並列実行することで、複雑なワークフローを効率的に構築できます。Agent Frameworkのワークフロー機能により、Foundryエージェントを含む複数エージェントの統合管理が容易になります。
この連携により、Foundryの管理機能(エージェントのバージョン管理、実行履歴の確認など)とAgent Frameworkの柔軟なオーケストレーション機能を組み合わせた、より高度なエージェントシステムの構築が可能になります。
Semantic Kernelからの移行
既存のSemantic Kernelユーザーは、保有しているKernelFunctionを活用することができます。
.as_agent_framework_tool()を使用することで、既存の関数をMicrosoft Agent Frameworkのエージェントが使用できるツールとして変換することが可能です(semantic-kernel 1.38 以降が必要です)。
Microsoft Agent Frameworkの活用シーン
Microsoft Agent Frameworkは、複数の判断基準や専門知識が必要とされる複雑な業務プロセスでの活用が期待されます。このセクションでは、具体的な活用シーンをご紹介します。
金融監査とコンプライアンス
監査業務では、膨大な財務データの中から不正のリスクや不整合を見つけ出す必要があります。そこで、以下のようなマルチエージェントシステムの活用が期待できます。
- データ収集エージェント:顧客のERPシステムから必要なトランザクションデータを安全に抽出。
- 規制チェックエージェント:最新の法規制データベースを参照し、取引がコンプライアンスに適合しているか照合。
- 監査支援エージェント:上記の結果を統合し、人間が判断すべき確認項目をハイライトしたレポートを作成。
これにより、監査担当は単純作業から解放され、高度な判断業務に集中できるようになります。
サプライチェーンの自律調整
サプライチェーンでは天候や輸送遅延、在庫不足などの予期せぬ事象に対応する必要があります。Microsoft Agent Frameworkを用いた典型的なワークフローは以下の通りです。
- イベント検知:配送遅延の通知を受信するとワークフローが自動で起動。
- 影響分析:在庫管理エージェントが影響を受ける生産ラインや在庫量を特定。
- 代替案策定:調達エージェントが代替サプライヤーの価格や納期を比較し、複数の対応案を作成。
- 人間による承認:作成した提案を担当者に提示し、承認が得られたら発注APIを呼び出して手続きを実行。
上記のような流れを組むことで、部門をまたぐ調整業務を効率化し、意思決定を支援することができます。
高度なIT運用とインシデント対応
システム障害発生時の対応フローを、以下のエージェントが協業することで自動化します。
- トリアージエージェント:アラートの内容を分析し、データベースの問題か、ネットワークの問題かを分類。
- 診断エージェント:分類結果に基づき、適切なログを取得して分析。
- 修復エージェント:既知の問題であれば再起動や設定変更のスクリプトを実行し、未知の問題であればエンジニアに詳細情報を通知。
Microsoft Agent Frameworkを活用することで、組織は業務効率化と意思決定の迅速化を実現し、運用コストや人的ミスの削減が期待できます。
Microsoft Agent Frameworkの注意点
Microsoft Agent Frameworkは有用なフレームワークですが、導入に際してはいくつかのリスクや制約を考慮する必要があります。このセクションでは、主な注意点を解説します。
データガバナンスとセキュリティ
外部のサードパーティ製エージェントや、OpenAI以外のモデルプロバイダーと連携する場合、データが自社のコンプライアンス境界の外に出るリスクがあります。
特に金融や医療などの分野では、データがどの地域のサーバーでどのように処理されるかを厳密に確認する必要があります。
エージェントのハルシネーションと無限ループ
エージェントはLLMを基盤として動作するため、エージェントが誤った判断をし、誤った分岐に進む可能性はゼロではありません。また、エージェント同士が同じ議論を繰り返したりする無限ループに陥るリスクもあります。
これを防ぐために、ワークフローには最大ターン数の制限や、終了条件を設定することが重要です。
学習コストと複雑性
Semantic KernelやAutoGenの概念に加え、グラフベースのワークフローや永続化とチェックポイントといった知識が必要となるため、開発者の学習コストは高くなる傾向があります。
単純なQ&Aボットであれば従来のシンプルなSDKで十分な場合もあり、プロジェクトの規模と複雑性に見合ったツール選定が必要です。
Microsoft Agent Frameworkの公式ドキュメントでは、利用可能な各種機能がサンプルコード付きで公開されています。ぜひ本記事と併せてご覧ください。
まとめ
本記事では、Microsoft Agent Frameworkの基本的な概念や機能、具体的な利用手順、活用例、注意点について解説しました。Microsoft Agent Frameworkは、AIエージェントおよびマルチエージェントワークフロー開発の基盤として、Semantic KernelとAutoGenの強みを統合したフレームワークです。このフレームワークは、グラフベースのワークフロー制御や永続化機能、型安全性、オブザーバビリティといった特徴を備え、エンタープライズ環境でのAI導入を支援します。一方で、学習コストやデータガバナンスの課題もあるため、導入時にはプロジェクトの要件に応じた慎重な検討が必要です。Microsoft Agent Frameworkを活用することで、AIエージェントの開発がより効率的かつ柔軟になり、複雑な業務プロセスの自動化や意思決定の迅速化が期待できます。
東京エレクトロンデバイスは、Microsoft Agent Frameworkの活用をはじめ、企業のAIエージェント開発やAzureでの開発を支援しています。
次世代のAI開発基盤にご興味のある方は、お気軽にご相談ください。





