ホストされるエージェントの azure.yaml リファレンス

Important

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

azure.yaml ファイルは、ホストされたエージェント プロジェクトの単一の Azure Developer CLI (azd) プロジェクト構成です。 Foundry リソース (プロジェクト、モデルのデプロイ、接続、ツールボックス、スキル、ルーチン、エージェント自体) を一連のサービスとして宣言し、それらをプロビジョニングしてデプロイする方法を azd に指示します。 この統合ファイルは、 agent.manifest.yamlagent.yamlの間で構成を分割する以前の 2 ファイル モデルに置き換えられます。

このファイルを段階的に作成および作成する方法については、 ホストされているエージェントの azure.yaml の作成に関するページを参照してください。

azd で azure.yaml を使用する方法

Azure Developer CLI は、開発者からクラウドへのワークフローを合理化します。 Foundry プロジェクト、モデル デプロイ、コンテナー レジストリなどのAzureリソースのプロビジョニングと、それらのリソースへのコードのデプロイという 2 つの処理が行われます。 ホストされるエージェントの場合、 azure.ai.agents 拡張機能は、 azd ai agent initazd ai agent runなどのエージェント固有のコマンドを追加します。

すべての azd プロジェクトのルートに azure.yaml ファイルがあります。 エージェント プロジェクトの場合、このファイルはエージェント構成とデプロイ構成の両方の信頼のソースです。

Environments

環境とは、特定の展開の設定を格納する名前付き構成 ( devstagingprodなど) です。 各環境では、Azureサブスクリプションと場所、リソース グループとリソース名、および設定したカスタム変数が追跡されます。 設定は、 .azure/<env-name>/.envにローカルに格納されます。 同じプロジェクトに対して複数の環境を使用できます。

コア コマンド

命令 それが何をするか
azd provision Foundry プロジェクト、モデルデプロイ、コンテナー レジストリなどのAzureリソースを作成します。
azd deploy リモート ビルドのソースをパッケージ化してアップロードし、コンテナー イメージをビルドして発行するか、事前構築済みのイメージをデプロイしてから、ホストされるエージェント のバージョンを作成します。
azd up 1 つのコマンドで provisiondeploy を結合します。
azd down プロビジョニングされたすべてのリソースを削除します。
azd env set 環境変数 ( azd env set MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME=gpt-5.4-miniなど) を設定します。

拡張機能の互換性

azure.ai.agents拡張機能は、azure.ai.agent ホストを提供します。 azure.ai.projects拡張機能は、azure.ai.project ホストとmicrosoft.foundry インフラストラクチャ プロバイダーを提供します。 azure.ai.projects バージョン 1.0.0-beta.4 以降でバージョン 1.0.0-beta.8 以降azure.ai.agents使用します。 インストールとアップグレードの手順については、「Azure Developer CLI Foundry 拡張機能のインストール」を参照してください。

互換性のある最小バージョンは、 azure.yamlで宣言できます。

requiredVersions:
    azd: ">=1.27.1"
    extensions:
        azure.ai.agents: ">=1.0.0-beta.8"
        azure.ai.projects: ">=1.0.0-beta.4"

サービス プロバイダーのライフサイクル

プロジェクトに接続、ツールボックス、スキル、またはルーチンが含まれている場合は、 microsoft.foundry メタ パッケージをインストールします。 対応する azure.ai.* ホストを実装するプロバイダー拡張機能がインストールされます。

サービス ホスト プロバイダー拡張機能 次の間に適用されます
azure.ai.project azure.ai.projects azd provision
azure.ai.connection azure.ai.connections azd provision
azure.ai.toolbox azure.ai.toolboxes azd deploy
azure.ai.agent azure.ai.agents azd deploy
azure.ai.skill azure.ai.skills azd deploy
azure.ai.routine azure.ai.routines azd deploy

プロジェクトと接続プロバイダーは、 azd provision中に構成を適用します。 エージェント、ツールボックス、スキル、ルーチン プロバイダーは、 azd deploy中に構成を適用します。 azd upを実行して、両方のフェーズを完了します。 azure.yamlからデータ プレーン サービスを削除すると、azdが管理できなくなります。リモート リソースが不要になったら、リモート リソースを個別に削除します。

  • azd down - 現在の環境で Foundry プロジェクトが作成されたときにリソース グループを削除します。 既存のプロジェクトとそのリソースはそのままにします。 |
  • azd env set - azd env set FOUNDRY_MODEL_NAME=gpt-5.4-miniなどの環境変数を設定します。 |

