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 1.0入門 — SK+AutoGen統合GA版マルチエージェントSDK

0
Last updated at Posted at 2026-04-24

はじめに

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は有力な選択肢となりえます。

参考リンク

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?