0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Agent FrameworkがRC到達 — 始め方と全体像

0
Last updated at Posted at 2026-03-04

Microsoft Agent Framework

はじめに

2026年2月19日、MicrosoftはAIエージェント開発フレームワーク「Microsoft Agent Framework」のRelease Candidate(RC)を公開しました。これまで「Semantic KernelとAutoGen、どっちを使えばいいの?」という悩みがありましたが、ついに両者が統合されて1つのフレームワークになりました。

RC到達はGA(一般提供)前の重要なマイルストーンで、APIが安定し1.0で提供予定の全機能が揃った状態を意味します。Microsoftは2026年Q1末のGA提供を目標としています。この記事では、公式ドキュメントをもとに全体像と始め方を解説します。

この記事で学べること

  • Microsoft Agent Frameworkの位置づけと全体像
  • Semantic Kernel / AutoGenとの違い
  • Pythonでの基本的なエージェント作成方法
  • マルチエージェントワークフローの構築パターン
  • MCP / A2Aプロトコルによる外部連携

対象読者

  • AIエージェント開発に興味があるエンジニア
  • Semantic KernelやAutoGenを使っていて移行を検討している方
  • マルチエージェントシステムの設計パターンを知りたい方

TL;DR

  • Microsoft Agent Frameworkは、Semantic KernelとAutoGenを統合した新しいAIエージェント開発フレームワーク
  • Python / .NET対応で、数行のコードからエージェントが作成できる
  • マルチエージェントのオーケストレーションパターン(Sequential, Concurrent, Handoff, Group Chat, Magentic-One)を標準搭載
  • MCP(Model Context Protocol)とA2A(Agent2Agent)プロトコルをネイティブサポート
  • 2026年Q1末のGA提供を目標にRC版が公開中

Semantic Kernel / AutoGenとの関係

なぜ統合されたのか

これまでMicrosoftは、AIエージェント開発向けに2つのフレームワークを提供していました。

フレームワーク 強み 主な用途
Semantic Kernel エンタープライズ向け機能(セッション管理、型安全性、ミドルウェア、テレメトリ) 既存アプリへのAI統合
AutoGen シンプルなエージェント抽象化、マルチエージェント研究向けパターン 実験的なマルチエージェントシステム

開発者にとっては「どちらを選ぶべきか」が常に悩みの種でした。実際、過去にSemantic Kernelでエージェントを組んだ後、マルチエージェント機能が必要になってAutoGenに乗り換えた、という話はよく聞きます。Microsoft Agent Frameworkは、両者の長所を1つのフレームワークに統合することでこの問題を解決しています。

移行の方針

Semantic Kernel v1.xとAutoGenは、セキュリティ修正とバグフィックスは継続されますが、新機能の開発はMicrosoft Agent Frameworkに集中します。つまり、今後エージェント開発を始めるなら、Agent Frameworkを選ぶのが正解です。

アーキテクチャ全体像

アーキテクチャの全体像

Microsoft Agent Frameworkのコアコンポーネントは以下の通りです。

基盤レイヤー

  • モデルクライアント: Chat CompletionsやResponses APIへの接続。OpenAI、Azure OpenAI、その他のプロバイダーに対応
  • エージェントセッション: 状態管理の仕組み。会話履歴やコンテキストを保持
  • コンテキストプロバイダー: エージェントのメモリ機能。外部データソースからの情報取得
  • ミドルウェア: エージェントのアクションを傍受・加工するパイプライン
  • MCPクライアント: Model Context Protocolサーバーとの連携

オーケストレーションの2つのアプローチ

Agent Frameworkは、タスクの性質に応じて2つのオーケストレーション方式を使い分けられます。

1. Agent Orchestration(動的)
LLM駆動のエージェントが推論・協調するパターンです。グループチャットやリフレクション(自己省察)など、AutoGen由来の高度なパターンが使えます。正解が事前に決まらない、探索的なタスクに向いています。

2. Workflow Orchestration(決定的)
ビジネスロジックに基づく確定的なワークフローです。再現性が求められるエンタープライズプロセスに向いています。

Pythonで始めるAgent Framework

インストール

まずはpipでインストールします。RC版のため --pre フラグが必要な点に注意してください。

pip install agent-framework --pre

Azure AI連携が必要な場合は追加パッケージもインストールします。

pip install agent-framework-azure-ai --pre

最初のエージェントを作る

環境変数にAPIキーを設定した上で、以下のコードで基本的なエージェントを作成できます。驚くほど少ないコード量で動きます。

import asyncio
from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

async def main():
    agent = Agent(
        client=OpenAIChatClient(),
        instructions="あなたは親切なアシスタントです。"
    )

    # 非ストリーミング
    result = await agent.run("Pythonでフィボナッチ数列を計算する方法は?")
    print(f"Agent: {result}")

    # ストリーミング
    async for chunk in agent.run("AIエージェントとは何ですか?", stream=True):
        if chunk.text:
            print(chunk.text, end="", flush=True)

asyncio.run(main())

