---
title: "Microsoft Agent Framework 1.0とは｜Semantic KernelとAutoGenを統合した.NET/Python共通エージェントSDK"
url: "https://www.issoh.co.jp/tech/details/11675/"
published: 2026-04-06
updated: 2026-10-30
categories: ["AIエージェント・MCP"]
publisher: "株式会社一創"
---

# Microsoft Agent Framework 1.0とは｜Semantic KernelとAutoGenを統合した.NET/Python共通エージェントSDK

Microsoft Agent Framework（MAF）は、MicrosoftのAIエージェント開発SDKであるSemantic KernelとAutoGenを1本に統合した後継フレームワークです。2026年4月3日にバージョン1.0が正式版（GA）となり、安定APIと長期サポートを備えたプロダクション対応SDKとして提供されています。同じ開発チームが「両者の直接の後継」と位置づけており、Semantic KernelとAutoGenは以後バグ修正とセキュリティ対応のみの保守モードへ移りました。本記事は、C#（.NET）開発者を主対象に、1.0で安定した機能とプレビュー機能の切り分け、最小実装、マルチエージェント設計と旧SDKからの移行時の対応関係を整理します。

## まとめ：Microsoft Agent Framework 1.0の要点

- **正体**：Semantic Kernel（エンタープライズ機能）とAutoGen（マルチエージェント・オーケストレーション）を統合した単一SDK。2026年4月3日に1.0 GA、ライセンスはMIT。
- **旧SDKの扱い**：Semantic KernelとAutoGenは保守モード（新機能の追加なし）。新規開発はMAFが推奨され、既存資産は移行を前提に計画する。
- **C#の基本形**：`IChatClient`を`ChatClientAgent`でラップして`AIAgent`を得る。会話状態は`AgentSession`で保持し、`agent.CreateSessionAsync()`で生成する（プレビュー期の`AgentThread`／`GetNewThread()`は旧APIで、GAではセッション用APIに置き換わっている）。
- **最小実装**：NuGetの`Microsoft.Agents.AI`を入れ、`ChatClientAgent`を作って`RunAsync()`で動く。逐次出力は`RunStreamingAsync()`。
- **安定 vs プレビュー**：単一/マルチエージェント、ワークフロー、MCP・A2A、YAML宣言定義は安定版。DevUI・Foundryホスト統合・AG-UI/CopilotKitアダプター・Agent Harnessはプレビュー。
- **言語対応**：.NETとPythonが一次対応。Goも公式SDK（`agent-framework-go`）があるがパブリックプレビュー段階。

## Microsoft Agent Framework 1.0の位置づけとSemantic Kernel・AutoGenとの関係

MAFは、Semantic KernelとAutoGenに分かれていたエージェント開発の機能を統合するために登場しました。1.0は「Semantic KernelとAutoGenのどちらを使うか」という二択そのものを解消します。Semantic Kernelが持つ型安全性・フィルター・テレメトリ・セッション状態管理といったエンタープライズ機能と、AutoGenが得意とする単一/マルチエージェントの簡潔な抽象化を、同じチームが1つのSDKへ束ね直しました。ここへ、実行経路を明示的に制御するグラフベースのワークフローが加わっています。

