🤖

Microsoft Agent Framework 1.0入門 — SK+AutoGen統合GA版マルチエージェントSDK

に公開

はじめに

2026年4月3日、Microsoftは Microsoft Agent Framework 1.0 をGA(一般提供)リリースしました。これはSemantic KernelとAutoGenという2つのOSSエージェントフレームワークを1つのSDKに統合したものです(公式ブログ)。

RC版(2025年10月)から約6ヶ月の開発を経てLTS(長期サポート)コミット付きの本番対応版となり、.NETとPythonの両方で安定したAPIが提供されています。

この記事で学べること

  • Microsoft Agent Framework 1.0の全体アーキテクチャ
  • PythonとC#でのエージェント実装コード
  • 5つのマルチエージェントオーケストレーションパターン
  • MCP/A2Aサポートの具体的な活用方法
  • DevUIによるリアルタイムデバッグ手法
  • Semantic Kernel/AutoGenからの移行方法

対象読者

  • AIエージェントの本番導入を検討しているエンジニア
  • Semantic KernelまたはAutoGenを利用しているチーム
  • .NETまたはPythonでマルチエージェントを構築したいエンジニア

前提環境

  • Python 3.10以上、または .NET 8.0以上
  • AzureサブスクリプションまたはOpenAI APIキー

TL;DR

  • Semantic Kernel(SK)とAutoGenが 1つのSDKに統合 され、1.0 GAとして安定リリース
  • Python: pip install agent-framework / .NET: dotnet add package Microsoft.Agents.AI
  • Azure OpenAI, OpenAI, Anthropic Claude, Amazon Bedrock, Google Gemini, Ollamaに マルチプロバイダー対応
  • Sequential・Concurrent・Handoff・Group Chat・Magentic-One の5パターンのオーケストレーションをサポート
  • MCP・A2A 対応で外部ツール統合とクロスランタイムエージェント協調が可能
  • DevUI でエージェント実行・ツール呼び出しをブラウザ上でリアルタイム可視化

背景: なぜSKとAutoGenを統合したのか

Microsoftはこれまで2つの主要エージェントフレームワークを並行開発してきました。

フレームワーク 強み 弱み
Semantic Kernel プラグイン・コネクタ・エンタープライズ統合 マルチエージェント機能が弱い
AutoGen マルチエージェント・群会話・複雑なオーケストレーション エンタープライズ統合・コネクタが弱い

Microsoft Agent Frameworkは両者の強みを統合します。Semantic Kernelがプラグインモデル・コネクタシステムの 基盤レイヤー として機能し、AutoGenのマルチエージェントオーケストレーション概念が グラフベースのワークフローエンジン として上位に構築されます。

GitHubスターでは75,000以上を獲得した両プロジェクトの実績が1つのSDKに集約されています(Visual Studio Magazine)。

インストール

Python

pip install agent-framework

.NET

dotnet add package Microsoft.Agents.AI

MIT ライセンスで公開されています(github.com/microsoft/agent-framework)。

基本的なエージェントの作成

Python

from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

agent = Agent(
    client=FoundryChatClient(
        project_endpoint="https://your-project.services.ai.azure.com",
        model="gpt-5.3",
        credential=AzureCliCredential()
    ),
    name="HelloAgent",
    instructions="You are a friendly assistant."
)

response = await agent.run("Pythonでファイルを読む方法を教えてください")
print(response.text)

C# (.NET)

using Microsoft.Agents.AI;
using Azure.AI.Projects;
using Azure.Identity;

var agent = new AIProjectClient(
    endpoint: "https://your-project.services.ai.azure.com",
    credential: new AzureCliCredential()
).GetResponsesClient("gpt-5.3")
 .AsAIAgent(
     name: "HelloAgent",
     instructions: "You are a friendly assistant."
 );

var response = await agent.RunAsync("Pythonでファイルを読む方法を教えてください");
Console.WriteLine(response.Text);

AsAIAgent() の拡張メソッドにより、既存のAzure AI SDKクライアントをそのままエージェントとして使えます。

マルチプロバイダー対応

Agent Framework 1.0は以下のモデルプロバイダーに対応しています(公式ドキュメント):

