Standard エージェントのセットアップでは、カスタマー マネージドのシングルテナント Azure リソースを使用して、エージェントの状態を格納し、すべてのエージェント データを管理下に保持します。 完全なデータ主権、エンタープライズ セキュリティ ポリシーへの準拠、またはprojectレベルの分離が必要な場合は、標準セットアップを使用します。
このセットアップで行われる操作は以下の通りです。
- エージェントの状態 (会話、応答) は、独自のAzure リソースに格納されます。
- データ所在地とアクセスを完全に制御できます。
ヒント
Microsoftマネージド リソースを使用する簡単なセットアップについては、Environment のセットアップを参照し、基本的なエージェント セットアップ オプションを選択します。
[前提条件]
- Azure サブスクリプション。 無料で作成。
- Azure Cosmos DB for NoSQL のアカウント。 スループット要件については、 Cosmos DB のスループット要件に関する情報を参照してください。
- Azure Storage アカウント。
- Azure AI 検索 リソース。
- シークレット管理用の Azure Key Vault リソース。
- Azure CLI バージョン 2.50 以降。
az --versionを実行して確認します。 - 機能設定の展開を実行する ID のアクセス許可。 この ID には、アカウントとプロジェクトの作成以外に、ストレージ アカウントの ストレージ BLOB データ共同作成者 と Cosmos DB アカウントの Cosmos DB オペレーター が必要です。 Azure AI 検索は呼び出し元ロールを必要としません。 「エージェント機能設定の構成」を参照してください。
- デプロイされたエージェント互換モデル (gpt-4o など)。
リソースの概要
Important
標準のセットアップでは、すべてのエージェント データが Azure テナントにとどまるように、Bring Your Own (BYO) リソースが必要です。
| リソース | 格納される内容 |
|---|---|
| Azure Storage (BYO ファイルストレージ) | 開発者とエンドユーザーによってアップロードされたファイル |
| Azure AI 検索 (BYO 検索) | エージェントによって作成されたベクター ストア |
| Azure Cosmos DB (BYO スレッド ストレージ) | メッセージ、会話履歴、エージェントメタデータ |
Foundry Agent Service によって処理されるすべてのデータは、これらのリソースに自動的に保存され、コンプライアンス要件とエンタープライズ セキュリティ標準を満たすのに役立ちます。
Cosmos DB のスループット要件
NoSQL アカウントのAzure Cosmos DBには、少なくとも 3000 RU/秒の合計スループット制限が必要です。 プロビジョニングスループットモードとサーバーレスモードの両方がサポートされています。
Standard セットアップでは、それぞれ 1000 RU/秒を必要とする 5 つのコンテナーがプロビジョニングされます。
| コンテナ | 目的 |
|---|---|
thread-message-store |
エンドユーザーの会話 |
system-thread-message-store |
内部システム メッセージ |
agent-entity-store |
エージェント メタデータ (命令、ツール、名前) |
agent-definitions-v1 |
エージェント メタデータ (命令、ツール、名前、バージョン) |
run-state-v1 |
内部メッセージとエンド ユーザーの会話 |
thread-message-store、 system-thread-message-store、および agent-entity-store は、 Foundry Agent Service (クラシック) 標準セットアップの一部です。
Foundry Agent Service (新規) では、 agent-definitions-v1 と run-state-v1が使用されます。
古いコンテナーは クラシック エクスペリエンスに属しており、新しいランタイムでは使用されません。
Warnung
クラシック および新しい Foundry Agent Service ランタイムでは、異なる Cosmos DB コンテナーが使用されます。
プロジェクト・レベルのデータ分離
Standard セットアップでは、既定でproject レベルのデータ分離が適用されます。 ストレージ アカウントで自動的にプロビジョニングされる 2 つの Blob Storage: 1 つはファイル用、もう 1 つは中間システムデータ用 (チャンク、埋め込み)。 Cosmos DB アカウントには、3 つのコンテナーがプロビジョニングされます。1 つはユーザー スレッド用、1 つはシステム メッセージ用、1 つは命令、ツール、名前などのエージェント構成データ用です。 この既定の動作により、セットアップの複雑さが軽減され、プロジェクト間で厳密なデータ境界が適用されます。
機能の設定
機能設定は、Foundry アカウントと、エージェントの状態、ベクター データ、ファイルを保持するAzureリソースを宣言するプロジェクトのプロパティです。 アカウントにこれらを設定してプロジェクトのデフォルト値を定義し、特定のプロジェクトで異なるリソースが必要な場合は、そのプロジェクトごとに個別の設定を上書きします。
エージェント サービスは、プロビジョニング中に、必要な基になるインフラストラクチャとリソースへの接続をプロビジョニングします。 これらの機能設定で管理される接続は使用中は不変であるため、直接編集または削除することはできません。 既存のプロジェクトの機能設定を更新することもできません。 プロジェクトで使用するリソースを変更するには、目的の設定でプロジェクトを削除して再作成します。
完全な設定の一覧、アクセス許可、およびBicepの例については、「エージェント機能設定の構成」を参照してください。
リソースを段階的にプロビジョニングする
手動プロビジョニング
標準エージェントのセットアップに必要なすべてのリソースを手動でプロビジョニングするには、次の手順に従います。 完全なプロビジョニング プロセスに約 30 ~ 45 分かかります。
フェーズ 1: 依存リソースを作成する
- 次のリソースを作成または再利用します。 新しいリソースを作成するか、既存のリソース ID を渡すことができます。
- Azure Cosmos DB for NoSQL アカウント
- Azure Storage アカウント
- Azure AI 検索 リソース
- Azure Key Vault リソース (エージェント インフラストラクチャのシークレットと接続文字列の管理に使用)
- [省略可能]Azure アプリケーション Insights リソース
- [省略可能]既存の Foundry リソース
フェーズ 2: Foundry リソースと機能設定を作成する
- Microsoft Foundry リソースを作成します。
- アカウント レベルの接続を作成します。
- Application Insights リソースへのアカウント接続を作成します。
- gpt-4o または別のエージェント互換モデルをデプロイします。
- Cosmos DB アカウント、Azure AI 検索 サービス、ストレージ アカウントのリソース ID を参照して、アカウントの機能設定を設定します。
- projectを作成します。 個々のストアをオーバーライドしない限り、プロジェクトはアカウント機能の設定を継承します。 Agent Service は、この手順の一環として、必要な基になるインフラストラクチャとリソースへの接続をプロビジョニングします。
フェーズ 3: プロジェクトマネージド ID にランタイム ロールを割り当てる
プロジェクト管理 ID には、システム割り当て管理 ID (SMI) とユーザー割り当て管理 ID (UMI) の両方が含まれます。 これらのロールは、実行中のエージェントのランタイム アクセスを制御します。 これらは、デプロイする ID に必要なアクセス許可とは別であり、もう一方のアクセス許可に代わるものはありません。
- プロジェクト マネージド ID (SMI の場合) を次のロールに割り当てます。
- Cosmos DB リソースのアカウント レベルにおける Cosmos DB オペレーター。
- ストレージ アカウント リソースのアカウント レベルのストレージ アカウント共同作成者
フェーズ 4: 詳細なリソースアクセス許可を割り当てる
- 指定したリソース スコープに対して、project マネージド ID (SMI と UMI の両方) に次のロールを割り当てます。
-
Azure AI 検索:
- 検索インデックス データ共同作成者
- Search Serviceの共同作成者
-
Azure Blob ストレージ コンテナー:
<workspaceId>-azureml-blobstore- Storage BLOB データ共同作成者
-
Azure Blob ストレージ コンテナー:
<workspaceId>-azureml-agent- ストレージ BLOB データ所有者
-
Cosmos DB for NoSQL データベース:
enterprise_memory- Cosmos DB 組み込みデータ共同作成者
- スコープ: すべてのコンテナーを対象とするデータベース レベル (個々のコンテナー固有のロールの割り当ては必要ありません)。
-
Azure AI 検索:
フェーズ 5: 開発者アクセス権を付与する
プロジェクトでエージェントを作成または編集する必要があるすべての開発者に、プロジェクト スコープの Foundry User ロールを割り当てます。
Important
Foundry RBAC ロールの名前が最近変更されました。 Foundry User, Foundry Owner, Foundry Account Owner、および Foundry Project Manager は、以前は、AZURE AI ユーザー、Azure AI 所有者、Azure AI アカウント所有者、および AZURE AI Project Manager という名前でした。 名前の変更がロールアウトされている間、以前の名前が表示される場合があります。ロール ID とコア アクセス許可は、名前の変更によって変更されません。
Bicep テンプレートを使用する
既存の Azure OpenAI リソースを使用する
環境のセットアップの手順に従って、Foundry Tools アカウントのリソース ID を取得します。
標準エージェント テンプレート ファイルで、次のプレースホルダーを置き換えます。
existingAoaiResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{serviceName}
ファイル ストレージに既存のAzure Storage アカウントを使用する
Azure CLIにサインインし、ストレージ アカウントでサブスクリプションを選択します。
az login次のコマンドを実行して、storage アカウントのリソース ID を取得します。
az storage account show --resource-group <your-resource-group> --name <your-storage-account> --query "id" --output tsv出力は、テンプレートに必要な
aiStorageAccountResourceID値です。標準エージェント テンプレート ファイルで、次のプレースホルダーを置き換えます。
aiStorageAccountResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}
スレッド ストレージのNoSQL アカウントに既存のAzure Cosmos DBを使用する
foundry アカウントごとに、NoSQL アカウントのAzure Cosmos DBが作成されます。 スループット要件とマルチprojectスケーリングについては、Cosmos DB のスループット要件を参照してください。
注
Cosmos DB アカウントの RU/秒の容量が不足すると、デプロイ中にプロビジョニングエラーが発生します。
Azure CLIにサインインし、Cosmos DB アカウントでサブスクリプションを選択します。
az login次のコマンドを実行して、Azure Cosmos DB アカウントのリソース ID を取得します。
az cosmosdb show --resource-group <your-resource-group> --name <your-cosmosdb-account> --query "id" --output tsv出力は、テンプレートに必要な
cosmosDBResourceId値です。標準エージェント テンプレート ファイルで、次のプレースホルダーを置き換えます。
cosmosDBResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{cosmosDbAccountName}
既存のAzure AI 検索 リソースを使用する
Azure CLIにサインインし、検索リソースを含むサブスクリプションを選択します。
az login次のコマンドを実行して、Azure AI 検索リソース ID を取得します。
az search service show --resource-group <your-resource-group> --name <your-search-service> --query "id" --output tsv標準エージェント テンプレート ファイルで、次のプレースホルダーを置き換えます。
aiSearchServiceResourceId:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Search/searchServices/{searchServiceName}
セットアップを確認する
プロビジョニングが完了したら、セットアップが正しく動作していることを確認します。
- Azure ポータルで、Foundry プロジェクトに移動し、すべての接続 (Storage、Cosmos DB、AI Search) がプロジェクト設定の下に表示されることを確認します。
- プロジェクトの GET が、アカウントから継承された値を含め、期待する機能設定を返していることを確認します。
- 各リソースの Access control (IAM) ページに移動し、プロジェクトマネージドID に予期されるロールがあることを確認することで、ロールの割り当てを確認します。
- エンド ツー エンドの機能を確認するテスト エージェントを作成します。
一般的な問題のトラブルシューティング
| 症状 | 原因 | 解決策 |
|---|---|---|
| プロビジョニングが Cosmos DB スループット エラーで失敗する | Cosmos DB のスループットが不十分 | Cosmos DB アカウントに少なくとも 3000 RU/秒 (コンテナーあたり 1000 RU/秒× 3 つのコンテナー) があることを確認します。 複数のプロジェクトの場合は、プロジェクトの数を乗算します。 |
403 Forbidden エージェントがファイルの読み取りまたは書き込みを行うとき |
ストレージロールの割り当てが見つかりません | プロジェクト マネージド ID が、 コンテナーに <workspaceId>-azureml-blobstore、 コンテナーに <workspaceId>-azureml-agentであることを確認します。 |
SearchIndexNotFound または 403 上での検索操作 |
検索ロールが見つからない | プロジェクトのマネージド ID が、Azure AI 検索 リソースに対して Search Index Data Contributor と Search Service Contributor の両方を持っていることを確認します。 |
AuthorizationFailed エージェントの作成時または編集時 |
ユーザーロールがありません | プロジェクトスコープで、開発者に Foundry User ロールを割り当てます。 |
| リソースがプロビジョニングされる前にデプロイが失敗する | デプロイ ID にプロビジョニング ロールがありません | 呼び出し元が ストレージ BLOB データ共同作成者 と Cosmos DB オペレーターを保持であることを確認します。 「エージェント機能設定の構成」を参照してください。 |