Agent クラスがすべてのエージェントパターンの基底クラスです。client にモデルプロバイダーを指定し、instructions でシステムプロンプトを設定します。

ツールを追加する

エージェントに外部ツールを持たせるには、Pythonの関数を tools パラメータに渡すだけです。

from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient

def get_weather(location: str) -> str:
    """指定した場所の天気を取得します。"""
    return f"{location}の天気は晴れ、気温は22度です。"

def search_documents(query: str) -> str:
    """社内ドキュメントを検索します。"""
    return f"'{query}'に関するドキュメントが3件見つかりました。"

async def main():
    agent = Agent(
        client=OpenAIChatClient(),
        instructions="天気情報とドキュメント検索ができるアシスタントです。",
        tools=[get_weather, search_documents]
    )

    response = await agent.run("東京の天気を教えてください")
    print(response)

asyncio.run(main())

関数のdocstringがツールの説明として自動的に使用されます。型ヒントからパラメータのスキーマも自動生成されるため、別途定義ファイルを書く必要はありません。LangChainの @tool デコレータのように追加の記述が不要なのは手軽です。

5つのオーケストレーションパターン

マルチエージェントのオーケストレーション

Agent Frameworkの大きな特徴が、マルチエージェントワークフローの標準サポートです。5つのオーケストレーションパターンが用意されています。

1. Sequential(逐次実行)

エージェントをパイプラインとして直列に接続します。前のエージェントの出力が次のエージェントの入力になります。

ユースケース: データ収集→分析→レポート生成のような段階的な処理。

2. Concurrent(並列実行)

複数のエージェントが同じタスクに対して独立かつ同時に作業します。多様な視点からの回答が必要な場合に有効です。

ユースケース: 複数の専門家による同時レビュー、A/Bテスト的な回答生成。

3. Handoff(引き継ぎ)

エージェントが自分の専門外のタスクだと判断した場合、適切な別のエージェントに処理を引き渡します。

ユースケース: カスタマーサポートでの部門間エスカレーション。

4. Group Chat(グループチャット)

複数のエージェントが協調して議論するパターンです。マネージャーが発言者の選択と会話の進行を制御します。

ユースケース: 設計レビュー、ブレインストーミング、コードレビュー。

5. Magentic-One(マジェンティック・ワン)

AutoGenのMagentic-Oneシステムに基づく、最も柔軟なパターンです。複雑で動的なタスクに対して、エージェント間の協調を自動的に管理します。

ユースケース: 複雑な調査タスク、マルチステップの問題解決。

MCP / A2A プロトコル対応

MCP(Model Context Protocol)連携

Agent FrameworkはMCPサーバーへの接続をネイティブサポートしています。MCPを通じて、ファイルシステム、GitHub、SQLite、カスタムAPIなど、さまざまな外部ツールをエージェントに接続できます。

さらに、Agent Framework自体をMCPサーバーとして公開することも可能です。これにより、Claude CodeやCursorなどMCP対応ツールから、Agent Frameworkで構築したエージェントを呼び出せます。

A2A(Agent2Agent)プロトコル

A2Aプロトコルにより、異なるフレームワーク・ランタイムで動作するエージェント間の通信が可能です。あるエージェントがデータを取得し、別のエージェントが分析し、さらに別のエージェントが検証する、というクロスフレームワークのワークフローが構築できます。

MCP、A2A、OpenAPIの3つのプロトコルにより、ベンダーロックインのないポータブルなエージェントシステムが実現します。

Semantic Kernel / AutoGenからの移行

既にSemantic KernelやAutoGenを使っているプロジェクトがある場合、以下の点を確認してください。

移行のタイミング

  • 新規プロジェクト: 今すぐAgent Frameworkで開始することを推奨
  • 既存のSemantic Kernelプロジェクト: v1.xのサポートは継続されるため急ぐ必要はないが、新機能が必要になった時点で移行を検討
  • 既存のAutoGenプロジェクト: 同様にメンテナンスモードに入るため、計画的な移行を推奨

注意点

RC版はAPIが安定していますが、GA前に軽微な破壊的変更が入る可能性があります。NuGet(.NET)とPyPI(Python)ではまだpre-releaseフラグが付いています。プロダクション評価を開始しつつ、GAまでアップデートに追従する運用が推奨されています。

まとめ

公式ドキュメントから読み取れる特徴として、Semantic Kernelのエンタープライズレベルの設計と、AutoGenのマルチエージェントの柔軟さが1つのフレームワークに統合されている点が注目に値します。

  • Python / .NET対応、数行のコードでエージェント作成可能、5つのマルチエージェントパターンを標準搭載
  • MCP / A2Aプロトコルによるオープンな外部連携をネイティブサポート
  • 2026年Q1末のGA提供に向けてRC版が公開中。新規プロジェクトは今すぐ始められる
  • Semantic Kernel / AutoGenは今後メンテナンスモードに移行するため、新しいエージェント開発にはAgent Frameworkが推奨

GA前のRC版とはいえAPI は安定しているので、エージェント開発を検討している方はこのタイミングで試してみるのがおすすめです。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?