次の方法で共有


Microsoft Foundry

Microsoft Agent Framework では、Microsoft Foundry プロジェクト エンドポイントからの直接モデル推論と、 Foundry Agent Service のサービスマネージド エージェントの両方がサポートされています。

はじめに

必要な NuGet パッケージをプロジェクトに追加します。

dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.Foundry --prerelease

2 種類のエージェント

Microsoft Foundry 統合では、次の 2 つの異なる使用パターンが公開されています。

タイプ 生成された型 説明 次の場合に使用します。
応答エージェント ChatClientAgent アプリは、 AIProjectClient.AsAIAgent(...)を介して実行時にモデル、命令、ツールをプログラムで提供します。 サーバー側エージェント リソースは作成されません。 エージェント定義を所有しており、シンプルで柔軟なセットアップが必要です。 これは、ほとんどのサンプルで使用されるパターンです。
Foundry エージェント (バージョニング済み) FoundryAgent サーバー管理 — エージェント定義は、Foundry ポータルを使用するか、 AIProjectClient.AgentAdministrationClientを使用してプログラムによって作成およびバージョン管理されます。 ProjectsAgentVersionまたはProjectsAgentRecordまたはAgentReferenceAIProjectClient.AsAIAgent(...)に渡します。 サービス API を使用して Foundry ポータルで管理される厳密なバージョン管理されたエージェント定義が必要です

応答エージェント (直接推論)

AsAIAgentAIProjectClientをモデルと命令と共に直接使用します。 これは、ほとんどのシナリオで推奨される開始点です。

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

AIAgent agent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
        .AsAIAgent(
            model: "gpt-4o-mini",
            name: "Joker",
            instructions: "You are good at telling jokes.");

Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));

Warnung

DefaultAzureCredential は開発には便利ですが、運用環境では慎重に考慮する必要があります。 運用環境では、待機時間の問題、意図しない資格情報のプローブ、フォールバック メカニズムによる潜在的なセキュリティ リスクを回避するために、特定の資格情報 ( ManagedIdentityCredential など) を使用することを検討してください。

このパスはコード優先であり、サーバーマネージド エージェント リソースは作成しません。

Foundry エージェント (バージョン付き)

AI Projects SDK のネイティブ AIProjectClient.AgentAdministrationClient API を使用して、バージョン管理されたエージェント リソースを取得し、 AsAIAgentでラップします。 エージェントは Foundry ポータルで直接作成および構成することも、 AIProjectClient.AgentAdministrationClientを使用してプログラムで構成することもできます。

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

var aiProjectClient = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential());

// Retrieve an existing agent by name (uses the latest version automatically)
ProjectsAgentRecord jokerRecord = await aiProjectClient.AgentAdministrationClient.GetAgentAsync("Joker");
FoundryAgent agent = aiProjectClient.AsAIAgent(jokerRecord);

Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));

Important

Foundry Agents のツールと命令は、作成されたツールや命令に厳密であり、実行時にツールや命令を変更することはサポートされていません。

エージェントの使用

ChatClientAgent (応答) とFoundryAgent (バージョン管理) の両方が標準AIAgent インスタンスであり、セッション、ツール、ミドルウェア、ストリーミングを含むすべての標準操作をサポートします。

AgentSession session = await agent.CreateSessionAsync();
Console.WriteLine(await agent.RunAsync("Tell me a joke.", session));
Console.WriteLine(await agent.RunAsync("Now make it funnier.", session));

エージェントを実行して操作する方法の詳細については、 エージェントの概要に関するチュートリアルを参照してください。

Python のファウンドリ

Python では、Foundry 固有のすべてのクライアントが agent_framework.foundry の下に住むようになりました。

  • agent-framework-foundry は、cloud Foundry コネクタ ( FoundryChatClientFoundryAgentFoundryEmbeddingClientFoundryMemoryProvider) を提供します。
  • agent-framework-foundry-local は、ローカル モデルの実行に FoundryLocalClient を提供します。

Important

