agent.yaml スキーマ リファレンス

Important

この記事でプレビューとしてマークされているアイテムは、現在プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供され、Microsoftは運用環境のワークロードには推奨されません。 特定の機能がサポートされていないか、機能が制限されている可能性があります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

Note

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

AgentSchema 仕様は、AI エージェントを定義するためのオープン標準です。 ホストされるエージェントをビルドするときは、主に 、AgentDefinition、 AgentManifest、 ContainerAgent の 3 種類の最上位レベルのスキーマを使用します。 AgentManifest、AgentDefinition、agent.manifest.yaml、およびagent.yamlのこのレガシ スキーマ モデルは、参照用に保持され、azure.yamlに置き換えられます。 スキーマは、1 つのツールに固有ではありません。 Azure Developer CLI (azd) と Microsoft Foundry Toolkit for Visual Studio Codeはどちらも使用します。

スキーマは、異なる名前付け規則を持つ 2 つのファイル コンテキストで表示されます。

  • agent.manifest.yaml は AgentManifest であり、レガシ サンプルで使用されるパラメーター化されたテンプレートです。 現在の azd ai agent init -t 初期化では、 azure.yaml プロジェクト ドキュメントが必要であり、AgentManifest ラッパーが拒否されます。
  • agent.yaml は AgentDefinition です。これは、従来の初期化が src/<agent>/agent.yamlでプロジェクトに書き込んだ具体的な構成です。

どちらのファイルもエージェントとは 何かを 記述します。エージェントのモデル、ツール、プロトコル、環境、リソースです。 これは、Azureリソースをプロビジョニングしてデプロイするazure.yamlを説明するとは異なります。 azure.yamlリファレンスについては、ホストされているエージェントの azure.yaml リファレンスを参照してください。

スキーマの種類

AgentDefinition

AgentDefinition は、実行する準備ができているエージェントの具体的な仕様です。 特定の構成を持ち、テンプレート プレースホルダーを {{ parameter }} しない単一のエージェント インスタンスについて説明します。

すべての AgentDefinition には、エージェントの種類を決定する kind フィールドがあります。

サブタイプ Description
prompt 指示によってのみ構成されたプロンプト ベースのエージェント。
hosted コンテナー イメージとしてデプロイされたコンテナー化されたエージェント。
workflow 他のエージェントを調整するオーケストレーション エージェント。

生成された AgentDefinition には、引き続き ${VAR_NAME} 参照を含めることができます。 これらは環境変数プレースホルダー azd であり、AgentSchema 仕様の一部ではありません。 デプロイ時に各環境のazd ファイルの値を解決することで、1 つの定義ファイルを複数の.azure/<env>/.env環境で機能させます。

AgentManifest

AgentManifest は、エージェントを動的に作成するためのパラメーター化されたテンプレートです。 AgentDefinition を template フィールドとしてラップし、次の値を追加します。

  • parameters: {{ parameter }} 置換構文を使用して、作成時にプロンプトまたは挿入される値。
  • resources: モデルのデプロイ、ツールボックス、接続などの外部依存関係。

再利用可能なテンプレートが必要な場合、または異なる構成で同様のエージェントをデプロイする場合は、AgentManifest を使用します。 azd ai agent initを実行するときは、通常、テンプレートを選択するか URL を指定してマニフェストをポイントします。 init プロセスはパラメーター値の入力を求め、AgentDefinition を生成します。

ContainerAgent

ContainerAgent は、 kind: hostedを持つ AgentDefinition です。 これにより、コンテナー固有のフィールドを使用して基本定義が拡張され、ホストされるエージェントを構築するときに AgentManifest 内の template になります。

マニフェストまたは定義を使用する場合

次の場合にマニフェストを使用する 次の場合に定義を使用する
他のユーザーがインスタンス化できるように、再利用可能なエージェント テンプレートを発行します。 特定の単一目的エージェントをデプロイします。
ユーザーは、モデル、ツール、または接続を初期化時に構成する必要があります。 すべての構成値は既知であり、固定されています。
サンプルまたはスターター テンプレートを作成します。 既に azd ai agent init を実行しており、定義が生成されています。

ほとんどの開発者は、マニフェストから azd ai agent init を開始し、生成された定義を操作します。 テンプレート作成者とサンプル発行元は、マニフェストの主な作成者です。

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

以下のリファレンスでは、定義フィールドのスーパーセットであるマニフェスト フィールドについて説明します。

Field タイプ 必須 Description
name 文字列 はい エージェント マニフェストの名前。
description 文字列 いいえ エージェントの説明。
metadata オブジェクト いいえ tagsなどの追加のメタデータ。
template ContainerAgent はい エージェント定義テンプレート。
parameters オブジェクト いいえ init 中にプロンプトが表示される構成可能なパラメーター。
resources アレイ はい エージェントに必要なリソース。

