Microsoft Agent Framework は、.NET および Python 用の AI エージェント と マルチエージェント ワークフロー を構築するためのオープンソース開発キットです。 セ マンティック カーネル と AutoGen プロジェクトからアイデアをまとめ、拡張し、その長所を組み合わせて新しい機能を追加します。 同じチームによって構築され、今後 AI エージェントを構築するための統合された基盤です。
Agent Framework には、次の 2 つの主要なカテゴリの機能が用意されています。
- AI エージェント: LLM を使用してユーザー入力を処理し、ツールと MCP サーバーを呼び出してアクションを実行し、応答を生成する個々のエージェント。 エージェントは、Azure OpenAI、OpenAI、Azure AI などのモデル プロバイダーをサポートします。
- ワークフロー: 複数のエージェントと関数を接続して複雑なマルチステップ タスクを実行するグラフ ベースのワークフロー。 ワークフローは、人間のループ内シナリオに対して、型ベースのルーティング、入れ子、チェックポイント処理、および要求/応答パターンをサポートします。
また、モデル クライアント (チャットの完了と応答)、状態管理用のエージェント スレッド、エージェント メモリのコンテキスト プロバイダー、エージェント アクションをインターセプトするためのミドルウェア、ツール統合用の MCP クライアントなど、基本的な構成要素も提供します。 これらのコンポーネントを組み合わせることで、インタラクティブで堅牢で安全な AI アプリケーションを構築する柔軟性とパワーが得られます。
別のエージェント フレームワークが必要な理由
セマンティック カーネル と AutoGen は 、AI エージェントとマルチエージェント オーケストレーションの概念を開拓しました。 Agent Framework は、同じチームによって作成された直接の後続タスクです。 これは、単一エージェントパターンとマルチエージェント パターンに対する AutoGen の単純な抽象化と、スレッドベースの状態管理、タイプ セーフ、フィルター、テレメトリ、広範なモデルと埋め込みのサポートなど、セマンティック カーネルのエンタープライズ レベルの機能を組み合わせています。 この 2 つをマージする以外に、Agent Framework では、開発者がマルチエージェント実行パスを明示的に制御できるワークフローに加えて、実行時間の長いシナリオと人間がループ内で実行するシナリオ向けの堅牢な状態管理システムが導入されています。 つまり、Agent Framework はセマンティック カーネルと AutoGen の両方の次世代です。
セマンティック カーネルまたは AutoGen からの移行の詳細については、セマンティック カーネル からの移行ガイド と AutoGen からの移行ガイドを参照してください。
セマンティック カーネルと AutoGen はどちらもオープンソース コミュニティから大きなメリットを得ていて、Agent Framework でも同様のメリットが期待されています。 Microsoft Agent Framework は投稿を歓迎し、新しい機能を使用して改善を続けます。
注
Microsoft Agent Framework は現在、パブリック プレビュー段階です。 GitHub リポジトリでフィードバックや問題を送信してください。
Important
Microsoft Agent Framework を使用して、サードパーティのサーバーまたはエージェントで動作するアプリケーションを構築する場合は、ご自身の責任で実行してください。 サードパーティのサーバーまたはエージェントと共有されているすべてのデータを確認し、データの保持と場所に関するサードパーティのプラクティスを認識することをお勧めします。 データが組織の Azure コンプライアンスと地理的境界の外に流れるかどうか、および関連する影響を管理するのは、お客様の責任です。
Installation
ニシキヘビ:
pip install agent-framework --pre
。網:
dotnet add package Microsoft.Agents.AI
AI エージェント
AI エージェントとは
AI エージェントは、LLM を使用してユーザー入力を処理し、意思決定を行い、ツールと MCP サーバーを呼び出してアクションを実行し、応答を生成します。 次の図は、AI エージェントにおけるコア コンポーネントとその相互作用を示しています。
AI エージェントは、 スレッド、 コンテキスト プロバイダー、 ミドルウェア などの追加コンポーネントで拡張して、その機能を強化することもできます。
AI エージェントを使用する場合
AI エージェントは、自律的な意思決定、アドホック計画、試用版とエラーの探索、会話ベースのユーザー操作を必要とするアプリケーションに適しています。 入力タスクが非構造化で、事前に簡単に定義できないシナリオで特に便利です。
AI エージェントが優れている一般的なシナリオを次に示します。
- カスタマー サポート: AI エージェントは、顧客からのマルチモーダル クエリ (テキスト、音声、画像) を処理し、ツールを使用して情報を検索し、自然言語の応答を提供できます。
- 教育と家庭教師: AI エージェントは、外部のナレッジ ベースを活用して、パーソナライズされた家庭教師を提供し、学生の質問に答えることができます。
- コード生成とデバッグ: ソフトウェア開発者向けに、AI エージェントは、さまざまなプログラミング ツールと環境を使用して、実装、コード レビュー、デバッグを支援できます。
- 研究支援: 研究者やアナリストにとって、AI エージェントは Web を検索し、ドキュメントを要約し、複数のソースからの情報をまとめることができます。
重要な点は、AI エージェントは、ユーザー要求を満たす手順の正確なシーケンスが事前にわからず、探索とユーザーとの緊密なコラボレーションが必要になる可能性がある、動的で指定されていない設定で動作するように設計されていることです。
AI エージェントを使用しない場合
AI エージェントは、高度に構造化され、定義済みのルールに厳密に準拠する必要があるタスクには適していません。 アプリケーションが特定の種類の入力を予測し、実行する操作のシーケンスが明確に定義されている場合、AI エージェントを使用すると、不必要な不確実性、待機時間、コストが発生する可能性があります。
タスクを処理する関数を記述できる場合は、AI エージェントを使用する代わりにこれを行います。 AI を使用して、その関数の記述に役立ちます。
1 つの AI エージェントが、複数のステップと意思決定ポイントを含む複雑なタスクに苦しむ場合があります。 このようなタスクには、1 つのエージェントで管理できない多数のツール (20 を超えるツールなど) が必要になる場合があります。
このような場合は、代わりにワークフローを使用することを検討してください。
Workflows
ワークフローとは
ワークフローは、一貫性と信頼性を維持しながら、コンポーネントとして AI エージェントを含めることができる、定義済みの一連の操作を表現できます。 ワークフローは、複数のエージェント、人間の相互作用、外部システムとの統合を伴う複雑で実行時間の長いプロセスを処理するように設計されています。
ワークフローの実行シーケンスを明示的に定義できるため、実行パスをより詳細に制御できます。 次の図は、2 つの AI エージェントと関数を接続するワークフローの例を示しています。
ワークフローでは、条件付きルーティング、モデルベースの意思決定、同時実行を使用して動的シーケンスを表現することもできます。 これは、 マルチエージェント オーケストレーション パターンを実装する 方法です。 オーケストレーション パターンは、複数の手順と決定ポイントを必要とする複雑なタスクで作業するように複数のエージェントを調整するメカニズムを提供し、単一のエージェントの制限に対処します。
ワークフローで解決される問題
ワークフローは、複数のステップ、決定ポイント、およびさまざまなシステムまたはエージェントとの対話を含む複雑なプロセスを管理するための構造化された方法を提供します。 タスク ワークフローの種類は、多くの場合、複数の AI エージェントを必要とするように設計されています。
Agent Framework ワークフローの主な利点を次に示します。
- モジュール性: ワークフローをより小さく再利用可能なコンポーネントに分割できるため、プロセスの個々の部分の管理と更新が容易になります。
- エージェントの統合: ワークフローでは、エージェント以外のコンポーネントと共に複数の AI エージェントを組み込むことができるため、タスクの高度なオーケストレーションが可能になります。
- 型の安全性: 厳密な型指定により、実行時エラーを防ぐ包括的な検証を使用して、コンポーネント間でメッセージが正しく流れるようにします。
-
柔軟なフロー: グラフベースのアーキテクチャにより、
executorsとedgesを使用して複雑なワークフローを直感的にモデル化できます。 条件付きルーティング、並列処理、動的実行パスがすべてサポートされています。 - 外部統合: 組み込みの要求/応答パターンにより、外部 API とのシームレスな統合が可能になり、人間のループ内シナリオがサポートされます。
- チェックポイント処理: チェックポイントを使用してワークフローの状態を保存し、サーバー側で実行時間の長いプロセスの復旧と再開を有効にします。
- マルチエージェント オーケストレーション: シーケンシャル、コンカレント、ハンドオフ、マゼンティックなど、複数の AI エージェントを調整するための組み込みパターン。
- 構成可能性: ワークフローを入れ子にしたり組み合わせたりして、より複雑なプロセスを作成できるため、スケーラビリティと適応性を実現できます。