分割サービス モデル

servicesでは、各エントリは、宣言する Foundry リソースの種類を識別するhost フィールドを持つ名前付きサービスです。 サービスは、 uses フィールドを介して相互に参照します。これにより、プロビジョニング時とデプロイ時に解決 azd 依存関係グラフが形成されます。 一般的なプロジェクトには、モデルのデプロイを所有する 1 つの azure.ai.project サービスと、それに依存する 1 つの azure.ai.agent サービスがあります。

ホスト Resource Purpose
azure.ai.project 鋳造プロジェクト モデルのデプロイとオプションのプライベート ネットワークを所有します。
azure.ai.agent ホストされるエージェントまたはプロンプト エージェント エージェント定義とそのビルドとデプロイの設定を実行します。
azure.ai.connection プロジェクト接続 MCP サーバーや検索インデックスなどの外部リソースにプロジェクトをリンクします。
azure.ai.toolbox ツールボックス (Foundry ツールセット) エージェントが参照する接続に基づくツールの名前付きバンドル。
azure.ai.skill Skill エージェント間で共有される再利用可能な動作ガイドライン。
azure.ai.routine ルーチン トリガーとエージェントを呼び出すアクション。

最小限の例

# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
name: my-agent-project

services:
    ai-project:
        host: azure.ai.project
        deployments:
            - name: gpt-5.4-mini
              model:
                format: OpenAI
                name: gpt-5.4-mini
                version: "2026-03-17"
              sku:
                name: GlobalStandard
                capacity: 10

    my-agent:
        host: azure.ai.agent
        project: src/my-agent
        language: docker
        uses:
            - ai-project
        kind: hosted
        name: my-agent
        description: A hosted agent built from source.
        protocols:
            - protocol: responses
              version: 2.0.0
        env:
            MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME: ${MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME}
        container:
            resources:
                cpu: "0.25"
                memory: 0.5Gi

完全な例

次のプロジェクトは、接続、ツールボックス、プライベート ネットワークを追加します。

# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
requiredVersions:
    extensions:
        azure.ai.agents: '>=0.1.0-preview'

name: research-agent-project

services:
    ai-project:
        host: azure.ai.project
        deployments:
            - name: gpt-5.4-mini
              model:
                format: OpenAI
                name: gpt-5.4-mini
                version: "2026-03-17"
              sku:
                name: GlobalStandard
                capacity: 50

    search-conn:
        host: azure.ai.connection
        uses:
            - ai-project
        category: CognitiveSearch
        target: https://my-search.search.windows.net
        authType: ApiKey
        credentials:
            key: ${SEARCH_API_KEY}

    research-tools:
        host: azure.ai.toolbox
        uses:
            - ai-project
            - search-conn
        description: Tools used by the research agent.
        tools:
            - type: azure_ai_search
              connection: search-conn
            - type: code_interpreter

    researcher:
        host: azure.ai.agent
        project: src/researcher
        language: docker
        uses:
            - ai-project
            - search-conn
            - research-tools
        kind: hosted
        name: researcher
        description: Hosted research agent built from source.
        startupCommand: python main.py
        toolboxes:
            - research-tools
        env:
            LOG_LEVEL: info
        protocols:
            - protocol: responses
              version: 2.0.0
        container:
            resources:
                cpu: "1.0"
                memory: 2Gi

infra:
    provider: bicep
    path: ./infra

最上位レベルのフィールド

Field 必須 Description
name はい Project名。
requiredVersions.extensions いいえ 拡張機能の最小バージョンの制約 ( azure.ai.agents: '>=0.1.0-preview'など)。
metadata いいえ template識別子などのメタデータをProjectします。
services はい サービス名をサービス構成にマップします。
infra いいえ コードとしてのインフラストラクチャの設定。 IaC を取り出すときに表示されます。

azure.ai.project サービス

プロジェクト サービスは Foundry プロジェクトをプロビジョニングまたは接続し、そのモデルデプロイを所有します。

