Agent Framework には、次の 2 つの主要なカテゴリの機能が用意されています。
| Description | |
|---|---|
| エージェント | 入力の処理、 ツール と MCP サーバーの呼び出し、応答の生成に LLM を使用する個々のエージェント。 Azure OpenAI、OpenAI、Anthropic、Ollama などをサポートします。 |
| ワークフロー | グラフベースのワークフローで、タイプセーフなルーティング、チェックポイント処理、および人間を巻き込んだサポートを使用して、マルチステップタスクのエージェントと関数を接続します。 |
また、モデル クライアント (チャットの完了と応答)、状態管理用のエージェント セッション、エージェント メモリのコンテキスト プロバイダー、エージェント アクションをインターセプトするためのミドルウェア、ツール統合用の MCP クライアントなど、基本的な構成要素も提供します。 これらのコンポーネントを組み合わせることで、インタラクティブで堅牢で安全な AI アプリケーションを構築する柔軟性とパワーが得られます。
概要
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;
AIAgent agent = new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")!),
new AzureCliCredential())
.GetChatClient("gpt-4o-mini")
.AsAIAgent(instructions: "You are a friendly assistant. Keep your answers brief.");
Console.WriteLine(await agent.RunAsync("What is the largest city in France?"));
pip install agent-framework --pre
credential = AzureCliCredential()
client = AzureOpenAIResponsesClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
deployment_name=os.environ["AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME"],
credential=credential,
)
agent = client.as_agent(
name="HelloAgent",
instructions="You are a friendly assistant. Keep your answers brief.",
)
# Non-streaming: get the complete response at once
result = await agent.run("What is the largest city in France?")
print(f"Agent: {result}")
これは、LLM を呼び出して応答を返すエージェントです。 ここから、ツール、複数ターンの会話、ミドルウェア、ワークフローを追加して、運用アプリケーションを構築できます。
エージェントとワークフローを使用する場合
| エージェントを使用する場合... | ワークフローを使用する場合... |
|---|---|
| タスクは、オープン エンドまたは会話型です | プロセスには明確に定義された手順があります |
| 自律的なツールの使用と計画が必要です | 実行順序を明示的に制御する必要がある |
| 1 回の LLM 呼び出し (場合によってはツールを使用) で十分です | 複数のエージェントまたは関数が連携する必要がある |
タスクを処理する関数を記述できる場合は、AI エージェントを使用する代わりにこれを行います。
エージェント フレームワークの理由
Agent Framework は、AutoGen の単純なエージェント抽象化とセマンティック カーネルのエンタープライズ機能 (セッション ベースの状態管理、タイプ セーフ、ミドルウェア、テレメトリ) を組み合わせ、明示的なマルチエージェント オーケストレーション用のグラフベースのワークフローを追加します。
セマンティック カーネル と 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 コンプライアンスと地理的境界の外に流れるかどうか、および関連する影響を管理するのは、お客様の責任です。
次のステップ
より深く進む: