Azure Developer CLI を使用してホステッド エージェント プロジェクトを初期化する

Important

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能がサポートされていないか、機能が制限されている可能性があります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

azd ai agent init を使用して、Microsoft Foundry に AI エージェントをビルド、テスト、デプロイするために必要なファイルが含まれたホステッド エージェント プロジェクトを作成します。 この記事では、開始点を選択し、テンプレート、独自のコード、または既存の Foundry プロジェクトに対してプロジェクトを初期化します。

GitHub Copilotなどのコーディング エージェントを使用する場合、Microsoft Foundry スキルは、開始テンプレートの選択、プロジェクトのスキャフォールディング、生成されたazd構成の解釈に役立ちます。

前提条件

  • Azure Developer CLI Foundry 拡張機能がインストールされています。
  • 認証されたAzure セッション (azd auth login)。
  • Azure サブスクリプションに対する共同作成者アクセス。

開始点を選択する

プロジェクトを開始するには、3 つの方法があります。 状況に一致するパスを選択します。

Consideration テンプレートから開始 Bring Your Own Code 既存のプロジェクトを接続する
最適な用途 新しいエージェント、ツールを学習します。 Foundry でホストする既存のエージェント コード。 Foundry プロジェクトで既に稼働しているエージェント。
命令 azd ai agent init を空のディレクトリに格納します。 azd ai agent init 既存のコードを含むディレクトリに格納されます。 azd ai agent initをクリックし、既存のプロジェクトを選択します。
受け取るもの 完全にスキャフォールドされたプロジェクト: 単一の azure.yamlsrc/<agent-name>/ 配下のエージェントソース、およびコンテナー展開用の Dockerfile。 インフラストラクチャは既定では Bicep なしで、後で書き出すことができます。 生成された azure.yaml のサービスエントリ、コンテナー展開用の、コードをラップした Dockerfile。 インフラストラクチャは既定では Bicep なしで、後で書き出すことができます。 既存の Foundry プロジェクトに接続された azure.yaml。 インフラストラクチャは既定では Bicep なしで、後で書き出すことができます。
コードの変更 なし。 実行準備完了。 プロトコル アダプターが必要な場合があります。 なし。

テンプレートから初期化する

空のディレクトリで対話型ウィザードを実行し、[ テンプレートから新規に開始] を選択します。

azd ai agent init

ウィザードでは、次の選択肢について説明します。

プロンプト Description
エージェント テンプレート フレームワークと言語 (Pythonまたは.NET) 別に整理されたテンプレートから選択します。
Azure サブスクリプション Foundry プロジェクトの検索または作成に使用されるサブスクリプション。
鋳造プロジェクト 既存のプロジェクトを選択するか、新しいプロジェクトを作成します。 作成する場合は、リージョンも選択します。
モデルデプロイ 既存のモデル デプロイを選択するか、テンプレートの既定値から作成されます。

エージェント名はテンプレートから取得されます。 CLI は、azdという名前の<directory>-dev環境を作成し、選択した Foundry プロジェクトの詳細を使用して構成します。 各テンプレートには、エージェントのソース コード、 Dockerfileazure.yaml ファイルが含まれています。このファイルは、 azd プロジェクトとホステッド エージェント構成の統合プロジェクト マニフェストとして機能します。

azure.yaml URL から初期化する

特定のエージェント サンプルがある場合は、-mをそのサンプルのazure.yamlに指定してください。 CLI では、そのファイルがプロジェクト マニフェストとして採用され、参照されるエージェント ソースがダウンロードされます。

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

Note

エージェント マニフェスト (agent.manifest.yaml) とスタンドアロン エージェント定義 (agent.yaml) は非推奨です。 Foundry azd 拡張機能 (azure.ai.agents 1.0.0-beta.1) の時点では、ホストされているすべてのエージェント構成は 1 つの azure.yamlに存在します。 ホストされるエージェントについては、「Azure.yaml の作成」を参照してください。

-m オプションは引き続きレガシ エージェント マニフェスト URL を受け入れますが、現在のサンプルでは統合azure.yamlを発行しています。

モデルを指定する

初期化時にモデルを選択します。

azd ai agent init --model gpt-4.1

または、Foundry プロジェクトで既存のモデル 配置を使用します。

azd ai agent init --model-deployment my-deployment