Field Description
host azure.ai.projectである必要があります。
endpoint 既存の Foundry プロジェクトのエンドポイント URL。 設定すると、 azd は新しいプロジェクトをプロビジョニングするのではなく、そのプロジェクトに接続します。 省略すると、 azd は新しいプロジェクトをプロビジョニングします。
deployments プロジェクトで作成するモデル デプロイの配列。
network プロジェクトをバックアップするアカウントのオプションのプライベート ネットワーク。

デプロイ

Field Description
name デプロイ名。
model.format OpenAIなどのモデル形式。
model.name gpt-5.4-miniなどのモデル名。
model.version モデルのバージョン文字列。
sku.name SKU 名 ( GlobalStandardStandardGlobalBatchなど)。
sku.capacity 分単位のトークン単位の SKU 容量。

展開エントリには、外部ファイル ( - $ref: ./deployments/embeddings.yaml) を含めることもできます。

ネットワーク

networkを設定して、ネットワークで保護されたアカウントをプロビジョニングします。 peSubnet フィールドが必要であり、アカウントのプライベート エンドポイントを確立します。 エージェント ランタイムを独自のサブネットに挿入する (独自の仮想ネットワークを持ち込む) agentSubnetを追加するか、Microsoftマネージド ネットワークを使用するためにそれを省略します。 完全なチュートリアルについては、 ホストされたエージェントのプライベート ネットワークに関するページを参照してください。

プライベート ネットワーク構成

azure.ai.project サービスのnetworkを使用して、アカウントのプライベート エンドポイントとエージェントエグレスを構成します。 次の例では、エージェント ランタイムにカスタマー マネージド サブネットを使用します。

services:
    ai-project:
        host: azure.ai.project
        network:
            peSubnet:
                vnet: ${VNET_RESOURCE_ID}
                name: private-endpoint-subnet
            agentSubnet:
                vnet: ${VNET_RESOURCE_ID}
                name: agent-subnet
            dns:
                resourceGroup: ${PRIVATE_DNS_RESOURCE_GROUP}
                subscription: ${PRIVATE_DNS_SUBSCRIPTION_ID}
Field 必須 Description
peSubnet はい Foundry アカウントのプライベート エンドポイントのサブネット。 vnetnameが必要です。 サブネットazd作成する必要があるときにprefixを追加します。
agentSubnet いいえ ホステッド エージェントエグレス用のカスタマー マネージド サブネット。 vnetnameが必要であり、peSubnetと同じ仮想ネットワーク内の別のサブネットである必要があります。
isolationMode いいえ Microsoftマネージド エグレスの送信ポスチャ。 agentSubnetを省略した場合にのみ使用します。 有効値は AllowInternetOutbound または AllowOnlyApprovedOutbound です。
dns.resourceGroup いいえ 既存のプライベート DNS ゾーンを含むリソース グループ。 これを省略して、必要なゾーン azd 作成してリンクできるようにします。
dns.subscription いいえ 既存のプライベート DNS ゾーンを含むサブスクリプション。 既定では、デプロイ サブスクリプションが使用されます。

プライベート ネットワークでは、アカウントのパブリック データ プレーン アクセスが無効になります。 この構成では、自動的に作成されたAzure Container Registryはサポートされていません。 ソース コードのデプロイを使用するか、事前構築済みの imageを指定します。

azure.ai.agent サービス

エージェント サービスには、エージェント定義とそのビルドとデプロイの設定が含まれます。 これは、古い agent.yamlを置き換えるサービスです。

Field Description
host azure.ai.agentである必要があります。
kind エージェントの種類。 ソースから構築されたコンテナー化されたエージェントには、 hosted を使用します。
name エージェント名。 名前を再利用すると、既存のエージェントの新しいバージョンが作成されます。
displayName ユーザーフレンドリなオプションの表示名。
description エージェントの任意の説明。
project エージェント ソース ディレクトリへのパス ( src/my-agentなど)。
language ホストされているエージェントの言語を構築します。 docker を使用してください。
uses プロジェクト、接続、ツールボックスなど、このエージェントが依存するサービスの一覧。
protocols エージェントが実装する呼び出しプロトコル。
env コンテナーに渡される環境変数のマップ。
container コンテナーの CPU とメモリの設定。
startupCommand python main.pyなど、エージェント サーバーを起動するコマンド。 ローカル開発とコンテナーの起動に azd ai agent run によって使用されます。
toolboxes エージェントが実行時に使用 azure.ai.toolbox サービス名の一覧。
codeConfiguration ソース (ZIP) の展開設定。 「 デプロイ モード」を参照してください。
image 事前構築済みのコンテナー イメージの URL。 設定すると、 azd はイメージを直接デプロイし、Dockerfile ビルドをスキップします。
metadata オプションのメタデータ キーと値のペア。
agentCard エージェント レベルの検出メタデータ ( skillsを含む)。

agentCard.skillsazure.ai.skill

agentCard.skills では、検出カード内のエージェントの機能について説明します。 クライアントのメタデータを提供し、再利用可能な Foundry スキルを作成またはアタッチしません。 各カード スキルには、 idname、および descriptionが必要です。

azure.ai.skill サービスは、命令とオプションで許可されているツールからバージョン管理されたスキルを作成します。 servicesで個別に宣言します。uses リストは依存関係の順序を制御しますが、agentCard.skillsに設定したり、エージェントにスキルをアタッチしたりすることはありません。 探索メタデータには agentCard.skills を使用し、再利用可能な手順については azure.ai.skill を使用します。

agentCard:
    description: Research agent discovery card.
    skills:
        - id: research
          name: Research
          description: Researches a requested subject.
services:
    code-review:
        host: azure.ai.skill
        uses:
            - ai-project
        instructions: ./skills/code-review.md

探索カードを完了する

クライアントがより豊富な探索メタデータを必要とする場合は、 versiontags、および examples を追加します。 カードには、 description と少なくとも 1 つのスキルが必要です。 各スキルには、 idname、および descriptionが必要です。

agentCard:
    description: Research agent discovery card.
    version: "1.0"
    skills:
        - id: research
          name: Research
          description: Researches a requested subject.
          tags:
              - research
          examples:
              - Research current product guidance.

責任ある AI ポリシー

policiesを使用して、責任ある AI ポリシーをホストされるエージェントに関連付けます。 raiPolicyNameポリシーの完全な ARM リソース ID に設定します。

policies:
    - type: rai_policy
      raiPolicyName: ${RAI_POLICY_RESOURCE_ID}

rai_policyの種類とraiPolicyNameが必要です。 拡張機能は、一覧の最初の有効なポリシーを、ホストされたエージェントの責任ある AI 構成に適用します。 ポリシーの作成と管理のガイダンスについては、「 ホストされているエージェントにガードレールを追加する」を参照してください。

メモリストア

memoryStoresを使用して、デプロイ前に Foundry メモリ ストアを作成または再利用します。 各ストアには、既存のチャット モデルと埋め込みモデルのデプロイ名が必要です。

memoryStores:
    - name: customer-memory
      description: Stores durable customer context.
      chatModel: gpt-5.4-mini
      embeddingModel: text-embedding-3-large
      options:
          chatSummaryEnabled: true
          userProfileEnabled: true
          proceduralMemoryEnabled: false
          defaultTtlSeconds: 0
Field 必須 Description
name はい メモリ ストア名。
description いいえ メモリ ストアの説明。
chatModel はい メモリ コンテンツの処理に使用されるチャット モデルのデプロイ。
embeddingModel はい メモリ コンテンツの処理に使用される埋め込みモデルのデプロイ。
options.chatSummaryEnabled いいえ チャット概要メモリを有効にします。
options.userProfileEnabled いいえ ユーザー プロファイル メモリを有効にします。
options.proceduralMemoryEnabled いいえ 手続き型メモリを有効にします。
options.defaultTtlSeconds いいえ 既定の保持期間を秒単位で設定します。 有効期限がない場合は、 0 を設定します。
options.userProfileDetails いいえ 保持するプロファイル データに関するガイダンスを提供します。

デプロイ中、既存のストアは更新されません。 宣言された定義が既存のストアと異なる場合、 azd は違いを報告します。 メモリ ストアを宣言しても、エージェント コードが変更されたり、メモリ ツールが自動的にアタッチされたりすることはありません。 メモリ検索ツールまたはメモリ ストア API を使用して、アプリケーションをメモリ ストアに接続します。 詳細については、「 エージェントでメモリを使用する」を参照してください。

エージェント エンドポイントを構成する

agentEndpointを使用して、エージェント エンドポイントによって発行されたプロトコルと承認スキームを構成します。 公開する機能を他のエージェントが検出できるように、A2A エンドポイントでエージェント カードを使用します。

agentEndpoint:
    protocols:
        - responses
        - a2a
    authorizationSchemes:
        - type: Entra

エンドポイント トラフィックを受信するエージェントのバージョンを制御する必要がある場合は、 versionSelector.versionSelectionRules を定義することもできます。 エージェント サービスは、デプロイ中にエンドポイント プロトコルと承認の値を検証します。

protocols

protocols:
    - protocol: responses
      version: 2.0.0
プロトコル Description
responses OpenAI Responses API。 会話履歴の管理が含まれます。
invocations カスタム ペイロード プロトコル。 組み込みの会話管理はありません。
a2a エージェントオーケストレーション用のエージェント間プロトコル。

完全なプロトコル仕様については、 ホストされるエージェントのランタイム コントラクトに関するページを参照してください。

追加のランタイム プロトコルとアクティビティ エンドポイント

responsesinvocations、およびa2aに加えて、ホストされるエージェントは、WebSocket 呼び出しのinvocations_wsと、Microsoft 365および Teams アクティビティ シナリオのactivityをサポートします。

protocols:
    - protocol: invocations_ws
      version: 2.0.0
    - protocol: activity
      version: 2.0.0

アクティビティ エージェントの場合は、パブリック エンドポイント構成にactivityを追加し、必要なBot Service承認スキームを使用します。

agentEndpoint:
    protocols:
        - activity
    authorizationSchemes:
        - type: BotServiceRbac

アクティビティ プロトコルは、同じエージェント エンドポイント上の他のプロトコルと共存できます。 ランタイム プロトコルの動作については、「 ホストされるエージェントとは」を参照してください。

env

env:
    MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME: ${MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME}
    LOG_LEVEL: info

${ }構文は、azdの環境変数.azure/<env>/.env参照します。

Note

FOUNDRY_PROJECT_ENDPOINTenvを宣言しないでください。 プラットフォームによってホストされたコンテナーに自動的に挿入され、 azd ai agent run はローカル開発用に設定されます。 ここで宣言することは冗長であり、プラットフォームの価値をシャドウするリスクがあります。

プラットフォーム環境、ID、エンドポイント

プラットフォームは、 FOUNDRY_ プレフィックスと AGENT_ プレフィックスを予約します。 FOUNDRY_PROJECT_ENDPOINTなどのプラットフォーム変数をアプリケーション コードから読み取りますが、envで定義したりオーバーライドしたりしないでください。 エージェント定義の環境値は文字列です。

デプロイされた各ホステッド エージェントは、専用のMicrosoft Entra ID エージェント ID とエンドポイントを受け取ります。 エージェント サービスに identity ブロックを追加しないでください。 エージェント ID は、既定でプロジェクト エンドポイントとセッション ストレージを使用できます。 エージェントが外部リソースにアクセスする必要がある場合は、ID に追加のロールを割り当てます。 詳細については、 ホストされているエージェントのアクセス許可のリファレンスを参照してください

宣言するプロトコルによって、デプロイ後にアクティブなエンドポイントが決まります。 azd ai agent showを実行して、デプロイされたエージェントとそのエンドポイント URL を調べます。

デプロイ後、 azd は、 <SERVICE>の代わりに正規化されたサービス名を使用して、次の値をアクティブな環境に書き込みます。

  • AGENT_<SERVICE>_NAME
  • AGENT_<SERVICE>_VERSION
  • AGENT_<SERVICE>_ENDPOINT
  • AGENT_<SERVICE>_<PROTOCOL>_ENDPOINT 有効な responsesinvocations、および invocations_ws プロトコルの場合

アプリケーションまたはオートメーションで呼び出し URL が必要な場合は、プロトコル固有の出力を使用します。 ベース エンドポイントは、セッション管理操作用にデプロイされたエージェントのバージョンを識別します。

コンテナ

container:
    resources:
        cpu: "0.25"
        memory: 0.5Gi

cpuから"0.25""4.0"を設定し、memoryから0.5Giまで8.0Giします。

ソース コードのデプロイ

ソース コードをコンテナー イメージではなく ZIP としてデプロイするように codeConfiguration を設定します。 エントリ ポイントのファイル名またはアセンブリ名を 1 つ指定します。 azd は、hosted-agent バージョンを作成するときに、それを選択したランタイムと組み合わせます。

codeConfiguration:
    runtime: python_3_13
    entryPoint: main.py
    dependencyResolution: remote_build

remote_buildを使用してプロジェクト ソースから依存関係を復元するか、ZIP に Linux 互換の依存関係が含まれている場合はbundledを使用します。 codeConfigurationをイメージ ベースのコンテナー構成と組み合わせないでください。 パッケージ化と依存関係のガイダンスについては、「 ソース コードからホストされるエージェントをデプロイする」を参照してください。

コンテナー ビルドと事前構築済みイメージ

projectの下のDockerfileを使用してコンテナー イメージをビルドするか、事前構築済みのイメージをデプロイするimageを設定します。

image: myregistry.azurecr.io/agents/researcher:1.2.3

Dockerfileimageの両方を使用できる場合は、対話型の展開プロンプトで事前構築済みのイメージを選択します。 無人展開の場合は、AZD_AGENT_SKIP_ACRをアクティブなazd環境でtrueに設定して、構成済みのイメージを選択します。 レジストリのアクセス許可とプライベート レジストリの展開については、「プライベート Azure Container Registryを使用してホストされるエージェントをデプロイする」を参照してください。

メタデータとスキーマの制限事項

デプロイされたエージェント メタデータには文字列値を使用します。 authorsメタデータ値には、文字列の一覧を指定できます。 displayNameinputSchema、またはoutputSchemaに依存してデプロイされたホステッド エージェントを構成しないでください。統合構成はこれらのフィールドを受け入れますが、hosted-agent 作成要求では使用されません。

azure.ai.connection サービス

接続により、プロジェクトが外部リソースにリンクされます。 サービス キーは接続名であり、サービスは usesを介してプロジェクトに依存します。

Field Description
host azure.ai.connectionである必要があります。
category 接続カテゴリ ( CustomKeysApiKeyAzureOpenAICognitiveSearchRemoteToolなど)。
target ターゲット エンドポイント URL または ARM リソース ID。
authType 認証の種類 ( ApiKeyCustomKeysAADManagedIdentityOAuth2など)。
credentials 接続の資格情報。 値には ${VAR} 参照を含めることができます。
metadata キーと値のペアとしての追加のメタデータ。
github-conn:
    host: azure.ai.connection
    uses:
        - ai-project
    category: RemoteTool
    target: https://api.githubcopilot.com/mcp
    authType: CustomKeys
    credentials:
        Authorization: ${GITHUB_PAT}

接続の変更は、azd deployではなく、azd provision中に適用されます。 資格情報の値をazd環境に格納し、シークレットをazure.yamlに配置するのではなく、${VAR}で参照します。

azure.ai.toolbox サービス

ツールボックスは、エージェントが参照するツールの名前付きバンドルです。 接続に基づくツールでは、azure.ai.connection フィールドを使用してconnection サービスに名前を付けます。

Field Description
host azure.ai.toolboxである必要があります。
description ツールボックスの説明。
tools ツールの一覧。 各エントリには type があり、接続に基づくツールの場合は connection
research-tools:
    host: azure.ai.toolbox
    uses:
        - ai-project
        - search-conn
    tools:
        - type: azure_ai_search
          connection: search-conn
        - type: code_interpreter

エージェントは、ツールボックス サービス名を uses とその toolboxes リストの両方に追加して、ツールボックスを参照します。

ツールボックス エンドポイントを使用する

分割サービス プロジェクトでは、 uses によって配置順序が制御されます。 アプリケーションは、実行時にツールボックスの MCP エンドポイントに接続します。 envを介してツールボックス名またはエンドポイントをアプリケーションに渡し、エージェント コードのFOUNDRY_PROJECT_ENDPOINTからコンシューマー エンドポイントを構築します。 エンド ツー エンドの例については、「 ホストされたエージェントでツールボックスを使用する」を参照してください。

azure.ai.skill と azure.ai.routine サービス