プロバイダー コネクタクラス(Python) 備考
Microsoft Foundry FoundryChatClient Azure AI Foundryとの統合
Azure OpenAI AzureOpenAIChatClient GPT-5.x系
OpenAI OpenAIChatClient GPT-5.x系
Anthropic Claude AnthropicChatClient Claude Opus/Sonnet/Haiku
Amazon Bedrock BedrockChatClient Bedrock経由の各モデル
Google Gemini GeminiChatClient Gemini 3.x系
Ollama OllamaChatClient ローカルモデル

Anthropic Claudeへの接続例(Python)

from agent_framework import Agent
from agent_framework.anthropic import AnthropicChatClient

agent = Agent(
    client=AnthropicChatClient(
        api_key="your-anthropic-api-key",
        model="claude-opus-4-7"
    ),
    name="ClaudeAgent",
    instructions="You are a helpful coding assistant."
)

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

Agent Framework 1.0は5つのオーケストレーションパターンを安定サポートします(全パターンでチェックポイント・Human-in-the-Loop・Pause/Resumeに対応)。

1. Sequential(直列)

エージェントを順番に実行します。前のエージェントの出力が次の入力になります。

from agent_framework.orchestrations import SequentialBuilder

workflow = SequentialBuilder(
    participants=[copywriter_agent, reviewer_agent, publisher_agent]
).build()
result = await workflow.run("AI Agentsに関するブログ記事を作成してください")

2. Concurrent(並列)

複数のエージェントを並列実行し、結果を集約します。

from agent_framework.orchestrations import ConcurrentBuilder

workflow = ConcurrentBuilder(
    participants=[research_agent, coding_agent, design_agent]
).build()
results = await workflow.run("新機能の調査・実装・UIデザインを同時に進めてください")

3. Handoff(引き継ぎ)

特定の条件を満たした場合にエージェント間でタスクを引き継ぎます。カスタマーサポートや段階的なエスカレーションに適しています。エージェントのシステムプロンプトに引き継ぎ条件を定義し、各エージェントが次のエージェントへのHandoffを判断します。

詳細な実装は公式ドキュメント(Orchestrations)を参照してください。

4. Group Chat(会話)

複数のエージェントが会話形式で協調します。役割を持つ専門エージェント間の議論に適しています。モデレーターエージェントが発言順を制御し、各エージェントが順番に意見を述べることで合意形成を行います。

詳細な実装は公式ドキュメント(Orchestrations)を参照してください。

5. Magentic-One(専門家チーム)

コーディング・ウェブブラウジング・ファイル操作など、異なるスキルを持つ専門エージェントのチームがオーケストレーターの指示のもとで協調します。WebSurfer(ウェブ検索)・Coder(コード実行)・FileSurfer(ファイル操作)などの専門エージェントを組み合わせ、複雑な長時間タスクに対応します。

詳細な実装は公式ドキュメント(Orchestrations)を参照してください。

MCP・A2Aサポート

MCP(Model Context Protocol)

エージェントがMCPサーバー経由で外部ツールを動的に発見・実行できます。

from agent_framework import Agent, MCPStreamableHTTPTool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential

agent = Agent(
    client=FoundryChatClient(
        project_endpoint="https://your-project.services.ai.azure.com",
        model="gpt-5.3",
        credential=AzureCliCredential()
    ),
    name="MCPAgent",
    instructions="Use available tools to complete tasks."
)

# MCPサーバー(HTTPエンドポイント)経由でタスクを実行
async with MCPStreamableHTTPTool(name="my-mcp", url="http://localhost:3000") as mcp_server:
    result = await agent.run("利用可能なツールで天気を調べてください", tools=mcp_server)

A2A(Agent-to-Agent Protocol)

異なるランタイム(.NETエージェントとPythonエージェントなど)間でエージェントが協調できます。

from agent_framework.a2a import A2AAgent

# 外部エージェント(異なるランタイムでも可)に接続して実行
async with A2AAgent(
    name="remote-dotnet-agent",
    url="https://dotnet-agent.example.com"
) as agent:
    response = await agent.run("Process this C# code review")
    print(response.text)

