このクイック スタートでは、Foundry Agent Service でホストされるエージェントをデプロイして呼び出します。 ワークフローに合った開発ツールまたは SDK を選択します。
GitHub Copilotなどのコーディング エージェントを使用する場合は、Microsoft Foundry スキルを使用して開発パスを選択し、セットアップ、デプロイ、および呼び出しの手順を完了できます。
前提 条件
開始する前に、次のものが必要です。
- Azure サブスクリプション。 お持ちでない場合は、 無料で作成してください。
- 既存の Foundry プロジェクトがある場合、プロジェクト スコープで
Foundry Project Managerが必要です。 新しい Foundry プロジェクトを作成する必要がある場合は、リソース グループ スコープでOwnerロールが必要です。 完全なロール マトリックスについては、 ホストされるエージェントのアクセス許可のリファレンスを参照してください。
azd microsoft.foundry拡張機能。azdのインストール後に拡張機能をインストールして確認します。azd ext install microsoft.foundry認証された
azdセッション。 拡張機能をインストールした後にサインインします。azd auth login
Azure CLIインストールされ、認証されます。
az loginこのクイック スタートで使用する Python SDK パッケージ:
pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenvデプロイされたモデルを持つ既存の Foundry プロジェクト。 このクイック スタートの Python SDK パスは、ホストされたエージェント バージョンを作成してルーティングしますが、新しい Foundry プロジェクトをスキャフォールディングしたり、モデル デプロイを作成したりすることはありません。 完全なプロビジョニング ワークフローが必要な場合は、この記事の Azure Developer CLI タブを使用します。
Azure CLIインストールされ、認証されます。
az loginこのクイック スタートで使用する.NET パッケージ。
dotnet add package Azure.AI.Projects --version 2.1.0-beta.4 dotnet add package Azure.IdentityNote
ソース コードデプロイ API は現在、プレリリース バージョンの
Azure.AI.Projectsで利用できます。 安定した 2.0.x パッケージには、これらの API は含まれていません。デプロイされたモデルを持つ既存の Foundry プロジェクト。 C# SDK パスは、ホストされるエージェント バージョンを作成してルーティングしますが、Foundry プロジェクトまたはモデルのデプロイは作成しません。 完全なプロビジョニング ワークフローについては、Azure Developer CLI タブを使用します。
Microsoft Foundry Canvas 拡張機能。 これをインストールするには、GitHub Copilot アプリで [設定]>Plugins を開き、
microsoft-foundryを検索して、[インストール] を選択します。 詳細については、「Foundry Canvas Microsoftとは」を参照してください。Azure Developer CLI (azd) 1.27.1 以降。 キャンバスでは、
azdを使用してエージェントをテストおよびデプロイします。azd microsoft.foundry拡張機能。azdのインストール後に拡張機能をインストールして確認します。azd ext install microsoft.foundry
Microsoft Foundry Skill がインストールされているコーディング エージェント ホスト。
Azure CLIおよびAzure Developer CLI (azd) がインストールされ、認証されます。
az login azd auth login
手順 1: サンプル エージェントを初期化する
空のディレクトリにある基本的な Agent Framework サンプル を使用して、新しいホストされたエージェントを初期化します。
azd ai agent init -m "https://github.com/microsoft-foundry/foundry-samples/blob/main/samples/python/hosted-agents/agent-framework/responses/01-basic/azure.yaml" --deploy-mode code
対話型フローでは、次の入力を求めます:
- エージェント名: 名前をカスタマイズするか、既定の agent-framework-agent-basic-responses をそのまま使用します
- Foundry Project: [新しい Foundry projectを作成する] または [既存の Foundry projectを使用する] を選択します
- テナント: Azure テナントを選択します
- サブスクリプション: Azure サブスクリプションを選択する
- Location: Azureリージョンを選択します
- モデル: 既定の gpt-5.4-mini、またはアクセスできる別のモデルを選択します
- モデルのバージョン: 既定 のオプションを選択する
- モデル SKU: Batch ではない使用可能なクォータ (通常は Standard または GlobalStandard) のオプションを選択します
- デプロイ容量: 既定の 10 を選択します
- デプロイ名: 既定の gpt-5.4-mini を選択します
完了すると、 AZD プロジェクトに AI エージェント定義が正常に追加されます。 新しく作成したエージェント フォルダーにディレクトリを変更します。
cd agent-framework-agent-basic-responses
手順 2: Azure リソースをプロビジョニングする
azure.yamlで定義されているリソースをプロビジョニングします。
azd provision
手順 3: エージェントをローカルでテストする
azd ai agent run
このコマンドは、仮想環境を作成し、依存関係をインストールし、startupCommandで定義されているazure.yamlを使用してエージェントを起動し、エージェントとチャットできるようにブラウザーでエージェントインスペクターを開きます。
手順 4: Foundry エージェント サービスにデプロイする
エージェントのソース コードをデプロイします。
azd ソースを ZIP ファイルとしてパッケージし、Foundry にアップロードします。 Foundry は依存関係を解決し、ホストされたエージェントをリモートでビルドしてデプロイします。
azd deploy
コマンドが完了すると、出力にエージェントプレイグラウンドとエージェント エンドポイントへのリンクが表示されます。
Deploying services (azd deploy)
Done: Deploying service basic-agent
- Agent playground (portal): https://ai.azure.com/.../build/agents/basic-agent/build?version=1
- Agent endpoint: https://ai-account-<name>.services.ai.azure.com/api/projects/<project>/agents/basic-agent/versions/1
手順 5: エージェントを呼び出す
デプロイされたエージェントに同じプロンプトを送信します。
azd ai agent invoke "Write a haiku about deploying cloud applications."数秒以内に俳句の応答が表示されます。
(省略可能)エージェントとの対話中にコンテナー ログをストリーミングします。
azd ai agent monitor --follow
手順 1: Foundry プロジェクトを作成または選択する
Foundry ポータルを開き、Foundry プロジェクトを作成するか、既存のプロジェクトを選択します。
プロジェクトで、
gpt-5.4-miniなどのチャット対応モデルをデプロイします。ポータルから次の値をコピーします。
- 概要 から プロジェクト エンドポイント
- デプロイ名(Build>Deployments の)。
手順 2: 基本的なサンプル エージェント コードをダウンロードする
Foundry サンプル リポジトリを複製します。
git clone https://github.com/microsoft-foundry/foundry-samples.git
手順 3: Python環境を作成し、設定を構成する
仮想環境を作成し、このクイックスタートに必要なPython パッケージをインストールします。
macOS または Linux の場合:
python -m venv .venv
source .venv/bin/activate
pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenv
Windows PowerShell の場合:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install "azure-ai-projects>=2.3.0" azure-identity python-dotenv
配置スクリプトの作業フォルダーを作成し、そのフォルダーに .env ファイルを作成します。
FOUNDRY_PROJECT_ENDPOINT=<your-project-endpoint>
FOUNDRY_MODEL_NAME=<your-model-deployment-name>
FOUNDRY_HOSTED_AGENT_NAME=basic-agent
FOUNDRY_SAMPLE_PATH=<full-path-to-foundry-samples/samples/python/hosted-agents/agent-framework/responses/01-basic/src/agent-framework-agent-basic-responses>
手順 4: Pythonを使用してホステッド エージェントをデプロイする
deploy_hosted_agent.pyと同じ作業フォルダーに.envという名前のファイルを作成し、次の内容を指定します。
import os
import tempfile
import time
import zipfile
from pathlib import Path
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
AgentEndpointConfig,
CodeConfiguration,
CodeDependencyResolution,
FixedRatioVersionSelectionRule,
HostedAgentDefinition,
ProtocolConfiguration,
ProtocolVersionRecord,
ResponsesProtocolConfiguration,
VersionSelector,
)
from azure.identity import DefaultAzureCredential
from dotenv import load_dotenv
load_dotenv()
endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
model_name = os.environ["FOUNDRY_MODEL_NAME"]
agent_name = os.environ.get("FOUNDRY_HOSTED_AGENT_NAME", "basic-agent")
sample_path = Path(os.environ["FOUNDRY_SAMPLE_PATH"]).resolve()
def create_code_zip(source_dir: Path) -> Path:
zip_path = Path(tempfile.gettempdir()) / f"{agent_name}.zip"
excluded = {".git", ".venv", "__pycache__", ".env", "deploy_hosted_agent.py"}
with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zip_file:
for path in source_dir.rglob("*"):
if not path.is_file():
continue
if any(part in excluded for part in path.parts):
continue
zip_file.write(path, path.relative_to(source_dir))
return zip_path
def wait_for_active_version(project_client: AIProjectClient, version: str) -> None:
for attempt in range(60):
time.sleep(10)
details = project_client.agents.get_version(
agent_name=agent_name,
agent_version=version,
)
status = details["status"]
print(f"Provisioning status: {status} (attempt {attempt + 1}/60)")
if status == "active":
return
if status == "failed":
raise RuntimeError(f"Hosted agent provisioning failed: {dict(details)}")
raise RuntimeError("Timed out waiting for the hosted agent version to become active.")
code_zip_path = create_code_zip(sample_path)
with (
code_zip_path.open("rb") as code_stream,
DefaultAzureCredential() as credential,
AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
):
original_agent_endpoint = None
created = None
try:
created = project_client.agents.create_version_from_code(
agent_name=agent_name,
description="Basic hosted agent deployed from local Python source.",
definition=HostedAgentDefinition(
cpu="0.5",
memory="1Gi",
code_configuration=CodeConfiguration(
runtime="python_3_14",
entry_point=["python", "main.py"],
dependency_resolution=CodeDependencyResolution.REMOTE_BUILD,
),
environment_variables={
"FOUNDRY_PROJECT_ENDPOINT": endpoint,
"FOUNDRY_MODEL_NAME": model_name,
},
protocol_versions=[
ProtocolVersionRecord(protocol="responses", version="2.0.0")
],
),
code=code_stream,
)
print(f"Created hosted agent version {created.version}")
wait_for_active_version(project_client, created.version)
original_agent_endpoint = project_client.agents.get(
agent_name=agent_name
).agent_endpoint
project_client.agents.update_details(
agent_name=agent_name,
agent_endpoint=AgentEndpointConfig(
version_selector=VersionSelector(
version_selection_rules=[
FixedRatioVersionSelectionRule(
agent_version=created.version,
traffic_percentage=100,
),
]
),
protocol_configuration=ProtocolConfiguration(
responses=ResponsesProtocolConfiguration()
),
),
)
print(f"Agent endpoint configured for version {created.version}")
with project_client.get_openai_client(agent_name=agent_name) as openai_client:
response = openai_client.responses.create(
input="Write a haiku about deploying cloud applications.",
)
print(f"Agent response: {response.output_text}")
finally:
if original_agent_endpoint is not None:
project_client.agents.update_details(
agent_name=agent_name,
agent_endpoint=original_agent_endpoint,
)
print("Agent endpoint restored")
if created is not None:
project_client.agents.delete_version(
agent_name=agent_name,
agent_version=created.version,
force=True,
)
print(f"Deleted hosted agent version {created.version}")
スクリプトを実行します。
python deploy_hosted_agent.py
このスクリプトは、サンプル ソースを zip 圧縮し、新しい hosted-agent バージョンとしてアップロードし、プロビジョニングが完了するまで待機し、ホストされたエージェント エンドポイントをそのバージョンに一時的にルーティングし、デプロイされたエージェントを呼び出してから、以前のエンドポイント構成を復元して、一時バージョンを削除します。
手順 5: エージェントを呼び出す
スクリプトが完了したら、次のいずれかの方法でホストされるエージェントを使用します。
-
deploy_hosted_agent.pyを編集し、inputに渡されるopenai_client.responses.create(...)値を変更してから、スクリプトをもう一度実行します。 - 一時的な検証デプロイではなく永続的なルーティング バージョンが必要な場合は、トラフィック ルーティングの影響を確認した後、復元と
delete_version(...)の手順をスキップするようにスクリプトを調整します。 - サンプル スクリプトを記述どおりに使用した場合は、エンドポイント構成が既に復元され、検証後に一時的にホストされるエージェントのバージョンが削除されます。
- このクイック スタート用の専用リソース グループを作成した場合は、プロジェクトまたはモデルのデプロイが不要になった後、Azure ポータルからリソース グループを削除できます。
警告
リソース グループを削除すると、Foundry プロジェクト、モデルデプロイ、Container Registry、Application Insights、ホステッド エージェントなど、その中のすべてのものが完全に削除されます。
手順 1: Foundry プロジェクトを作成または選択する
Foundry ポータルを開き、Foundry プロジェクトを作成するか、既存のプロジェクトを選択します。
プロジェクトで、
gpt-5.4-miniなどのチャット対応モデルをデプロイします。ポータルから次の値をコピーします。
- 概要 から プロジェクト エンドポイント
- デプロイ名(Build>Deployments の)。
手順 2: C# hello-world エージェントをダウンロードする
Foundry サンプル リポジトリを複製します。
git clone https://github.com/microsoft-foundry/foundry-samples.git
エージェント ソースは samples/csharp/hosted-agents/agent-framework/hello-world/src/hello-world-dotnet-agent-framework にあります。
手順 3: C# 配置プロジェクトを作成する
コンソール アプリケーションを作成し、必要なパッケージをインストールします。
dotnet new console --name HostedAgentDeployer
cd HostedAgentDeployer
dotnet add package Azure.AI.Projects --version 2.1.0-beta.4
dotnet add package Azure.Identity
デプロイ アプリケーションが使用する値を設定します。 PowerShell で、以下を実行します。
$env:FOUNDRY_PROJECT_ENDPOINT = "<your-project-endpoint>"
$env:FOUNDRY_MODEL_NAME = "<your-model-deployment-name>"
$env:FOUNDRY_HOSTED_AGENT_NAME = "basic-agent"
$env:FOUNDRY_SAMPLE_PATH = "<full-path-to-hello-world-dotnet-agent-framework>"
macOS または Linux の場合は、次を実行します。
export FOUNDRY_PROJECT_ENDPOINT="<your-project-endpoint>"
export FOUNDRY_MODEL_NAME="<your-model-deployment-name>"
export FOUNDRY_HOSTED_AGENT_NAME="basic-agent"
export FOUNDRY_SAMPLE_PATH="<full-path-to-hello-world-dotnet-agent-framework>"
手順 4: C を使用してホストされるエージェントをデプロイする#
Program.csの内容を次のコードに置き換えます。 .NET SDK はソース ディレクトリをパッケージ化してアップロードするため、ZIP アーカイブを自分で作成する必要はありません。
using Azure.AI.Extensions.OpenAI;
using Azure.AI.Projects;
using Azure.AI.Projects.Agents;
using Azure.Identity;
using OpenAI.Responses;
#pragma warning disable AAIP001, OPENAI001
var projectEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT")
?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT isn't set.");
var modelName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL_NAME")
?? throw new InvalidOperationException("FOUNDRY_MODEL_NAME isn't set.");
var agentName = Environment.GetEnvironmentVariable("FOUNDRY_HOSTED_AGENT_NAME")
?? "basic-agent";
var samplePath = Environment.GetEnvironmentVariable("FOUNDRY_SAMPLE_PATH")
?? throw new InvalidOperationException("FOUNDRY_SAMPLE_PATH isn't set.");
AIProjectClient projectClient = new(
endpoint: new Uri(projectEndpoint),
tokenProvider: new DefaultAzureCredential());
HostedAgentDefinition definition = new(cpu: "0.5", memory: "1Gi")
{
Versions =
{
new ProtocolVersionRecord(ProjectsAgentProtocol.Responses, "2.0.0")
},
CodeConfiguration = new(
runtime: "dotnet_10",
entryPoint: ["dotnet", "hello-world.dll"],
dependencyResolution: CodeDependencyResolution.RemoteBuild),
};
definition.EnvironmentVariables.Add(
"FOUNDRY_PROJECT_ENDPOINT", projectEndpoint);
definition.EnvironmentVariables.Add(
"AZURE_AI_MODEL_DEPLOYMENT_NAME", modelName);
ProjectsAgentVersion? created = null;
AgentEndpointConfiguration? originalEndpoint = null;
try
{
created = await projectClient.AgentAdministrationClient
.CreateAgentVersionFromCodeAsync(
agentName: agentName,
filePath: samplePath,
metadata: new AgentVersionFromCodeMetadata(definition));
Console.WriteLine($"Created hosted agent version {created.Version}");
for (var attempt = 1; attempt <= 60; attempt++)
{
await Task.Delay(TimeSpan.FromSeconds(10));
created = await projectClient.AgentAdministrationClient
.GetAgentVersionAsync(agentName, created.Version);
Console.WriteLine(
$"Provisioning status: {created.Status} (attempt {attempt}/60)");
if (created.Status == AgentVersionStatus.Active)
{
break;
}
if (created.Status == AgentVersionStatus.Failed)
{
throw new InvalidOperationException("Hosted agent provisioning failed.");
}
}
if (created.Status != AgentVersionStatus.Active)
{
throw new TimeoutException(
"Timed out waiting for the hosted agent version to become active.");
}
ProjectsAgentRecord agent = await projectClient.AgentAdministrationClient
.GetAgentAsync(agentName);
originalEndpoint = agent.AgentEndpoint;
AgentEndpointConfiguration endpoint = new()
{
VersionSelector = new(
[new FixedRatioVersionSelectionRule(created.Version, 100)]),
ProtocolConfiguration = new()
{
Responses = new ResponsesProtocolConfiguration()
}
};
await projectClient.AgentAdministrationClient.PatchAgentAsync(
agentName,
new PatchAgentOptions { AgentEndpoint = endpoint });
Console.WriteLine($"Agent endpoint configured for version {created.Version}");
ProjectResponsesClient responsesClient = projectClient.ProjectOpenAIClient
.GetProjectResponsesClientForAgentEndpoint(agentName);
ResponseResult response = await responsesClient.CreateResponseAsync(
"Write a haiku about deploying cloud applications.");
Console.WriteLine($"Agent response: {response.GetOutputText()}");
}
finally
{
if (originalEndpoint is not null)
{
await projectClient.AgentAdministrationClient.PatchAgentAsync(
agentName,
new PatchAgentOptions { AgentEndpoint = originalEndpoint });
Console.WriteLine("Agent endpoint restored");
}
if (created is not null)
{
await projectClient.AgentAdministrationClient.DeleteAgentVersionAsync(
agentName,
created.Version,
force: true);
Console.WriteLine($"Deleted hosted agent version {created.Version}");
}
}
このコードは、.NETコード エージェント サンプルのAzure SDKからのソース アップロードとエンドポイント ルーティングのパターンに従います。
アプリケーションを実行します。
dotnet run
アプリケーションは C# エージェント ソースをアップロードし、プロビジョニングを待機し、エージェント エンドポイントを新しいバージョンにルーティングし、プロンプトを送信し、前のルートを復元して、一時バージョンを削除します。
手順 5: エージェントを呼び出す
アプリケーションが完了したら、次のいずれかの方法でホストされるエージェントを使用します。
-
Program.csで、CreateResponseAsyncに渡されたプロンプトを変更し、もう一度dotnet run実行します。 - ルーティング されたバージョンを維持するには、トラフィック ルーティングの影響を確認した後、エンドポイントの復元と
DeleteAgentVersionAsyncの呼び出しを削除します。 - C# アプリケーションを記述どおりに使用した場合、エンドポイント構成が復元され、検証後に一時的にホストされるエージェントのバージョンが削除されます。
- このクイック スタート用の専用リソース グループを作成した場合は、プロジェクトまたはモデルのデプロイが不要になったら、Azure ポータルからリソース グループを削除します。
警告
リソース グループを削除すると、Foundry プロジェクト、モデルデプロイ、Container Registry、Application Insights、ホステッド エージェントなど、その中のすべてのものが完全に削除されます。
手順 1: Foundry プロジェクトを作成する
- コマンド パレット (Ctrl + Shift + P) を開き、Foundry Toolkit: Create Project を選択します。
- Azure サブスクリプションを選択します。
- 新しいリソース グループを作成するか、既存のリソース グループを選択します。
- Foundry プロジェクトの名前を入力します。
手順 2: モデルをデプロイする
- コマンド パレットを開き、[ Foundry Toolkit: Open Model Catalog]\(Foundry Toolkit: モデル カタログを開く\) を選択します。
-
gpt-4.1を検索し、[デプロイ] を選択します。 - モデルのデプロイ ページで、Microsoft Foundry にデプロイ を選択します。
手順 3: ホステッド エージェント プロジェクトを作成する
- コマンド パレットを開き、[ Foundry Toolkit: Create new Hosted Agent]\(Foundry Toolkit: 新しいホステッド エージェントの作成\) を選択します。
- 言語として Python を選択します。
- Framework で、Agent Framework を選択します。
- プロトコルの種類として [Responses API ] を選択します。
- サンプル コードとして [ 基本 ] を選択します。
- [次へ] ボタンを選択します。
- プロジェクト ファイルのフォルダーを選択し、エージェントの名前を入力します。
- [Environment Setup]\(環境のセットアップ\) で、[Set up with Microsoft Foundry] を選択します。 コンテンツには、手順 1 と 2 で作成したプロジェクトとモデルが自動的に設定されます。
- [作成] ボタンを選択します。
新しい VS Code ウィンドウが開き、プロジェクトがアクティブなワークスペースとして表示されます。
手順 4: 依存関係をインストールする
仮想環境を作成し、要件をインストールします。
macOS または Linux の場合:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Windows PowerShell の場合:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
手順 5: エージェントをローカルでテストする
F5 キーを押して、デバッグが有効になっているローカル HTTP サーバーを起動します。 Foundry Toolkit Agent Inspector が対話型テスト用に開き、コードにブレークポイントを設定できます。
デバッグなしでサーバーを実行するには:
python main.py
エージェントは http://localhost:8088/ でリスニングしています。 curl (または任意の HTTP クライアント) を使用してテスト プロンプトを送信します。
curl -sS -H "Content-Type: application/json" -X POST http://localhost:8088/responses \
-d '{"input": "Write a haiku about deploying cloud applications.", "stream": false}'
手順 6: Foundry Agent Service にデプロイする
- コマンド パレットを開き、 Foundry Toolkit: Deploy Hosted Agent を選択します。 デプロイ Web ビューが開きます。
- [デプロイ方法] で、[コード] を選択します。
- パッケージ モードとして [リモート ] を選択します。
- エージェント名が自動的に設定されます。
- [次へ] ボタンを選択します。
- 確認とデプロイ ページは自動入力されます。
- [デプロイ] ボタンを選択します。
デプロイが完了すると、Foundry Toolkit エクスプローラーの [ホストされたエージェント] にエージェント が表示されます。
手順 7: エージェントを呼び出す
- Foundry Toolkit エクスプローラーで、[ Hosted Agents]\(ホストされたエージェント \) を展開し、エージェントを選択します。 詳細ページには、[ デプロイの詳細] の下の状態が表示されます。
-
[プレイグラウンド] タブを選択し、
Write a haiku about deploying cloud applications.などのテスト プロンプトを送信します。
Microsoft Foundry Canvas では、GitHub Copilot アプリのサイド パネルからホストされたエージェントをビルドしてデプロイする手順を示します。 キャンバスで選択を行うたびに、各ステップが Foundry プロジェクトに含まれる関連コンテキストとともに Copilot に渡されます。
手順 1: キャンバスを開く
GitHub Copilot アプリで、Copilot に Foundry ホステッド エージェントを作成するよう指示します。 例えば次が挙げられます。
Create a Foundry hosted agent using Microsoft Foundry Canvas右側のパネルにキャンバスが開きます。 自動的に開かない場合は、右側のパネルから開きます。
キャンバスでは、次の手順にマップされる 3 つのステージについて説明します。
- ホストされるエージェントを作成します。 Foundry プロジェクトを選択し、何を作りたいかを Copilot に伝えます。 事前に書き込まれたプロンプトから開始して、処理を高速化できます。
- ホストされるエージェントをビルドします。 Foundry プロジェクトのリソースから、エージェントのモデル、ツールボックス、スキル、ガードレールを選択します。
- デプロイとテスト。 エージェントをローカルでテストし、問題がなければ Foundry Agent Service にデプロイします。
手順 2: Foundry プロジェクトを接続する
- キャンバス プロジェクト メニューを開き、メッセージが表示されたらAzureにサインインします。
- サブスクリプションを選択します。
- Foundry プロジェクトを選択します。 キャンバスは、再び開いたときにこの選択を保持します。
手順 3: エージェントをスキャフォールディングする
開始方法を選択します。
- 生成されたアイデアからホストされたエージェントをスキャフォールディングするには、[ 自分にインスピレーション を与える] を選択します。
- 基本的なエージェントから開始する Hello world サンプル プロンプトを選択します。
Copilotは、選択に基づいてワークスペース内のエージェント コードをスキャフォールディングします。
手順 4: エージェントを構成する
このステージでは、Foundry プロジェクト内のリソースにエージェントを接続します。 選択するたびに、Copilotにプロンプトが送信され、エージェントのコードと構成が更新されます。
- デプロイされたモデルを選択して、エージェントの推論に力を入れる。
- Foundry ツールボックスとそのツールを接続して、API の呼び出しやコードの実行などのエージェント機能を提供します。
- エージェントが使用する再利用可能なロジックをパッケージ化する スキル を接続します。
- ガードレールを割り当てて、安全性とコンテンツコントロールを適用します。
手順 5: エージェントをローカルでテストする
[ ローカルで検査] を選択します。 キャンバスは、Copilot 統合ターミナルで
azd ai agent runを実行し、ポート8088でエージェントを待ち、Agent Inspector を埋め込みます。次のようなテスト プロンプトを送信します。
Write a haiku about deploying cloud applications.インスペクターからエラーが報告された場合は、キャンバス プロンプト領域にエラー メッセージをコピーし、Copilotに問題を解決するように依頼します。
手順 6: Foundry Agent Service にデプロイする
-
Foundry にデプロイ を選択します。 キャンバスでは、
azdとCopilotを使用して、ホストされたエージェントをデプロイします。 - デプロイが完了したら、出力のリンクを使用して、Foundry ポータルでエージェントのプレイグラウンドを開きます。
手順 1: Foundry スキルを使用してワークスペースを開く
Visual Studio Code、Copilot CLI、Claude Code のGitHub Copilotなど、コーディング エージェント ホストで空のフォルダーを開きます。 コーディング エージェントにAzureリソースの作成を依頼する前に、microsoft-foundry スキルが使用可能であることを確認します。
スキルを利用できない場合は、コーディング エージェントで Microsoft Foundry スキルを使用するに従ってください。
手順 2: スキルに、ホスト型エージェントを作成するよう依頼する
完全な hosted-agent ワークフローにスキルを使用するようにコーディング エージェントに依頼します。
Use the Microsoft Foundry Skill hosted-agent quick-start workflow to create my
first hosted agent end to end. Verify my environment first, and stop if I need
to sign in myself. Use Python 3.13, Agent Framework, the Responses API, the
Basic sample, and code deployment. Create a new Foundry project unless I provide
an existing project. Use the model deployment from the Basic sample unless I
provide an existing deployment. Test the agent locally, deploy it to Foundry
Agent Service, and invoke it with: "Write a haiku about deploying cloud
applications."
コーディング エージェントは、MCP ツールが使用可能な場合に使用可能な Foundry ツールを検査し、ホストされたエージェントのクイック スタート ワークフローを読み込み、サブスクリプション、リージョン、プロジェクト名、既存の Foundry プロジェクトを使用するかどうかなどの欠損値を要求するか、または既定の欠損値を要求する必要があります。
手順 3: プランを確認して承認する
- 計画、ファイル、コマンド、Azureリソース、およびコーディング エージェントが提案するロールの割り当てを確認します。
- このクイック スタートと一致するには、Python 3.13、Agent Framework、Responses API、基本的なサンプル コード、およびコードのデプロイを選択します。
- サブスクリプション、リージョン、リソース グループ、モデルのデプロイ、クォータを確認した後にのみ、コストを要するリソースの作成を承認します。
- コーディング エージェントから認証を求められた場合は、
az loginを実行して自分でazd auth loginしてから、コーディング エージェントに続行するように依頼します。
手順 4: スキルをスキャフォールディングして、エージェントをテストする
コーディング エージェントでホストされるエージェント プロジェクトを作成し、新しい Foundry プロジェクトを選択するときにリソースをプロビジョニングし、ローカル環境の値を書き込み、ローカル環境を準備し、ローカル スモーク テストを実行します。 Python エージェントの場合、スキル ワークフローでは、最初のローカル実行時にazd ai agent runを使用して依存関係をインストールします。
また、ワークフローでは、コーディング エージェント ホストに必要なプロジェクト ガイダンス ファイルを追加し、生成されたプロジェクト構成をローカル テストの前にサニティ チェックする必要があります。
コーディング エージェント ホストがスモーク テスト用にローカル サーバーを実行したままにできない場合は、この記事の Azure Developer CLI タブを使用してローカル テスト コマンドを実行します。 エージェントをリモートで検証することにした後にのみ、デプロイを続行できます。
手順 5: ホストされているエージェントをデプロイして呼び出す
ローカル スモーク テストが成功したら、デプロイとリモート検証を完了するようにコーディング エージェントに依頼します。
Continue with the Microsoft Foundry Skill workflow. Deploy the hosted agent to
Foundry Agent Service, show the deployment status and playground link, and invoke
it remotely with: "Write a haiku about deploying cloud applications." If the
skill workflow requires evaluation suite generation before the final summary,
submit the generation job and show me the follow-up eval command.
ワークフローが完了すると、コーディング エージェントには、ホストされているエージェント名、バージョン、デプロイの状態、エンドポイント、プレイグラウンド リンク、作成されたリソース、テスト プロンプトへの応答、評価のフォローアップ コマンドが表示されます。
リソースのクリーンアップ
完了したらリソースを削除して、料金の発生を停止します。
警告
現在の azd 環境で Foundry プロジェクトが作成された場合、 azd down はプロジェクトのリソース グループとその中のすべてのリソース グループを完全に削除します。 初期化中に既存のプロジェクトを選択した場合、 azd down はプロジェクト、そのリソース グループ、ホストされているエージェント、およびその他のクイック スタート リソースはそのまま残ります。 既存のプロジェクトから不要になったリソースを削除するには、それらを個別に削除します。
azd down
環境でプロジェクトが作成されると、 azd はリソースの一覧を表示し、確認を求め、約 2 ~ 5 分で削除します。
- Azure ポータルを開き、エージェントを含むリソース グループに移動します。
- [ リソース グループの削除] を選択し、確認するリソース グループ名を入力して、[削除] を選択 します。
警告
リソース グループを削除すると、Foundry プロジェクト、Container Registry、Application Insights、ホステッド エージェントなど、その中のすべてのものが完全に削除されます。
キャンバスは azdベースのワークスペースを作成するため、ワークスペース フォルダーから azd down でクリーンアップします。
警告
現在の azd 環境で Foundry プロジェクトが作成された場合、 azd down はプロジェクトのリソース グループとその中のすべてのリソース グループを完全に削除します。 初期化中に既存のプロジェクトを選択した場合、 azd down はプロジェクト、そのリソース グループ、ホストされているエージェント、およびその他のクイック スタート リソースはそのまま残ります。 既存のプロジェクトから不要になったリソースを削除するには、それらを個別に削除します。
azd down
環境でプロジェクトが作成されると、 azd はリソースの一覧を表示し、確認を求め、約 2 ~ 5 分で削除します。
Microsoft Foundry スキルは、それ自体でリソースを削除しません。 このクイック スタートで作成したリソースをコーディング エージェントが特定し、適切なクリーンアップ方法を選択するのに役立ちます。 確認して承認した後も、ユーザーまたはコーディング エージェントはクリーンアップ コマンドを実行します。
ホストされるエージェント プロジェクト フォルダーで、クリーンアップを確認するようにコーディング エージェントに依頼します。
Use the Microsoft Foundry Skill to identify the Azure resources created for this quickstart. Confirm whether azd down is the right cleanup method for this project, and show me the resources before any deletion command runs.ホストされるエージェント プロジェクトが
azdで作成され、リソース グループにクイック スタート リソースのみが含まれている場合は、次を実行します。azd down削除を承認するのは、コマンドが一覧表示するリソース グループとリソースを確認した後だけです。
コーディング エージェントでクリーンアップ コマンドを実行できない場合は、この記事の Azure Developer CLI タブを使用するか、Azure ポータルからリソース グループを削除します。
トラブルシューティング
| 問題 | ソリューション |
|---|---|
SubscriptionNotRegistered |
プロバイダー (az provider register --namespace Microsoft.CognitiveServices) を登録します。 |
AuthorizationFailed プロビジョニング中 |
サブスクリプションまたはリソース グループでの 共同作成者 ロールを申請します。 |
AuthenticationError または DefaultAzureCredential エラー |
資格情報を更新するには、 azd auth logout を実行してから azd auth loginします。 |
ResourceNotFound または DeploymentNotFound |
Build>Deployments の Foundry ポータルで、エンドポイントの URL とモデルのデプロイ名を確認します。 |
create_version_from_code は Hosted agent provisioning failed で失敗する |
main.pyとrequirements.txtがアップロードした zip のルートにあることを確認し、.env内のモデル デプロイ名がターゲット Foundry プロジェクトに存在することを確認します。 |
Connection refused ローカル実行時 |
他のプロセスでポート 8088 が使用されていないことを確認します。 |
azd ai agent init 失敗 |
azd versionを実行して 1.27.1 以降を確認します。
winget upgrade Microsoft.Azd (Windows) または brew upgrade azd (macOS) で更新します。
azd ext show azure.ai.agentsを実行して、1.0.0-beta.4 以降を確認します。
azd ext upgrade azure.ai.agentsを使用してアップグレードします。 |
| Microsoft Foundry Toolkit 拡張機能が見つかりません | Marketplace から Microsoft Foundry Toolkit for Visual Studio Code をインストールし、プレリリース チャネルに切り替えます。 |
| コーディング エージェントで Microsoft Foundry スキルを読み込めない | 「エージェントのコーディングでMicrosoft Foundry スキルを使用する」に従って、スキルをインストールまたは再読み込みします。 |
| コーディングエージェントはローカルスモークテストを実行できない | ローカル テストには、この記事の Azure Developer CLI または VS Code タブを使用します。 ローカル検証が使用できない理由を確認した後にのみ、リモート検証に進みます。 |
Windows ARM64 でのローカルでの実行が、aiohttp、grpcio、cryptography、または httptools のビルド エラーで失敗する |
これらのパッケージに対して事前構築済みの arm64 ホイールは発行されず、ソース ビルドには C++ ビルド ツールMicrosoft必要があります。 回避策として、手順 3 をスキップし、 azd deploy の後に azd ai agent invokeを続けて、エージェントをリモートで検証します。 |
完全なアクセス許可とロールの割り当てのマトリックスについては、 ホストされるエージェントのアクセス許可のリファレンスを参照してください。
学習した内容
このクイック スタートでは、次の操作を行います。
- Basic エージェント サンプルを基に、ホスト型エージェント プロジェクトのひな形を作成しました。
- Pythonまたは C# SDK を使用してホストされるエージェント バージョンをアップロードしてルーティングするか、Azure Developer CLI を使用してサンプルをスキャフォールディングしました。
- エージェントをローカルでテストしました。
- エージェントを Foundry Agent Service にデプロイしました。
- Pythonまたは C# SDK、Azure Developer CLI、VS Code、Foundry キャンバス、または Microsoft Foundry スキルを使用するコーディング エージェントからテスト プロンプトを送信しました。