azure.ai.skill サービスは、エージェントが名前で参照する再利用可能な動作ガイドラインを定義します。 azure.ai.routine サービスは、トリガー (スケジュールまたはイベント) とエージェントを呼び出すアクションを定義します。 どちらも、 usesで使用するリソースに依存します。 エージェント用ツールの追加の詳細については、「 Foundry のツールボックスとは」 および「ルーチンを 使用する」を参照してください。

スキルとルーチンは個別のリソースです。 いずれかのサービスを宣言すると、そのライフサイクルが制御されますが、エージェントにスキルが自動的にアタッチされたり、ルーチン アクション ターゲットが推論されたりすることはありません。 使用しているアプリケーションまたはルーチンアクションを明示的に構成します。

用途を含む依存関係

uses フィールドは、特定のサービスが依存するサービスを宣言します。 azd では、このグラフを使用して、プロビジョニングの順序付けや、エージェントの接続やツールボックスなどのワイヤリファレンスへの接続を行います。

uses:
    - ai-project
    - search-conn
    - research-tools

ファイルインクルードと$ref

サービスまたはリストのエントリは、外部の YAML または JSON ファイルへの参照に置き換えることができます。 相対パスは、 $refを含むファイルから解決されます。 リモート URL はサポートされていません。

services:
    triage:
        host: azure.ai.agent
        uses:
            - ai-project
        $ref: ./agents/triage.yaml

ファイルインクルードを使用すると、大規模なエージェント定義を独自のファイルに保持し、プロジェクト間で定義を共有できます。

hostusesprojectlanguageimagedockerなど、サービス $refを使用する場合は、ルート azure.yaml エントリにコア サービス フィールドを保持します。 参照先のマッピングに、 kindnamedescriptionprotocolsなどのプロバイダー所有の定義フィールドを配置します。 $ref はローカルの YAML または JSON ファイルを再帰的に解決します。URL と参照サイクルはサポートされていません。

変数の置換

azure.yamlでは、次の 2 つの置換構文を使用できます。

Syntax 解決日時 何によって
${VAR_NAME} azd provision または azd deploy azd .azure/<env>/.envからの環境変数、解決されたクライアント側。
${{ ... }} 実行時 Foundry サーバー側の解決。 azd は、手つかずの状態でこれらを渡します。

インフラストラクチャとデプロイ モード

既定ではBicepレス

azd ai agent init は既定では bicep-less です。 infra/ ディレクトリは書き込まれません。 azd は、プロビジョニング時に azure.yaml サービスからインフラストラクチャを合成します。 コードとしてのインフラストラクチャ ファイルを具体化するには、それらを取り出します。

命令 Result
azd ai agent init --infra Bicepを./infra/に取り出します。
azd ai agent init --infra=bicep Bicep (明示的) を取り出します。
azd ai agent init --infra=terraform Terraform を取り出し、 infra.provider: terraformを設定します。

infraazure.yamlが存在する場合、azdはインフラストラクチャを合成する代わりにこれらのファイルを使用します。

デプロイ モード

ホストされるエージェントは、次の 2 つのモードのいずれかでデプロイされます。

Mode どのように機能するのか 選択方法
code azd ソースを ZIP としてアップロードし、リモートでビルドします。 これは、Pythonおよび.NET プロジェクトの既定値です。 azd ai agent init --deploy-mode code
container azd は、 Dockerfile から Docker イメージをビルドしてデプロイします。 azd ai agent init --deploy-mode container

ソース デプロイの場合、エージェント サービスの codeConfiguration フィールドはランタイムとエントリ ポイントをキャプチャします。 事前構築済みイメージの場合は、エージェント サービスに image フィールドを設定し、Dockerfile ビルドをスキップします。

レガシ構成の移行

以前のエージェント定義では、環境変数を config: envの下に入れ子にすることができます。 統合 azure.yamlで、 env マッピングをエージェント サービスに移動します。

# Legacy
services:
    my-agent:
        host: azure.ai.agent
        config:
            env:
                MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME: ${MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME}
# Unified azure.yaml
services:
    my-agent:
        host: azure.ai.agent
        env:
            MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME: ${MICROSOFT_FOUNDRY_MODEL_DEPLOYMENT_NAME}

JSON スキーマの検証

IDE オートコンプリートのスキーマ参照を追加します。

# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json