重要なのは旧SDKの立ち位置です。Semantic KernelとAutoGenは保守モードに入り、バグ修正とセキュリティパッチは続くものの新機能は追加されません。新しいオーケストレーションやプロバイダー対応はMAF側にのみ入るため、これから作るなら1.0を起点にするのが妥当です。Semantic Kernel自体の概念は[Semantic Kernelとは何か？その基本的な概要と特徴について](https://www.issoh.co.jp/tech/details/4395/)で押さえられます。

### 1.0で安定した機能とプレビュー機能の切り分け

「1.0＝すべて本番投入可」ではありません。GAで安定APIとなった範囲と、まだ破壊的変更があり得るプレビュー範囲を分けて把握することが、本番採用の前提になります。

**安定版（1.0 GA）**：単一エージェントとサービスコネクタ（Foundry、Azure OpenAI、OpenAI、Anthropic Claude、Amazon Bedrock、Google Gemini、Ollama）、ミドルウェアフック、エージェントメモリとContextProvider、グラフベースのワークフロー、マルチエージェント・オーケストレーション（Sequential・Concurrent・Handoff・GroupChat・Magentic。Python版の専用パッケージの1.0.0到達は2026年7月8日発表）、YAML宣言的定義、A2A・MCP対応。

**プレビュー**：DevUI、Foundryホステッドエージェント統合、Foundryツール／メモリ／可観測性、AG-UI・CopilotKit・ChatKitアダプター、Skills、[GitHub Copilot SDK（現Microsoft Copilot SDK）](https://www.issoh.co.jp/tech/details/19100/)・Claude Code SDK連携、Agent Harness。

本番システムには安定版の機能で骨格を組み、プレビュー機能は隔離した箇所で段階的に検証するのが安全です。プレビューはマイナー更新でAPIが変わる前提で扱います。

## Microsoft Agent Frameworkの基本アーキテクチャとC#最小実装

MAFのC#実装は3層で理解すると迷いません。最下層が`IChatClient`（モデルプロバイダーの抽象。`Microsoft.Extensions.AI`由来）、中間が`ChatClientAgent`（`IChatClient`をラップし、システム指示の適用・ツール呼び出しループ・会話履歴管理を担う`AIAgent`の具象実装）、その周囲にリクエスト/レスポンスを差し込むミドルウェアが載ります。プロバイダーを差し替えても上位コードが変わらないのは、この`IChatClient`抽象のおかげです。

### AIAgentとChatClientAgentの関係、最小実装

まずNuGetパッケージを追加します。

```
dotnet add package Microsoft.Agents.AI
dotnet add package Microsoft.Extensions.AI.OpenAI
```

OpenAI（またはAzure OpenAI）のチャットクライアントを`IChatClient`化し、`ChatClientAgent`でラップします。変数の型は基底の`AIAgent`で受けられます。

```
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
using OpenAI;

IChatClient chatClient = new OpenAIClient("your-api-key")
    .GetChatClient("gpt-4o-mini")
    .AsIChatClient();

AIAgent agent = new ChatClientAgent(chatClient, instructions: "あなたは簡潔に答える技術アシスタントです。");

Console.WriteLine(await agent.RunAsync("Microsoft Agent Frameworkとは何ですか？"));
```

Azure AI Foundryを使う場合は、専用パッケージ（`Microsoft.Agents.AI.Foundry`）で`AIProjectClient`から`AsAIAgent()`拡張で直接エージェント化できます。

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

AIAgent agent = new AIProjectClient(new Uri(Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINTを設定してください。")), new DefaultAzureCredential())
    .AsAIAgent(model: "gpt-4o-mini", instructions: "簡潔に答えてください。", name: "HelloAgent");
```

### Pythonでの導入と最小エージェント（pip install agent-framework）

Python版はPyPIの`agent-framework`パッケージで提供されています。2026年9月18日公開の1.19.0が最新で、対応はPython 3.10以上です。まとめて入れる場合は次の1行で済みます。

```
pip install agent-framework
```

`agent-framework`は`agent-framework-core[all]`だけに依存するまとめ用のパッケージで、OpenAIやFoundryなどの連携パッケージもまとめて導入されます。依存を絞りたいときは`agent-framework-core`だけを入れる方法も使えます。ただし1.19.0のcoreには`OpenAIChatClient`の実体が含まれておらず、importした時点で`agent-framework-openai`を追加するよう求めるエラーになります。公式READMEには「coreにOpenAI対応が含まれる」とありますが、core 1.19.0の配布パッケージではOpenAI連携が別パッケージになっています。OpenAIを使うなら2つを合わせて入れてください。

```
pip install agent-framework-core agent-framework-openai
```

環境変数`OPENAI_API_KEY`と`OPENAI_MODEL`を設定したうえで、`Agent`クラスにチャットクライアントと指示文を渡すとエージェントになります。`run()`はコルーチンを返すため、`await`で結果を受け取ります。

```
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("Microsoft Agent Frameworkとは何ですか？")
    print(result)

asyncio.run(main())
```

### AgentSessionによる会話状態の保持（RunAsyncとRunStreamingAsyncの違い）

複数ターンの対話では、`AgentSession`に会話状態を持たせます。プレビュー期の記事やブログでは「AgentThread」「GetNewThread()」と書かれることがありますが、1.0のGA APIではこれらは`AgentSession`と`agent.CreateSessionAsync()`に改称されています。セッションを生成してrun時に渡すと、直前までの文脈を引き継げます。

```
AgentSession session = await agent.CreateSessionAsync();
await agent.RunAsync("私の名前はタロウです。", session);
Console.WriteLine(await agent.RunAsync("私の名前は？", session)); // 直前の文脈を保持
```

応答の受け取り方は2通りです。`RunAsync()`は完全な応答を一括で返し、バッチ処理やAPIレスポンスに向きます。`RunStreamingAsync()`は応答の更新を逐次返すため、チャットUIのように「打鍵中」の体感を出したい場面で待ち時間の知覚を下げられます。

```
await foreach (var update in agent.RunStreamingAsync("一文で豆知識を教えて。"))
{
    Console.Write(update);
}
```

## マルチエージェント・オーケストレーション5パターンの使い分け

MAFは複数エージェントの協調を5つの型で提供します。字面が似ていますが、制御の渡し方と適するタスクが異なります。要件に対して過剰な型を選ぶとトークンコストとレイテンシが無駄に増えるため、最小の型から始めます。

| パターン         | 制御の流れ              | 向くタスク           |
| ------------ | ------------------ | --------------- |
| Sequential   | 前段の出力を次段へ直列に渡す     | 調査→要約→校正の依存工程   |
| Concurrent   | 同一入力を複数へ並列投入し集約    | 多視点レビュー・並列生成    |
| Handoff      | 制御権を別エージェントへ完全移譲   | 一次受付から専門担当へ振り分け |
| GroupChat    | 複数が会話しながら合意形成      | 設計レビュー・相互批評     |
| Magentic-One | マネージャーが動的にタスク計画を更新 | 手順を固定できない探索的タスク |

Sequentialは実行順序を固定する処理に向き、Handoffは会話の文脈に応じて担当エージェントを切り替える処理に向きます。GroupChatは共有会話による協調、Magenticは計画の更新を伴う協調に向きます。Magentic-Oneは実行しながらタスクリストを組み替える点が他の4型と根本的に異なり、柔軟な反面、収束制御とコスト上限の設計が前提になります。まず単一エージェント＋ツールで解けないかを確認し、解けない依存関係が明確なときにSequential、役割の切り替えが必要ならHandoff、と段階的に上げるのが安全です。

## Semantic Kernel・AutoGenからの移行ポイント

旧SDKの資産は捨てずに移行できます。中心となる置き換えは、Semantic Kernelの`Kernel`インスタンス起点の構成を`AIAgent`抽象へ寄せること、AutoGenのPython版`AssistantAgent`をMAFの`Agent`へ移し、会話状態を`AgentSession`で管理することの2点です。

| 旧SDK                               | MAF 1.0での対応                      |
| ---------------------------------- | -------------------------------- |
| SK: Kernel + KernelFunction/Plugin | AIAgent + AITool（関数はツール登録）       |
| SK: ChatHistory                    | AgentSession（会話状態の保持）            |
| AutoGen Python: AssistantAgent     | MAF Python: Agent + AgentSession |
| AutoGen: GroupChat 等の会話            | マルチエージェント・オーケストレーション             |

一度に全面移行せず、既存プロジェクトは保守モードのまま稼働させ、新規開発分からMAFで書くハイブリッド運用が現実的です。判断基準は、その機能に新しいオーケストレーションやプロバイダー対応が必要かどうか。新機能が要るなら移行、安定稼働だけで十分なら据え置き、と切り分けます。移行時はプラグインのツール変換とツール呼び出しの引数スキーマ差異でつまずきやすいため、まず1エージェント分を移して挙動を突き合わせてから広げます。

## 本番運用を支える拡張機能：MCP・A2A・YAML・Foundryホスティング

1.0では外部連携と運用の要素が安定版に入っています。MCP（Model Context Protocol）対応により、外部ツールをエージェントから動的に発見・呼び出しできます。プロトコル自体の役割は[MCPとは何か？その基本概念と役割について解説](https://www.issoh.co.jp/tech/details/5736/)で確認できます。エージェント間をまたぐ協調にはA2A（Agent2Agent）対応が使え、異なるランタイム間の相互運用を担います（[Agent2Agent（A2A）とは何か？次世代エージェント間通信の定義と概要](https://www.issoh.co.jp/tech/details/6732/)）。

エージェント定義をコードではなくYAMLで宣言する方式も安定版です。定義と実装を分離したい、非エンジニアが定義を調整する、といった運用でコード変更なしに構成を差し替えられます。ホスティングはAzure AI Foundryのマネージド実行やDurable Taskによるチェックポイント保存（長時間ワークフローの障害復旧）と組み合わせられますが、Foundryホステッド統合や可観測性の一部はプレビュー扱いのため、本番導入は段階採用が前提です。フロントエンドへ出力をストリーミングするAG-UI・CopilotKitアダプターもプレビューで、仕組みは[AG-UIとは？AIエージェントとフロントエンドをつなぐプロトコルの仕組みと実装](https://www.issoh.co.jp/tech/details/7196/)が参考になります。

## Microsoft Agent Framework 1.0を採用すべき場面・見送るべき場面

他フレームワークと横並びにすると、MAFの強みと弱みははっきりします。C#ネイティブで型安全に書けること、Azure・Foundry・Aspireとの本番デプロイ連携、複数モデルプロバイダーの抽象化が主な優位点です。LangChainはPythonエコシステムが厚くC#では選択肢が限られ、CrewAIはPythonを中心とし、主要プロバイダーのネイティブSDKとLiteLLM経由でモデルを選択できる、AutoGen単体はマルチエージェントの実験に強いがエンタープライズ機能が薄い——という位置づけの中で、MAFは.NET中心のチームにとって既定候補になります。

一方で、採用を急ぐべきでない場面もあります。第一に、必要な機能がプレビュー（DevUI依存の運用、Foundryホステッド統合、AG-UIアダプター等）に集中している場合は、APIの破壊的変更を本番で被るリスクがあるため安定版の範囲で組めるまで待つ判断が妥当です。第二に、既存のSemantic Kernel／AutoGenが安定稼働していて新しいオーケストレーションが不要なら、移行工数に見合いません。第三に、Python主体でLangChainやCrewAIの資産が厚いチームでは、C#ネイティブという利点が効きにくく、乗り換え効果は限定的です。まず「.NET中心か」「必要機能が安定版に含まれるか」「新機能が必要か」で候補を絞り、既存資産の移行工数と本番運用要件を照合して採否を決めます。

## よくある質問

### Microsoft Agent FrameworkはSemantic KernelとAutoGenの後継ですか？

はい。開発した同じチームが「両者の直接の後継」と明言しています。Semantic KernelとAutoGenは保守モード（バグ修正・セキュリティ対応のみ）に移り、新機能はMAFへ集約されます。新規開発はMAFが推奨です。

### 1.0はいつ正式版になりましたか？

2026年4月3日にバージョン1.0がGA（正式版）となりました。2026年2月にリリース候補（RC）を経ての正式版で、安定APIと長期サポートが約束されています。

### ChatClientAgentとは何ですか？

任意の`IChatClient`実装をラップして`AIAgent`として振る舞わせる具象クラスです。システム指示の適用、関数（ツール）呼び出しループ、会話履歴の管理などを標準で備えます。プロバイダー非依存にエージェントを組む中核で、`new ChatClientAgent(chatClient, instructions: "...")`のように生成します。

### RunAsyncとRunStreamingAsyncはどう使い分けますか？

`RunAsync()`は応答を一括で返すためバッチ処理やAPI応答向き、`RunStreamingAsync()`は応答の更新を逐次返すためチャットUIなど体感速度を重視する場面向きです。`AgentSession`を渡せば、どちらも複数ターンの文脈を保持できます。

### Magentic-Oneは他のパターンと何が違いますか？

マネージャー役が実行中にタスクリストを動的に組み替える点が特徴です。Handoffも文脈に応じて引き継ぎ先を選び、GroupChatもマネージャーが会話を調整しますが、Magentic-Oneは手順を固定できない探索的タスクに向きます。柔軟な反面、収束条件とコスト上限の設計が必須です。

## 関連記事

- [Semantic Kernelとは何か？その基本的な概要と特徴について](https://www.issoh.co.jp/tech/details/4395/)
- [MCP（Model Context Protocol）とは？AIと外部ツールをつなぐ標準規格の仕組みをわかりやすく解説](https://www.issoh.co.jp/tech/details/5736/)
- [Agent2Agent（A2A）とは何か？次世代エージェント間通信の定義と概要](https://www.issoh.co.jp/tech/details/6732/)
- [AG-UIとは？AIエージェントとフロントエンドをつなぐプロトコルの仕組みと実装](https://www.issoh.co.jp/tech/details/7196/)

---

出典: [Microsoft Agent Framework 1.0とは｜Semantic KernelとAutoGenを統合した.NET/Python共通エージェントSDK](<https://www.issoh.co.jp/tech/details/11675/>)（株式会社一創）