デプロイ モードを選択する

既定では、azd ai agent initはPythonプロジェクトと.NET プロジェクトにコード展開を使用します。 コード展開では、ソースが ZIP パッケージとしてアップロードされます。 代わりにコンテナー ベースのプロジェクトをスキャフォールディングするには、 --deploy-mode container渡します。

azd ai agent init --deploy-mode container

事前構築済みのコンテナー イメージをデプロイするには、 --image--agent-nameを渡します。 このオプションは、テンプレートと言語の選択、コード スキャフォールディング、Dockerfile の生成、およびAzure Container Registryセットアップをスキップします。

azd ai agent init --agent-name my-agent --image myregistry.azurecr.io/my-agent:v1

テンプレートを非インターアクティブに参照する

スキャフォールディングする前にカタログを検査したり、スクリプトから azd ai agent init を実行したりするには、カタログを一覧表示します。

# Everything in the catalog
azd ai agent sample list

# Just the featured Python agent samples
azd ai agent sample list --featured-only --language python --type agent

# Full azd templates only, as JSON for scripting
azd ai agent sample list --type azd --output json

各エントリには、スキャフォールディング先のディレクトリでコピーして実行する、すぐに実行できる initCommand が含まれています。

Tip

別の Foundry エージェント ID でサンプルを再利用する場合は、--agent-name <new-name>azd ai agent init渡して、azure.yamlに書き込まれた名前がサンプルの既定の名前と競合しないようにします。

既存のコードから初期化する

既存のPythonまたは.NETエージェント コードがある場合は、コードが既に含まれているディレクトリ内でazd ai agent initを実行します。

cd my-agent/
azd ai agent init

CLI は、既存のファイルを検出し、コードを上書きすることなく、それらのファイルの周囲に azure.yaml サービス エントリを生成します。 コンテナーのデプロイでは、Dockerfile も追加されます。 後で「インフラストラクチャ アズ コード」として書き出さない限り、インフラストラクチャはデフォルトでは bicep なしのままです。

エージェント コードは、 ホストされるエージェント ランタイム コントラクトを満たしている必要があります。

  • ポート 8088 でリッスンします。
  • GET /readiness でヘルス プローブを公開します。
  • サポートされているプロトコル (responses または invocations) のいずれかを処理します。

コードでこれらのプロトコルの 1 つがまだ読み上げられない場合は、 Foundry プロトコルとエージェントのロジックの間で変換される軽量 SDK ラッパーであるプロトコル アダプターを追加します。

既存の azd プロジェクトにエージェントを追加するには、 init プロジェクトを検出し、既存の azure.yamlに新しいサービス エントリを追加します。 --srcを使用してサブディレクトリを指定します。

azd ai agent init --src src/my-agent

既存の Foundry プロジェクトに接続する

azdを使用して既存の Foundry プロジェクトを管理するには、ウィザードを実行し、既存のプロジェクトに接続するオプションを選択します。 また、プロジェクトのAzure リソース ID を直接指定することで、対話型の選択をスキップすることもできます。

azd ai agent init --project-id /subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}/projects/{project}

project ID を見つけるには、Foundry ポータルを開き、管理>Project詳細に移動し、リソース ID の値をコピーします。

Warnung

--project-idを使用して既存のプロジェクトに対して初期化すると、新しいプロジェクトの作成時に実行されるロールの自動割り当てがスキップされます。 必要なロールが既に割り当てられていることを確認します。 完全なマトリックスについては、 ホストされているエージェントのアクセス許可のリファレンスを参照してください

作成内容を確認する

initが完了すると、プロジェクト ディレクトリには次の構造が含まれます。

.
|-- azure.yaml                  # Unified azd project and hosted agent configuration
|-- src/
|   \-- <agent-name>/
|       |-- Dockerfile          # Container build definition
|       \-- ...                 # Agent source code
|-- .azure/                     # Environment configuration
\-- infra/                      # Optional IaC, created only after you eject infrastructure

テンプレートとサンプルは、統合された azure.yaml をプロジェクト ルートに発行します。 init 中に、 azd はそのファイルを採用または生成します。 今後はazure.yamlを使用します。 既定では、インフラストラクチャでは Bicep は使用されません。 生成された IaC ファイルを直接管理する必要がある場合にのみ、インフラストラクチャを取り出します。