このページでは、Microsoft Foundry プロジェクト エンドポイント、モデル エンドポイント、および Foundry Agent Service の現在の Python クライアントについて説明します。 スタンドアロンの Azure OpenAI リソース エンドポイント (https://<your-resource>.openai.azure.com) がある場合は、 OpenAI プロバイダー ページの Python ガイダンスを使用します。 サポートされているモデルをローカルで実行する場合は、 Foundry Local プロバイダーのページを参照してください。

Python での Foundry チャットとエージェント パターン

シナリオ Python 図形 次の場合に使用します。
Foundry Responses エンドポイントを使用したプレーン推論 Agent(client=FoundryChatClient(...)) アプリはエージェント定義、ツール、会話ループを所有しており、Foundry プロジェクトにモデルをデプロイする必要があります。
Foundry エージェント サービスにおけるサービス管理エージェント FoundryAgent(...) Foundry ポータルまたはサービス API で作成および構成された PromptAgent または HostedAgent に接続する必要があります。

Installation

pip install agent-framework-foundry
pip install azure-identity

同じ agent-framework-foundry パッケージには、Foundry モデルとエンドポイントの埋め込みの FoundryEmbeddingClient も含まれています。

コンフィギュレーション

FoundryChatClient

FOUNDRY_PROJECT_ENDPOINT="https://<your-project>.services.ai.azure.com"
FOUNDRY_MODEL="gpt-4o-mini"

FoundryAgent

FOUNDRY_PROJECT_ENDPOINT="https://<your-project>.services.ai.azure.com"
FOUNDRY_AGENT_NAME="my-agent"
FOUNDRY_AGENT_VERSION="1.0"

プロンプト エージェントの FOUNDRY_AGENT_VERSION を使用します。 ホストエージェントでは、これを省略できます。

FoundryEmbeddingClient

FOUNDRY_MODELS_ENDPOINT="https://<apim-instance>.azure-api.net/<foundry-instance>/models"
FOUNDRY_MODELS_API_KEY="<api-key>"
FOUNDRY_EMBEDDING_MODEL="text-embedding-3-small"
FOUNDRY_IMAGE_EMBEDDING_MODEL="Cohere-embed-v3-english"  # optional

FoundryChatClientFoundryAgent はプロジェクトエンドポイントを使用します。 FoundryEmbeddingClient では、個別のモデル エンドポイントが使用されます。

適切な Python クライアントを選択する

シナリオ 優先クライアント メモ
Azure OpenAI リソース OpenAIChatCompletionClient / OpenAIChatClient OpenAI プロバイダー ページを使用します。
Microsoft Foundry プロジェクトの推論 Agent(client=FoundryChatClient(...)) Foundry Responses エンドポイントを使用します。
Microsoft Foundry サービスマネージド エージェント FoundryAgent プロンプト エージェントと HostedAgents に推奨されます。
Microsoft Foundry モデル- エンドポイント埋め込み FoundryEmbeddingClient FOUNDRY_MODELS_ENDPOINTFOUNDRY_EMBEDDING_MODEL / FOUNDRY_IMAGE_EMBEDDING_MODELを使用します。
Foundry ローカル ランタイム Agent(client=FoundryLocalClient(...)) Foundry Local を参照してください。

を使用してエージェントを作成する FoundryChatClient

FoundryChatClient は Foundry プロジェクト内のデプロイ済みモデルに接続し、Responses エンドポイントを使用します。 アプリが命令、ツール、セッション処理を所有する必要がある場合は、標準の Agent とペアリングします。

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-4o-mini",
        credential=AzureCliCredential(),
    ),
    name="FoundryWeatherAgent",
    instructions="You are a helpful assistant.",
)

FoundryChatClient は、直接推論用の Foundry 優先の Python パスであり、ツール、構造化された出力、ストリーミングをサポートします。

を使用して埋め込みを作成する FoundryEmbeddingClient

Foundry モデル エンドポイントからテキストまたは画像を埋め込む場合は、 FoundryEmbeddingClient を使用します。

from agent_framework.foundry import FoundryEmbeddingClient

async with FoundryEmbeddingClient() as client:
    result = await client.get_embeddings(["hello from Agent Framework"])
    print(result[0].dimensions)

サービスマネージド エージェントにFoundryAgentを使用して接続する

エージェント定義が Foundry に存在する場合は、 FoundryAgent を使用します。 これは、プロンプト エージェントと HostedAgents に推奨される Python API です。

from agent_framework.foundry import FoundryAgent
from azure.identity import AzureCliCredential

agent = FoundryAgent(
    project_endpoint="https://your-project.services.ai.azure.com",
    agent_name="my-prompt-agent",
    agent_version="1.0",
    credential=AzureCliCredential(),
)

HostedAgent の場合は、 agent_version を省略し、代わりにホストされるエージェント名を使用します。

Warnung

以前の Python AzureAIClientAzureAIProjectAgentProviderAzureAIAgentClientAzureAIAgentsProvider、Azure AI 埋め込みの互換性サーフェスは、現在の agent_framework.azure 名前空間から削除されました。 現在の Python コードでは、アプリが命令とツールを所有する場合はFoundryChatClient、エージェント定義が Foundry に存在する場合はFoundryAgent、Foundry モデルのエンドポイント埋め込みにはFoundryEmbeddingClientを使用します。

エージェントの使用

FoundryChatClientFoundryAgentの両方が、ツールの呼び出し、セッション、ストリーミング応答など、標準的な Python Agent エクスペリエンスと統合されます。 ローカル ランタイムの場合は、個別の Foundry ローカル プロバイダー ページを使用します。

次のステップ