A2AプロトコルはLinux Foundationにホストされており、AWS、Google、IBM、Microsoft、Salesforceなど150以上の組織が参加しています(PR Newswire)。

DevUI: リアルタイムデバッグ

DevUIはエージェント実行をブラウザ上でリアルタイム可視化するローカルデバッガーです。

Python での起動

from agent_framework.devui import DevUI

async with DevUI(port=8080) as devui:
    # DevUIにエージェントを登録
    devui.register(agent)
    
    # エージェントにリクエスト(DevUI上で追跡可能)
    from openai import OpenAI
    client = OpenAI(base_url="http://localhost:8080/v1")
    response = client.responses.create(
        model="agent",
        metadata={"entity_id": agent.name},
        input="Seattleの天気を調べてください"
    )
    print(response.output[0].content[0].text)

.NET での設定

// Program.cs
builder.Services.AddChatClient(builder => builder.UseOpenAI());
builder.AddAIAgent("WeatherAgent", instructions: "You are a weather assistant.");
builder.Services.AddOpenAIResponses().AddOpenAIConversations();

var app = builder.Build();
if (app.Environment.IsDevelopment())
{
    app.MapDevUI(); // http://localhost:5000/devui でアクセス可能
}
app.Run();

DevUIでは以下を確認できます:

  • エージェントへのメッセージ・応答のタイムライン
  • 各ツール呼び出しのリクエスト・レスポンス詳細
  • オーケストレーション時のエージェント間メッセージフロー
  • メモリ・コンテキストプロバイダーのアクセスログ

宣言的YAML設定

エージェントの定義をYAMLファイルで管理し、Gitによるバージョン管理が可能です。

# agents/research_agent.yaml
name: ResearchAgent
model: gpt-5.3
provider: azure_openai
instructions: |
  You are a specialized research agent.
  Focus on finding accurate, up-to-date information.
tools:
  - type: mcp
    server: http://localhost:3000
  - type: function
    name: web_search
memory:
  provider: redis
  connection: redis://localhost:6379
from agent_framework import Agent

# YAMLから読み込み
agent = Agent.from_yaml("agents/research_agent.yaml")
result = await agent.run("Microsoftの最新AIニュースを調べてください")

Semantic Kernel / AutoGen からの移行

Agent Framework 1.0にはSKおよびAutoGenからの移行を支援するマイグレーションアシスタントが内蔵されています(公式ドキュメント)。

Semantic Kernelからの移行

SKのKernel・Plugin・Connectorは下位互換性を維持しています。既存のPluginをそのままAgent Frameworkで使用できます。

# 既存のSKプラグイン(変更不要)
class WeatherPlugin:
    @kernel_function(description="Get current weather")
    def get_weather(self, city: str) -> str:
        return f"Weather in {city}: Sunny, 22°C"

# Agent Frameworkに登録
agent = Agent(
    client=FoundryChatClient(...),
    plugins=[WeatherPlugin()]  # 既存プラグインをそのまま利用
)

AutoGenからの移行

AutoGenのConversableAgent・GroupChatは新しいOrchestrationパターンにマッピングされます。

# マイグレーションアシスタント(CLI)
# 既存のAutoGenコードを分析し移行プランを生成
agent-framework migrate --from autogen --source ./my_autogen_project --output ./migration_plan.md

まとめ

Microsoft Agent Framework 1.0は、Semantic KernelとAutoGenという実績あるOSSの統合によって、.NETとPythonでのAIエージェント本番開発の複雑さを大幅に低減します。

特徴 概要
統合SDK SK(基盤)+ AutoGen(マルチエージェント)を1本化
マルチプロバイダー 7つのモデルプロバイダーに対応
オーケストレーション 5パターン、全てHiTL・チェックポイント対応
MCP・A2A 外部ツール統合と異ランタイム協調
DevUI ブラウザベースのリアルタイムデバッガー
YAML宣言設定 エージェント定義のバージョン管理
LTS 長期サポートコミット付き本番対応

エンタープライズ環境でのAIエージェント本番運用を検討しているチームにとって、Agent Framework 1.0は有力な選択肢となりえます。

参考リンク

Discussion