モジュール 1 - プロジェクトとモデルを準備する
これは、オプション: Foundry を組み込むの最初のモジュールです。ツールとカタログを準備してから、Copilot で Foundry プロジェクトを作成し、エージェントを構築する前にデプロイ済みのモデルをテストします。
このモジュールでは、次の内容に取り組みます。
- Azure のコマンド ライン ツールと Azure Skills Plugin をインストールする。
- カタログをエクスポートし、Foundry での作業を計画する。
- モデルを選択してデプロイし、カタログの情報の範囲を守れるかテストする。
シナリオ
Tailspin Toys には、カタログにある事実と、会社が提供していない情報とを区別できるコンシェルジュが必要です。評価の高いパズル ゲームを紹介するのは役立つおすすめですが、そのゲームの資金調達総額を作り上げてはいけません。チームは、本格的なアシスタントの開発に取り組む前に、選んだモデルがその境界を守れることを確かめたいと考えています。
前提条件とセットアップ
Azure で Backer Concierge をホストし、Copilot CLI の支援を受けながら作業を進めます。まず、Copilot が Azure リソースを操作するためのコマンド ライン ツールとプラグインを準備します。
クリーンアップの手順は、シリーズを完了する場合だけでなく、このモジュールで終了する場合にも適用されます。
-
Azure サブスクリプションがあることを確認します。必要な場合は、$200 分のクレジット付きの無料 Azure サブスクリプションや、$100 分のクレジット付きの Azure for Studentsなどの選択肢があります。
-
Tailspin Toys の codespace に戻り、ターミナルを開きます。
-
開発コンテナーに Azure CLI をインストールします。
Terminal window curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bashaz version -
az loginで Azure CLI にサインインし、az account showで正しいサブスクリプションを使っていることを確認します。 -
Azure Developer CLI バージョン 1.27.1 以降をインストールします。Microsoft Foundry では、ホスト型エージェントのテストとデプロイに
azdを使います。Terminal window curl -sL https://aka.ms/install-azd.sh | bashazd version -
azd auth loginで Azure Developer CLI にサインインし、azd config showで正しいサブスクリプションを使っていることを確認します。 -
Azure Developer CLI (azd) の Foundry 拡張機能をインストールします。
Terminal window azd ext install microsoft.foundry -
コマンド パレットから、新しい Copilot CLI セッションを横に開きます。Command+Shift+P (Mac) または Ctrl+Shift+P (Windows/Linux) を押し、Chat: New Copilot CLI session to the side を選択します。
-
Azure Skills マーケットプレースを追加します。この操作が必要なのは、プラグインを初めてインストールするときだけです。
/plugin marketplace add microsoft/azure-skills -
Azure Skills Plugin をインストールします。このプラグインは、Azure スキル、Azure MCP Server、Foundry MCP Server を GitHub Copilot CLI に追加します。
/plugin install azure@azure-skills -
プラグインによって Azure MCP サーバーが構成されたことを確認します。
/mcp list -
スキルや MCP サーバーが表示されない場合は、
/skills reloadまたは/restartを試し、再度確認します。
スキルは Copilot にワークフローを教え、MCP サーバーは Azure リソースの確認や操作を可能にします。
作業用ブランチを準備する
前の演習で、ほかの機能ブランチを作成してプッシュしている場合があります。エージェントの作業を分離するため、このオプション シリーズは最新の main ブランチから始めます。
-
シェルのターミナルで
mainに切り替え、最新の変更をプルし、Backer Concierge 用のブランチを作成します。Terminal window git checkout maingit pullgit checkout -b foundry-agent-cli
カタログをエクスポートする
エージェントには、読み取り可能なファイル形式のカタログが必要です。Tailspin Toys のサンプルには、このためのテスト済みエクスポート スクリプトが含まれています。
-
Copilot CLI に戻り、次を入力します。
Install the project dependencies, seed the database, then run the existing db:export script. Show me the command output and summarize the shape and grounding limits of db/catalog.json.Copilot は、次と同等のコマンドを実行するはずです。
Terminal window npm installnpm run db:setupnpm run db:export
-
db/catalog.jsonを開きます。21 個のゲームが含まれ、それぞれにタイトル、説明、カテゴリ、パブリッシャー、星評価があることを確認します。noteフィールドには、カタログに資金調達総額、支援者数、支援プラン、発売日が含まれないと記載されています。価格、プレイ人数、プレイ時間のフィールドもありません。こうした情報の欠如が、エージェントが守るべき境界を定めます。
Foundry での作業を計画する
Copilot が Azure リソースを作成したり、エージェントのコードを追加したりする前に、プラン モードで予定するワークフローを明確にします。
-
次のプロンプトを入力します。
/plan Use the Microsoft Foundry Skill to plan a Backer Concierge hosted agent for this existing Tailspin Toys repository. Use a public Foundry project, Python 3.13, Microsoft Agent Framework, the Responses API, the Basic sample, and code deployment. Keep the agent in agent/backer-concierge and keep one azure.yaml at the repository root. Ground every answer in db/catalog.json, preserve conversation context, and add focused tests. Include project setup, model selection, local testing, deployment, remote invocation, estimated cost-bearing resources and cleanup. -
提案された計画を確認します。Copilot が
microsoft-foundryスキルを使う予定であり、ホスト型エージェントを既存の Astro アプリケーションから分離していることを確認します。懸念事項や予想外の内容があれば、進める前に修正を依頼してください。 -
方針に納得できたら、プラン モードを終了します。
Foundry プロジェクトとモデルをセットアップする
エージェントには Foundry プロジェクトとデプロイ済みのモデルが必要です。Microsoft Foundry Skill を使い、サブスクリプション内の現在の提供状況とクォータに基づいて選択します。
-
Copilot にプロジェクトの作成を依頼します。リソースの作成を承認する前に、選択したサブスクリプション、リージョン、クォータ、推定コストを確認します。
Use the Microsoft Foundry Skill to create a public Foundry project for this project. Use the resource group rg-tailspin-toys and project name tailspin-toys.
-
プロジェクトの準備ができたら、Copilot にモデルの提案を依頼します。
Use the Microsoft Foundry Skill to recommend two or three current chat models available in the tailspin-toys project for the Backer Concierge acceptance criteria in the issue titled "Add a Backer Concierge assistant for catalog questions". Prioritize low latency, instruction following, grounding fidelity, available quota, and models that aren't approaching retirement. There is no complex math or multi-step planning. Explain the tradeoffs and wait for me to choose a model from the recommended options.Copilot から、推奨された選択肢の中からモデルを選ぶよう求められる場合があります。

