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は有力な選択肢となりえます。
参考リンク
- Microsoft Agent Framework Version 1.0 — 公式ブログ — 全セクションで参照
- github.com/microsoft/agent-framework — インストール・サンプルコード
- Microsoft Agent Framework Overview — Microsoft Learn — プロバイダー一覧
- Microsoft Ships Production-Ready Agent Framework 1.0 — Visual Studio Magazine — 統計・背景
- A2A Protocol 1年間の進化 — PR Newswire — A2A統計
Discussion