template (ContainerAgent)

template フィールドは、ホストされるコンテナー エージェントを定義します。

Field タイプ 必須 Description
name 文字列 はい エージェント名。
kind 文字列 はい ホストされるエージェントの hosted する必要があります。
protocols アレイ はい プロトコルのサポート。
environment_variables アレイ いいえ コンテナーの環境変数。
resources オブジェクト いいえ コンテナーの CPU リソースとメモリ リソース。
image 文字列 いいえ 事前構築済みのコンテナー イメージ パス。
dockerfilePath 文字列 いいえ Dockerfile へのパス。

プロトコル

protocols:
  - protocol: responses    # OpenAI Responses API
    version: 2.0.0
プロトコル Description
responses OpenAI Responses API。 会話履歴の管理が含まれます。
invocations カスタム ペイロード プロトコル。 組み込みの会話管理はありません。

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

environment_variables

environment_variables:
  - name: FOUNDRY_MODEL_NAME
    value: ${FOUNDRY_MODEL_NAME}

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

Note

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

parameters

パラメーターは、 azd ai agent init中にプロンプトが表示されます。 機密性の高い値には secret: true を使用します。

parameters:
  github_pat:
    secret: true
    description: GitHub Personal Access Token

resources

リソースは、エージェントに必要なものを定義します。 次の図形は、マニフェストが宣言する内容と、プロジェクトに書き込む azd ai agent init について説明しています。 初期化後、 azd ai connection、 azd ai toolbox、 azd ai skill、 azd ai routineなどの直接 CLI コマンドを使用して、実行時に同じプロジェクト スコープのリソースを管理します。

Note

スキーマにはスキル フィールドは含まれません。 azd ai agent init、azd ai agent run、およびazd upコマンドでは、スキルは自動ダウンロードされません。 azd ai skillを使用してプロジェクト レベルのリソースとしてのスキルを管理し、自分でエージェント ランタイムに接続します。

モデル リソース

resources:
  - kind: model
    name: chat
    id: gpt-4.1-mini

接続リソース

resources:
  - kind: connection
    name: MyConnection
    target: https://api.example.com
    category: remoteTool
    credentials:
        type: CustomKeys
        keys:
            Authorization: "Bearer {{ my_api_key }}"

ツールボックス リソース

resources:
  - kind: toolbox
    name: agent-tools
    description: Agent toolbox
    tools:
      - name: webSearch
        type: builtin
        capability: web-search
      - name: codeInterpreter
        type: builtin
        capability: code-interpreter
      - name: myMcp
        type: connection
        connection: "{{ MyConnection }}"

ツールボックス バージョンには、生の tools エントリ ( web-search や code-interpreterなどの組み込み機能)、 connections (リモート ツール MCP サーバーや検索インデックスなどのプロジェクト接続)、 skills (既存のプロジェクト スキルへの参照) の 3 種類のエントリが含まれています。 tools スロットは、マニフェストの前に宣言されます。 azd ai toolbox connection addとazd ai toolbox skill addを使用して、接続とスキル参照を段階的に追加します。

完全なコード例

name: my-web-search-agent
description: An agent with web search and MCP tools

metadata:
  tags:
    - AI Agent Hosting

template:
  name: my-web-search-agent
  kind: hosted
  protocols:
    - protocol: responses
      version: 2.0.0
  environment_variables:
    - name: FOUNDRY_MODEL_NAME
      value: ${FOUNDRY_MODEL_NAME}
    - name: TOOLBOX_ENDPOINT
      value: ${TOOLBOX_ENDPOINT}

parameters:
  github_pat:
    secret: true
    description: GitHub PAT for MCP connection

resources:
  - kind: model
    name: chat
    id: gpt-4.1-mini

  - kind: connection
    name: GithubMcpConnection
    target: https://api.githubcopilot.com/mcp
    category: remoteTool
    credentials:
        type: CustomKeys
        keys:
            Authorization: "Bearer {{ github_pat }}"

  - kind: toolbox
    name: agent-tools
    description: Web search and GitHub MCP tools
    tools:
      - name: webSearch
        type: builtin
        capability: web-search
      - name: github
        type: connection
        connection: "{{ GithubMcpConnection }}"

変数の置換

置換は 2 つのレイヤーで行われます。マニフェスト パラメーターは初期化時に解決され、環境変数は実行時またはデプロイ時に解決されます。 その後、すべての azd 環境で 1 つの定義ファイルを使用できます。

構文 解決日時 何によって
{{ param_name }} azd ai agent init ユーザーから求められたマニフェスト パラメーター値。
${VAR_NAME} azd deploy または azd ai agent run azd .azure/<env>/.envからの環境変数。