以降の手順では
gpt-5.4-miniを使いますが、提供状況とクォータはリージョンによって異なります。 -
推奨された選択肢からモデルを選び、Copilot に選択したモデルのデプロイを依頼します。デプロイを承認する前に、容量とコストを確認します。
Deploy the model we selected to the tailspin-toys Foundry project and use the model name as the deployment name. Choose an SKU with available quota, ask me to confirm the capacity before deployment. After deployment, show me the deployment status.
モデルの提供状況は変わります。適切なのは、例に固定で指定されたモデルではなく、プロジェクトで利用可能だと Copilot が確認したモデルです。
デプロイ済みのモデルをテストする
ホスト型エージェントを構築する前に、モデルが Backer Concierge のグラウンディング(根拠となる情報に基づいて回答すること)のルールを守るかテストします。エージェントのコードや構成は使わず、予定している指示とカタログのコンテキストでテストします。
まず、サインイン中のアカウントに、モジュール 2 でのホスト型エージェント開発用の Foundry Project Manager ロールと、モデルを直接呼び出して推論するための Cognitive Services OpenAI User ロールを付与します。その後、カタログに含まれない情報も要求する、カタログに関する質問をします。
-
新しいターミナルを開き、アカウント、プロジェクト、ユーザーの値を設定します。
<foundry-account-name>は、プロジェクト作成時に表示された Foundry アカウント名に置き換えます。Terminal window SUBSCRIPTION_ID=$(az account show --query id --output tsv)USER_OBJECT_ID=$(az ad signed-in-user show --query id --output tsv)FOUNDRY_ACCOUNT="<foundry-account-name>"ACCOUNT_SCOPE=$(az cognitiveservices account show --name "$FOUNDRY_ACCOUNT" --resource-group rg-tailspin-toys --query id --output tsv)PROJECT_SCOPE="$ACCOUNT_SCOPE/projects/tailspin-toys" -
Foundry Project Manager ロールを割り当てます。
Terminal window az role assignment create \--assignee-object-id "$USER_OBJECT_ID" \--assignee-principal-type User \--role "Foundry Project Manager" \--scope "$PROJECT_SCOPE" \--subscription "$SUBSCRIPTION_ID" -
Cognitive Services OpenAI User ロールを割り当てます。
Terminal window az role assignment create \--assignee-object-id "$USER_OBJECT_ID" \--assignee-principal-type User \--role "Cognitive Services OpenAI User" \--scope "$ACCOUNT_SCOPE" \--subscription "$SUBSCRIPTION_ID" -
Copilot CLI に戻り、次を入力します。
Use the Microsoft Foundry Skill to test my deployed model directly in the tailspin-toys project without creating an agent. Ground it with content from @db/catalog.json and ask: "I love puzzle games about tracking down bugs. What should I back, and how much funding has it raised?" Show me the response and useful metadata like tokens used and response time (only if you can obtain it). Do not change files or create resources.
-
回答を確認します。カタログに実在するゲームだけを勧め、カタログの正しい詳細を使い、資金調達に関する情報がないことを説明している必要があります。モデルがタイトル、ゲームの詳細、資金調達総額を作り上げた場合は、続行する前に別の推奨モデルと比較してください。
このテストは、一時的な指示とカタログのコンテキストを使って、デプロイ済みのモデルだけをテストするものです。エージェントのテストではありません。モジュール 2 では、ひな形を作成した後にテストを繰り返し、ホスト型エージェントのコード、パッケージ化、会話の動作を検証します。
まとめと次のステップ
Azure ツールを準備し、カタログをエクスポートして、デプロイ済みのモデルが Backer Concierge のグラウンディング ルールに従うかテストしました。このモジュールのチェックポイントは、不足している情報を作り上げずに、カタログに実在するゲームを勧めるモデルです。
次は、同じリポジトリ、foundry-agent-cli ブランチ、Copilot CLI セッション、Foundry プロジェクト、選択したモデルのデプロイを使って、エージェントを構築してデプロイします。ここで終了する場合は、継続的なコストを避けるために Azure リソースをクリーンアップしてください。