ツールの概要

Agent Framework では、エージェント機能を拡張するさまざまな種類のツールがサポートされています。 ツールを使用すると、エージェントは外部システムとの対話、コードの実行、データの検索などを行うことができます。

ツールの種類

ツールの種類 Description
関数ツール エージェントが会話中に呼び出すことができるカスタム コード
コード インタープリター サンドボックス環境でコードを実行する
ファイル検索 アップロードしたファイルを検索する
Web 検索 Web で情報を検索する
ホストされている MCP ツール プロバイダー ランタイムによって呼び出された MCP サーバー
ローカル MCP ツール ローカルまたはカスタム ホスト上で実行されている MCP サーバー
Foundry ツールボックス Foundry プロジェクトで管理される、ホストされているツール構成の名前付きバージョン付きバンドル
ツールの種類 Description
関数ツール エージェントが会話中に呼び出すことができるカスタム コード
コード インタープリター サンドボックス環境でコードを実行する
ファイル検索 アップロードしたファイルを検索する
Web 検索 Web で情報を検索する
ホストされている MCP ツール プロバイダー ランタイムによって呼び出された MCP サーバー
ローカル MCP ツール ローカルまたはカスタム ホスト上で実行されている MCP サーバー
Foundry ツールボックス Foundry プロジェクトで管理される、ホストされているツール構成の名前付きバージョン付きバンドル
画像生成 Foundry/OpenAI Responses ランタイムでのホストされたイメージの生成
Shell OpenAI 応答ランタイムでのホストシェルの実行 - GitHub Copilot CLI の組み込みのシェル/ファイル/URL ランタイム ツールとは異なります
Bingグラウンディング Bing Search リソースを使用した独自の Grounding を使用した Web グラウンド — 試験段階
Bingカスタム検索 Bing、キュレーションされたドメイン リストに限定された接地 - プレビュー
Azure AI 検索 Foundry 接続を使用してAzure AI 検索インデックスのクエリを実行する (試験段階)
SharePoint SharePointコンテンツの答え - プレビュー
Microsoft Fabric Fabric データ エージェントのクエリを実行する - プレビュー
メモリ検索 Foundry マネージド メモリ ストアを検索する - プレビュー
コンピュータ利用 デスクトップ環境またはブラウザー環境を駆動する - プレビュー
ブラウザーの自動化 Azure Playwright を使用してブラウザーを駆動する - プレビュー
エージェント対エージェント (A2A) ツール Foundry エージェントからツールとしてリモート A2A エージェントを呼び出す - プレビュー

試験段階またはプレビュー段階とマークされたツールは、関連するプロバイダー ページに文書化され、プロセスで初めて使用されるときにExperimentalWarningが出力されます。

ツールの承認

ツール承認 は、モデルが結果を受け取る前に、人間がループ内で決定することで、すべてのツール呼び出し (関数ツール、ホステッド ツール、MCP ツール呼び出し) をゲートできるフレームワーク機能です。 これは、.NETとPythonの両方でフレームワークの関数呼び出しチャット クライアントによって処理されるため、クライアントがツールをローカルで呼び出すプロバイダーで動作します。プロバイダーごとの機能ではありません。 承認がセッション、ストリーミング、ミドルウェアとやり取りする方法など、完全なパターンについては、「 ツールの承認」 ページを参照してください。

プロバイダー サポート マトリックス

OpenAI プロバイダーと Azure OpenAI プロバイダーは、それぞれ異なるツール機能を備えた 2 種類のクライアント (応答とチャットの完了) を提供します。 Azure OpenAI クライアントは、OpenAI に相当するものをミラー化します。 Copilot Studio および A2A エージェントはリモート サービスで実行されるため、エージェント フレームワーク クライアントを介してではなく、リモート エージェントで機能が構成されます。これらはマトリックスに一覧表示されません。

ツールの種類 応答 チャットの完了 ファウンドリ Anthropic オラマ GitHub Copilot
関数ツール
コード インタープリター
ファイル検索
Web 検索
ホストされている MCP ツール
ローカル MCP ツール

Responses および Chat Completion 列は、OpenAI と Azure OpenAI の両方に適用されます。Azureバリアントは、OpenAI 対応するツールサポートと同じツール サポートを反映しています。 非推奨の OpenAI Assistants API は文書化されなくなりました。移行ガイダンスについては、Semantic Kernel 移行ガイド を参照してください。

プロバイダー サポート マトリックス

OpenAI プロバイダーと Azure OpenAI プロバイダーはそれぞれ、異なるツール機能を備えた複数のクライアントの種類を提供します。 Azure OpenAI クライアントは、OpenAI に相当するものをミラー化します。 Foundry 列はFoundryChatClientに適用されます。FoundryAgentの場合、ツールは Foundry エージェント定義で構成されます (FoundryAgentの動作と機能しない機能を参照)。 Copilot Studio および A2A エージェントはリモート サービスで実行されるため、エージェント フレームワーク クライアントを介してではなく、リモート エージェントで機能が構成されます。これらはマトリックスに一覧表示されません。

ツールの種類 応答 チャットの完了 ファウンドリ Anthropic オラマ Foundry Local GitHub Copilot
関数ツール ⚠️¹ ⚠️¹
コード インタープリター
ファイル検索
Web 検索
画像生成
ホステッド シェル (get_shell_tool)
組み込みのシェル/ファイル システム/URL フェッチ ✅²
ホストされている MCP ツール
ローカル MCP ツール
Foundry ツールボックス
Bing接地 (試験段階)
Bing カスタム検索 (プレビュー)
Azure AI 検索 (試験段階)
SharePoint (プレビュー)
Microsoft Fabric (プレビュー)
メモリ検索 (プレビュー)
コンピューターの使用 (プレビュー)
ブラウザーの自動化 (プレビュー)
エージェント間 (A2A) ツール (プレビュー)

¹ 関数呼び出しをサポートする選択されたローカル モデルに依存します。 ² GitHub Copilot CLI ランタイムに組み込まれており、アクセス許可ハンドラーによって制御されます。 OpenAI の get_shell_toolとは異なるサーフェス。

Responses および Chat Completion 列は、OpenAI と Azure OpenAI の両方に適用されます。Azureバリアントは、OpenAI 対応するツールサポートと同じツール サポートを反映しています。 ローカル MCP ツールは、関数ツールをサポートする任意のプロバイダーと連携します。

エージェントを関数ツールとして使用する

エージェントを別のエージェントの関数ツールとして使用して、エージェントの構成とより高度なワークフローを有効にすることができます。 内部エージェントは関数ツールに変換され、外部エージェントに提供され、必要に応じて呼び出すことができます。

.AsAIFunction()AIAgentを呼び出して、別のエージェントに提供できる関数ツールに変換します。

// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You answer questions about the weather.",
        name: "WeatherAgent",
        description: "An agent that answers questions about the weather.",
        tools: [AIFunctionFactory.Create(GetWeather)]);

// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You are a helpful assistant.",
        tools: [weatherAgent.AsAIFunction()]);

// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

Warnung

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

エージェント .as_tool() 呼び出して、別のエージェントに提供できる関数ツールに変換します。

import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential

# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    name="WeatherAgent",
    description="An agent that answers questions about the weather.",
    instructions="You answer questions about the weather.",
    tools=get_weather
)

# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    instructions="You are a helpful assistant.",
    tools=weather_agent.as_tool()
)

# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)

ツール名、説明、引数名をカスタマイズすることもできます。

weather_tool = weather_agent.as_tool(
    name="WeatherLookup",
    description="Look up weather information for any location",
    arg_name="query",
    arg_description="The weather query or location"
)

次のステップ