次の方法で共有


Azure Logic Apps でのチャット操作をサポートする会話型エージェント ワークフローを作成する (プレビュー)

適用対象: Azure Logic Apps (Standard)

Important

この機能はプレビュー段階にあり、「Microsoft Azure プレビューの追加使用条件」が適用されます。

ソリューションで自然言語をサポートし、人間と対話し、大規模言語モデル (LLM) に接続されたエージェントを使用してタスクを完了するワークフローが必要な場合は、Azure Logic Apps で 会話 型エージェント ワークフローを作成します。 このワークフローの種類は、このようなシナリオに最適なオプションであり、通常はユーザー主導、有効期間が短い、またはセッションベースです。

すべてのエージェント ワークフローは、LLM に接続されたエージェントを使用してタスクを実行します。 エージェントは、反復的なループ 処理を使用して、複雑な複数ステップの問題を解決します。 LLM は、パターンを認識し、人間の操作なしでジョブを実行するトレーニング済みのプログラムです。 エージェント ワークフローを使用すると、LLM、プロンプト、オーケストレーションを含むエージェントの意思決定ロジックを、統合コンポーネントとタスク実行コンポーネントから分離できます。

エージェントは、モデルに接続するときに次の機能と利点を提供します。

  • エージェントの役割、操作方法、および応答方法に関する指示を受け入れます。
  • 指示と要求、またはプロンプトを受信して応答 します
  • 使用可能な情報に基づいて、入力を処理し、データを分析し、選択を行います。
  • 要求を処理するために必要なタスクを完了するためのツールを選択します。 ツールは、タスクを完了する 1 つ以上のアクションを含むシーケンスです。
  • 柔軟性を必要とし、流動的、動的、予測不能、不安定な環境に適応します。

エージェントが使用するツールを作成するために使用できるアクションを提供する 1,400 以上のコネクタ を備えた会話型エージェント ワークフローでは、AI 機能から大きなメリットを得られるさまざまなシナリオがサポートされています。

次のスクリーンショットは、このガイドで作成する会話エージェント ワークフローの例を示しています。 ワークフローでは、エージェントを使用して現在の天気を取得し、その情報を電子メールで送信します。 この図は、エージェントを設定するエージェント情報ペインを示し、エージェントが従うチャット インターフェイスを介して指示を提供します。

エージェントの動作を説明する手順の概要と、エージェント ワークフローの概要については、 Azure Logic Apps の AI エージェント ワークフローに関するページを参照してください。

このガイドでは、 Conversational Agents 型の標準ロジック アプリ ワークフローの例を作成する方法について説明します。これは、人間が提供する対話または入力を通じて機能します。 エージェントは要求を満たすために、構築したツールを使用して、実際のサービスとシステムで必要なタスクを完了します。

[前提条件]

  • Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。

  • 新規または既存の Standard ロジック アプリのリソースまたはプロジェクト。 次のいずれかの開発環境で作業できます。

    このガイドの例では、Azure portal を使用します。 ただし、ワークフロー デザイナーを開いた後、デザイナーを使用する手順は、ポータルと Visual Studio Code の間でほとんど似ています。 一部の操作には小さな違いがあります。

  • モデル ソースには、 デプロイされた Azure OpenAI サービス モデルを含む Azure OpenAI サービス リソースが必要です。

    • エージェント ワークフローでは、特定のモデルのみがサポートされます。 詳細については、「 サポートされているモデル」を参照してください。

    • ワークフロー内のエージェントから Azure OpenAI Service でデプロイされたモデルへの接続を作成するときに、リソース名が必要です。

    このリソースとモデルがない場合は、次の記事を参照してください。

    Important

    Azure Logic Apps ではエージェント ワークフローに追加料金は発生しませんが、モデルの使用には料金が発生します。 詳細については、Azure 料金計算ツールを参照してください。

  • エージェントとデプロイされたモデルの間に新しい接続を作成するときに使用する認証。

    • マネージド ID の認証

      この接続では、 マネージド ID で Microsoft Entra ID を使用した認証がサポートされます。 運用環境のシナリオでは、このオプションは追加料金なしで最適で優れたセキュリティを提供するため、可能な場合はマネージド ID を使用することを強くお勧めします。 この ID は Azure によって自動的に管理されるため、資格情報やシークレットなどの機密情報を提供したり管理したりする必要はありません。 この情報は、個々のユーザーがアクセスすることもできません。 マネージド ID を使用して、Microsoft Entra 認証をサポートするすべてのリソースのアクセスを認証できます。

      マネージド ID 認証を使用するには、Standard ロジック アプリ リソースでシステム割り当てマネージド ID を有効にする必要があります。 既定では、システム割り当てマネージド ID は Standard ロジック アプリで有効になっています。 現在、このリリースでは、ユーザー割り当てマネージド ID の使用はサポートされていません。

      システム割り当て ID が無効になっている場合は、 ID を再び有効にします

      システム割り当て ID には、 最小特権の原則に基づいて、Microsoft Entra ロールベースのアクセス制御 (RBAC) に対して次のいずれかのロールが必要です。

      モデル ソース Role
      Azure OpenAI サービス リソース - Cognitive Services OpenAI ユーザー (最小特権)
      - Cognitive Services OpenAI 共同作成者

      マネージド ID のセットアップの詳細については、次のリソースを参照してください。

    • URL とキーベースの認証

      この接続では、デプロイされたモデルのエンドポイント URL と API キーを使用した認証がサポートされます。 ただし、接続を作成する前に、これらの値を手動で検索する必要はありません。 モデル ソースを選択すると、値が自動的に表示されます。

      Important

      この認証オプションは、このガイドの例、探索的シナリオ、非運用環境シナリオ、または組織のポリシーでマネージド ID 認証を使用できないことが指定されている場合にのみ使用します。

      一般に、資格情報、シークレット、アクセス キー、接続文字列、証明書、拇印などの機密データと個人データを、使用可能なレベルまたはサポートされている最高レベルのセキュリティで保護し、保護してください。 機密データをハードコーディングしたり、他のユーザーと共有したり、他のユーザーがアクセスできる場所でプレーンテキストで保存したりしないでください。 侵害された場合にシークレットをローテーションまたは取り消す計画を設定します。 詳細については、次のリソースを参照してください。

  • この例に従うには、電子メールを送信するための電子メール アカウントが必要です。

    このガイドの例では、Outlook.com アカウントを使用します。 独自のシナリオでは、Office 365 Outlook、Microsoft Teams、Slack など、Azure Logic Apps でサポートされている任意の電子メール サービスまたはメッセージング アプリを使用できます。 他のメール サービスまたはアプリのセットアップは、一般的に例に似ていますが、小さな違いがあります。

エージェント ワークフローでサポートされるモデル

次の一覧は、エージェント ワークフローに使用できるモデルを示しています。

  • gpt-5
  • gpt-4.1
  • gpt-4.1-mini
  • gpt-4.1-nano
  • gpt-4o
  • gpt-4o-mini
  • gpt-4
  • gpt-35-turbo

制限事項と既知の問題

次の表では、現在の制限事項と、このリリースの既知の問題について説明します。

制限事項 Description
サポートされているワークフローの種類 会話型エージェント ワークフローを作成するには、 Conversational Agents ワークフローの種類を選択する必要があります。 ステートフルワークフロータイプまたはステートレスワークフロータイプから始めて、エージェントを追加することはできません。
Authentication マネージド ID 認証では、現時点ではシステム割り当てマネージド ID のみを使用できます。 現在、ユーザー割り当てマネージド ID のサポートは利用できません。
エージェント ツール - ツールを作成するには、トリガーではなくアクションのみを使用できます。

- ツールはアクションで始まり、常に少なくとも 1 つのアクションを含みます。

- ツールは、そのツールが存在するエージェント内でのみ機能します。

- 制御フロー アクションは現在サポートされていません。
Documentation このガイドでは、会話型エージェント ワークフローを作成するための基本的な手順について説明します。 高度な機能に関するドキュメントが進行中です。
全般的な制限 Azure OpenAI サービスと Azure Logic Apps の制限に関する一般的な情報については、次の記事を参照してください。

- Azure OpenAI サービスのクォータと制限
- Azure Logic Apps の制限と構成

会話型エージェント ワークフローを作成する

空の エージェントを使用してワークフローを作成するには、次の手順に従います。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。

  2. ロジック アプリのメニューの [ ワークフロー] で、[ ワークフロー] を選択します。

  3. [ ワークフロー ] ページのツール バーで、[ 追加>追加] を選択します。

  4. [ ワークフローの作成 ] ウィンドウで、次の手順を実行します。

    1. [ ワークフロー名] に、使用するワークフローの名前を指定します。

    2. 会話エージェント>作成 を選択します。

    [ワークフロー] ページが開き、[ワークフローの作成] ウィンドウにワークフロー名が表示され、[Conversational Agents] オプションが選択され、[作成] ボタンが選択されている Standard ロジック アプリ リソースを示すスクリーンショット。

    デザイナーが開き、[ 新しいチャット セッションが開始されたとき ] という名前の必要なトリガーと、後で設定する必要がある空の エージェント アクションで始まるワークフローが表示されます。 ワークフローを保存する前に、 エージェント アクションの次のセットアップ タスクを完了する必要があります。

    • デプロイされたモデルへの接続を作成します。 このタスクは、後のセクションで完了します。

    • エージェントが果たす役割、エージェントが実行できるタスク、およびその他の情報を説明するシステム命令を提供して、エージェントの操作方法をより深く理解できるようにします。 このタスクは、後のセクションでも完了します。

    既定のトリガーと空のエージェントを含むワークフロー デザイナーを示すスクリーンショット。

  5. エージェントとモデルの間の接続を設定できるように、次のセクションに進みます。

    ワークフローを今すぐ保存しようとすると、デザイナー ツール バーの [エラー ] ボタンに赤い点が表示されます。 変更を保存する前にエージェントがセットアップを必要とするため、デザイナーによってこのエラー状態が通知されます。 ただし、今すぐエージェントを設定する必要はありません。 引き続きワークフローを作成できます。 ワークフローを保存する前に、必ずエージェントを設定してください。

    スクリーンショットは、エージェントのアクション情報ペインに赤いドットとエラーが表示された [エラー] ボタンを含むワークフロー デザイナーのツール バーを示しています。

エージェントをモデルに接続する

次に、次の手順に従って、エージェントとデプロイされたモデルの間に接続を作成します。

  1. デザイナーで、[ エージェント ] アクションのタイトル バーを選択して、[接続の 作成 ] ウィンドウを開きます。

    このウィンドウは、既存の作業接続がない場合にのみ開きます。

  2. [ 新しい接続の作成 ] セクションで、次の情報を指定します。

    パラメーター 必須 価値 Description
    接続名 イエス < 接続名> デプロイされたモデルへの接続に使用する名前。

    この例では 、fabrikam-azure-ai-connection を使用します。
    エージェント モデル ソース イエス Azure OpenAI デプロイされたモデルのソース。
    認証の種類 イエス - マネージド ID

    - URL とキーベースの認証
    デプロイされたモデルへの ID のアクセスの検証と承認に使用する認証の種類。

    - マネージド ID では、 Standard ロジック アプリでマネージド ID を有効にし、ロールベースのアクセスに必要なロールを設定する必要があります。 詳細については、「前提条件」を参照してください。

    - URL とキーベースの認証 には、デプロイされたモデルのエンドポイント URL と API キーが必要です。 これらの値は、モデル ソースを選択すると自動的に表示されます。

    重要: 例と探索の場合のみ、 URL とキーベースの認証を使用できます。 運用シナリオでは、 マネージド ID を使用します
    Subscription イエス < Azure-subscripton> Azure OpenAI Service リソースに関連付けられている Azure サブスクリプションを選択します。
    Azure OpenAI リソース はい(エージェント モデル ソースAzure OpenAI の場合のみ) < Azure-OpenAI-Service-resource-name> Azure OpenAI Service リソースを選択します。
    API エンドポイント イエス 自動的に設定 Azure OpenAI サービスにデプロイされたモデルのエンドポイント URL。

    この例では、https://fabrikam-azureopenai.openai.azure.com/を使用します。
    API キー はい(認証の種類URL とキーベースの認証の場合のみ) 自動的に設定 Azure OpenAI サービスにデプロイされたモデルの API キー。

    たとえば、モデル ソースとして Azure OpenAI を選択し、認証用 にマネージド ID を 選択した場合、接続情報は次の例のようになります。

    Azure OpenAI サービスにデプロイされたモデルの接続の詳細の例を示すスクリーンショット。

  3. 完了したら、[ 新規作成] を選択します。

    別の接続を作成する場合は、[ パラメーター ] タブで下にスクロールし、[ 接続の変更] を選択します。

  4. 次のセクションに進みます。

エージェントの名前を変更する

次の手順でエージェント名を更新して、エージェントの目的を明確に特定します。

  1. エージェント情報ウィンドウが開いていない場合は、デザイナーでエージェント のタイトル バーを選択してウィンドウを開きます。

  2. エージェント情報ウィンドウで、エージェント名を選択し、新しい名前 ( Weather エージェントなど) を入力します。

    ワークフロー デザイナー、ワークフロー トリガー、名前が変更されたエージェントを示すスクリーンショット。

    モデルへの接続が正しくない場合は、[ Deployment Model Name]\(デプロイ モデル名 \) の一覧は使用できません。

  3. 次のセクションに進んで、エージェントへのシステム指示を提供してください。

エージェントのシステム指示を設定する

エージェントには、エージェントが実行できるロールと、エージェントが実行できるタスクを記述する システム命令 が必要です。 エージェントがこれらの責任を学習して理解できるように、次の情報を含めることもできます。

  • ワークフロー構造
  • 使用可能なアクション
  • 制限事項または制約事項
  • 特定のシナリオまたは特殊なケースの相互作用

最良の結果を得るには、システム命令が規範的であり、複数の反復でこれらの命令を調整する必要があることを確認します。

  1. [ エージェントの指示] の [ システム指示 ] ボックスに、エージェントがその役割とタスクを理解するために必要なすべての情報を入力します。

    会話エージェントは、実行時にチャット インターフェイスを介して追加の入力を受け付けることができます。

    この例では、気象エージェントの例では、次のサンプル手順を使用して、後で質問し、テスト用に独自の電子メール アドレスを指定します。

    あなたは、指定された場所の天気に関する質問に回答する AI エージェントです。 また、メール アドレスが指定されている場合は、天気予報を電子メールで送信することもできます。 アドレスが指定されていない場合は、電子メール アドレスを要求します。

    必要に応じて、天気予報を箇条書きで書式設定します。 簡潔で便利な応答を作成しますが、会話的でフレンドリーなトーンを使用します。 「傘を運ぶ」や「レイヤーに着せ替える」などの提案を含めることができます。

    この例は、エージェントのシステム指示にどのように表示されるかを次に示します。

    ワークフロー デザイナーと、システム命令を含むエージェントを示すスクリーンショット。

  2. これで、ワークフローを保存できます。 デザイナーのツール バーで、 [保存] を選択します。

  3. この段階でワークフローにエラーがないことを確認するには、次の手順に従います。

    1. デザイナーのツール バーで、[ チャット] を選択します。

    2. チャット クライアント インターフェイスで、次の質問をします。 シアトルの現在の天気は何ですか?

    3. 応答が期待値であることを確認します。次に例を示します。

      スクリーンショットは、統合チャット インターフェイスを示しています。

    4. デザイナーに戻って、ワークフローを再開してください。

    5. ワークフロー サイドバーの [ ツール] で、[ 実行履歴] を選択します。

    6. [ 実行履歴 ] ページの [ 実行履歴 ] タブの [ 識別子 ] 列で、最新のワークフロー実行を選択します。

      ページに実行が表示されない場合は、ツールバーの 再読み込み を選択します。

      [状態] 列に [実行中] 状態が表示されている場合、エージェント ワークフローは引き続き動作しています。

      監視ビューが開き、ワークフロー操作とその状態が表示されます。 [エージェント ログ] ウィンドウが開き、前に指定したシステム指示が表示されます。 ペインには、エージェントの応答も表示されます。

      監視ビュー、操作の状態、エージェント ログを示すスクリーンショット。

      ただし、現時点ではエージェントに使用するツールはありません。つまり、エージェントがタスクを完了するために必要なツールを作成するまで、エージェントは実際に電子メールの送信などの特定のアクションを実行できません。 メール サーバーがメッセージを拒否したというメールが届く場合もあります。

  4. デザイナーに戻る 監視ビューのツール バーで、[ 編集] を選択します。

現在の天気を取得するツールを作成する

エージェントが Azure Logic Apps で使用できる事前構築済みアクションを実行するには、エージェントが使用する 1 つ以上のツールを作成する必要があります。 ツールには、少なくとも 1 つのアクションとアクションのみを含める必要があります。 エージェントは、特定の引数を使用してツールを呼び出します。

この例では、エージェントには現在の天気を取得するツールが必要です。 このツールは、次の手順に従ってビルドできます。

  1. デザイナーで、エージェント内と [追加] ツールでプラス記号 (+) を選択し、使用可能なアクションを参照できるウィンドウを開きます。

  2. [ アクションの追加 ] ウィンドウで、次の 一般的な手順 に従って、シナリオのアクションを追加します。

    この例では、現在の天気を取得という名前の MSN Weather アクションを使用 します

    アクションを選択すると、 ツール とアクションの両方がデザイナーのエージェント内に同時に表示されます。 両方の情報ウィンドウも同時に開きます。

    [現在の天気の取得] という名前のアクションを含むツールを格納する気象エージェント アクションがあるワークフロー デザイナーを示すスクリーンショット。

  3. ツール情報ウィンドウで、目的を説明するようにツールの名前を変更します。

    この例では 、現在の天気を取得します

  4. [ 詳細 ] タブの [ 説明] に、ツールの説明を入力します。

    この例では、 指定した場所の天気を取得します。

    [ 説明] の [ エージェント パラメーター] セクションは、特定のユース ケースにのみ適用されます。 詳細については、「 エージェント パラメーターの作成」を参照してください。

  5. 次のセクションに進み、これらのユース ケースに基づいて、エージェント パラメーターとそのユース ケース、および作成方法の詳細を確認します。

[Get current weather]\(現在の天気の取得\) アクションのエージェント パラメーターを作成する

通常、アクションには、使用する値を指定する必要があるパラメーターがあります。 ツールのアクションは、1 つの違いを除いてほぼ同じです。 エージェントがツールのアクションのパラメーター値を指定するために使用するエージェント パラメーターを作成できます。 モデル生成の出力、モデル以外のソースからの値、または組み合わせを指定できます。 詳細については、「 エージェントパラメーター」を参照してください。

次の表では、エージェント パラメーターを作成するためのユース ケースと、そのユース ケースに基づいてそれらを作成する場所について説明します。

移行先 エージェント パラメーターを作成する場所
モデル生成の出力のみを使用します。
同じツール内の他のアクションと共有します。
アクション パラメーターから開始します。 詳細な手順については、「 モデル生成出力のみを使用する」を参照してください。
モデル以外の値を使用します。 エージェント パラメーターは必要ありません。

このエクスペリエンスは、Azure Logic Apps の通常のアクション セットアップ エクスペリエンスと同じですが、「 モデル以外のソースからの値を使用する」で便宜上繰り返されます。
モデル生成の出力をモデル以外の値と共に使用します。
同じツール内の他のアクションと共有します。
ツールの [ エージェント パラメーター] セクションから開始します。 詳細な手順については、「 モデル出力とモデル以外の値を使用する」を参照してください。
モデル生成の出力のみを使用する

モデルで生成された出力のみを使用するアクション パラメーターの場合は、次の手順に従ってエージェント パラメーターを作成します。

  1. ツールで、アクションを選択して情報ウィンドウを開きます。

    この例では、アクションは [現在の天気を取得] です

  2. [ パラメーター ] タブで、パラメーター ボックス内を選択して、パラメーター オプションを表示します。

  3. [ 場所 ] ボックスの右端にある星ボタンを選択します。

    このボタンには、次のヒントがあります。 エージェント パラメーターを生成する場合に選択します

    パラメーター ボックス内のマウス カーソル、パラメーター オプション、およびエージェント パラメーターを生成するための選択したオプションを示すアクションを示すスクリーンショット。

    [ エージェント パラメーターの作成 ] ウィンドウには、[ 名前]、[ 種類]、[ 説明] フィールドが表示され、ソース アクション パラメーターから事前に設定されます。

    次の表では、エージェント パラメーターを定義するフィールドについて説明します。

    パラメーター 価値 Description
    名前 < agent-parameter-name> エージェント パラメーター名。
    タイプ < エージェントパラメータデータ型> エージェント パラメーターのデータ型。
    説明 < agent-parameter-description> パラメーターの目的を簡単に識別するエージェント パラメーターの説明。

    Microsoft では、アクションの Swagger 定義に従うことをお勧めします。 たとえば、グローバルなマルチテナント Azure でホストおよび管理されている MSN Weather "共有" コネクタからの現在の天気の取得アクションについては、MSN Weather コネクタのテクニカル リファレンス記事を参照してください。

  4. 準備ができたら、 [作成] を選択します。

    次の図は、Location エージェント パラメーターを使用した現在の天気の取得アクションの例を示しています。

    [天気エージェント]、[現在の天気を取得] ツール、および [現在の天気の取得] という名前の選択されたアクションを示すスクリーンショット。Location アクション パラメーターには、作成されたエージェント パラメーターが含まれます。

  5. ワークフローを保存します。

モデル以外のソースの値を使用する

モデル以外の値のみを使用するアクション パラメーター値の場合は、ユース ケースに最適なオプションを選択します。

ワークフローで以前の操作からの出力を使用する

これらの出力から参照して選択するには、次の手順に従います。

  1. パラメーター ボックス内を選択し、稲妻アイコンを選択して動的コンテンツ リストを開きます。

  2. 一覧の [トリガーまたはアクション] セクションで、目的の出力を選択します。

  3. ワークフローを保存します。

式の結果を使用する

式を作成するには、次の手順に従います。

  1. パラメーター ボックス内を選択し、関数アイコンを選択して式エディターを開きます。

  2. 使用可能な関数から選択して式を作成します。

  3. ワークフローを保存します。

詳細については、 Azure Logic Apps のワークフロー式関数のリファレンス ガイドを参照してください。

モデル出力とモデル以外の値を使用する

一部のシナリオでは、モデルで生成された両方の出力と非モデル値を使用するアクション パラメーター値を指定する必要がある場合があります。 たとえば、静的テキスト、ワークフロー内の以前の操作からのモデル以外の出力、モデルによって生成された出力を使用する電子メール本文を作成できます。

これらのシナリオでは、次の手順に従って、ツールでエージェント パラメーターを作成します。

  1. デザイナーで、エージェント パラメーターを作成するツールを選択します。

  2. [ 詳細 ] タブの [ エージェント パラメーター] で、[ パラメーターの作成] を選択します。

  3. [ 新しいエージェント パラメーター] を展開し、次の情報を指定しますが、アクション パラメーターの詳細と一致します。

    この例では、アクションの例は Get current weather です

    Microsoft では、アクションの Swagger 定義に従うことをお勧めします。 たとえば、 現在の天気の取得 アクションに関するこの情報を確認するには、 MSN Weather コネクタのテクニカル リファレンス記事を参照してください。 このアクションの例は、マルチテナント Azure 上の共有クラスターでホストおよび実行される MSN Weather マネージド コネクタによって提供されます。

    パラメーター 価値 Description
    名前 < agent-parameter-name> エージェント パラメーター名。
    タイプ < エージェントパラメータデータ型> エージェント パラメーターのデータ型。
    説明 < agent-parameter-description> パラメーターの目的を簡単に識別するエージェント パラメーターの説明。 次のオプションから選択するか、それらを組み合わせて説明を指定できます。

    - パラメーターの目的、許可される値、制限、制限などの詳細を含むプレーン リテラル テキスト。

    - ワークフロー内の以前の操作からの出力。 これらの出力を参照して選択するには、[ 説明 ] ボックス内を選択し、稲妻アイコンを選択して動的コンテンツ リストを開きます。 一覧から、目的の出力を選択します。

    - 式の結果。 式を作成するには、[ 説明 ] ボックス内を選択し、関数アイコンを選択して式エディターを開きます。 使用可能な関数から選択して式を作成します。

    完了すると、[ エージェント パラメーター] の下に新しいエージェント パラメーターが表示されます。

  4. デザイナーのツールで、アクションを選択してアクション情報ウィンドウを開きます。

  5. [ パラメータ ]タブで、パラメータボックス内を選択してパラメータオプションを表示し、ロボットアイコンを選択します。

  6. [エージェント パラメーター] ボックスの一覧から、前に定義したエージェント パラメーターを選択します。

    たとえば、完成した [ 現在の天気の取得 ] ツールは次の例のようになります。

    エージェントと、名前が [現在の天気の取得] になった選択したツールがあるワークフロー デザイナーを示すスクリーンショット。

  7. ワークフローを保存します。

電子メールを送信するツールを作成する

多くのシナリオでは、通常、エージェントには複数のツールが必要です。 この例では、エージェントには、天気予報を電子メールで送信するツールが必要です。

このツールをビルドするには、次の手順に従います。

  1. デザイナーのエージェント アクション内で、既存のツールの横にあるプラス記号 (+) を選択してアクションを追加します。

  2. [ アクションの追加 ] ウィンドウで、次の 一般的な手順 に従って、新しいツールの別のアクションを選択します。

    例では、電子メールの送信 (V2) という名前の Outlook.com アクションを使用します。

    前と同様に、アクションを選択すると、新しい ツール とアクションの両方が、デザイナーのエージェント内に同時に表示されます。 両方の情報ウィンドウが同時に開きます。

    スクリーンショットは、Weather エージェントを使用したワークフロー デザイナー、現在の天気ツールの取得、および電子メールの送信 (V2) という名前のアクションを含む新しいツールを示しています。

  3. ツール情報ウィンドウで、ツール名を更新してツールの目的を明確にします。

    例では、[ 電子メールの送信] を使用します

  4. [ 詳細 ] タブで、次の情報を入力します。

    1. [ 説明] に、ツールの説明を入力します。

      この例では、 電子メールで天気予報を送信するを使用します。

2 番目のエージェント ツールの例は、次の例のようになります。

スクリーンショットは、エージェント内の完成した 2 番目のツールを示しています。

"電子メールの送信 (V2)" アクションのエージェント パラメーターを作成する

[ 電子メールの送信 (V2)] アクションの場合、エージェント パラメーターを作成する一般的な手順は、「 現在の天気を取得する」アクションのエージェント パラメーターを作成 する手順と似ていますが、異なるパラメーターは除きます。

[ 電子メールの送信 (V2)] アクションで、 前述の一般的な手順 に従って、 ToSubjectBody パラメーターのエージェント パラメーターを作成します。 アクションの Swagger 定義については、「 メールの送信 (V2)」を参照してください。

完了すると、電子 メールの送信 (V2) アクションには、次の例のようなエージェント パラメーターがあります。

スクリーンショットには、[Send an email V2]\(電子メールの送信 V2\) という名前のアクションの情報ペインと、To、Subject、Body という名前の以前に定義されたエージェント パラメーターが示されています。

エージェントとツールのベスト プラクティス

次のセクションでは、より優れたエージェントとツールの構築に役立つ推奨事項、ベスト プラクティス、およびその他のガイダンスについて説明します。

Agents

次のガイダンスでは、エージェントのベスト プラクティスを示します。

"Compose" アクションを使用したエージェントとツールのプロトタイプ作成

実際のアクションとライブ接続を使用してエージェントとツールのプロトタイプを作成するのではなく、 Compose アクション を使用して実際のアクションを "モック" またはシミュレートします。 この方法には次のような利点があります。

  • 作成 アクションでは副作用が発生しないため、これらのアクションはイデーション、設計、テストに役立ちます。

  • ライブ接続を設定して使用しなくても、システム命令、プロンプト、ツール名、説明、エージェントのパラメーターと説明の下書きと調整を行うことができます。

  • エージェントとツールが Compose アクションでのみ動作することを確認すると、実際のアクションを入れ替える準備が整います。

  • 実際のアクションに切り替えるときは、エージェント パラメーターを再ルーティングまたは再作成して、実際のアクションを操作する必要があります。時間がかかる場合があります。

チャット履歴コンテキストの長さを管理する

ワークフロー エージェントは、次の対話のために保持してモデルに渡すトークンまたはメッセージの数に関する現在の制限に基づいて、ツール呼び出しを含むチャット履歴またはコンテキストを保持します。 時間の経過と同時に、エージェントの履歴が拡大し、最終的にモデルの コンテキスト長 の制限または入力トークンの最大数を超えます。 モデルはコンテキストの長さが異なります。

たとえば、 gpt-4o では 128,000 個の入力トークンがサポートされています。各トークンの文字数は 3 から 4 文字です。 エージェント履歴がモデルのコンテキスト長に近づく場合は、古いメッセージまたは無関係なメッセージを削除して制限を超えないようにすることを検討してください。

エージェント履歴を減らす方法を次に示します。

  • [作成] アクションを使用して、ツールの結果のサイズを小さくします。 詳細については、「 ツール - ベスト プラクティス」を参照してください。

  • システム命令とプロンプトを慎重に作成して、モデルの動作を制御します。

  • 試験段階の機能: チャット履歴に保持してモデルに渡すトークンまたはメッセージの最大数を減らすことができるように、チャットの削減を試すことができます。

    ワークフロー エージェントには、 Azure OpenAI 組み込みのサービス プロバイダー コネクタとほぼ同じ高度なパラメーターがあります。ただし、 エージェント履歴の縮小の種類 の高度なパラメーターは、エージェントにのみ存在します。 このパラメーターは、トークンまたはメッセージの最大数に基づいて、エージェントが保持する履歴を制御します。

    この機能はアクティブな開発段階にあり、すべてのシナリオで動作しない場合があります。 [エージェント履歴の削減の種類] オプションを変更して、トークンまたはメッセージの制限を減らすことができます。 次に、必要な数値の制限を指定します。

    この機能を試すには、次の手順に従います。

    1. デザイナーで、エージェントのタイトル バーを選択して情報ウィンドウを開きます。

    2. [ パラメーター ] タブで、[ 高度なパラメーター ] セクションを見つけます。

    3. Agent History Reduction Type という名前のパラメーターが存在するかどうかを確認します。 そうでない場合は、[ 詳細パラメーター ] ボックスの一覧を開き、そのパラメーターを選択します。

    4. [エージェント履歴の削減の種類] ボックスの一覧から、次のいずれかのオプションを選択します。

      Option Description
      トークン数の削減 [最大トークン数] という名前のパラメーターを表示します。 エージェント履歴に保持し、次の対話のためにモデルに渡すトークンの最大数を指定します。 既定値は、Azure OpenAI サービスで現在使用されているモデルによって異なります。 既定の制限は 128,000 です
      メッセージ数の削減 Message Count Limit という名前のパラメーターを表示します。 エージェント履歴に保持し、次の対話のためにモデルに渡すメッセージの最大数を指定します。 既定の制限はありません。

Tools

次のガイダンスでは、ツールのベスト プラクティスを示します。

  • この名前は、ツールにとって最も重要な値です。 名前が簡潔でわかりやすいものになっていることを確認します。

  • ツールの説明では、ツールに役立つ便利なコンテキストが提供されます。

  • ツール名と説明の両方に文字制限があります。

    一部の制限は、ワークフロー内のエージェントに変更を保存する場合ではなく、実行時に Azure OpenAI Service のモデルによって適用されます。

  • 同じエージェント内のツールが多すぎると、エージェントの品質に悪影響を及ぼす可能性があります。

    適切な一般的なガイドラインでは、エージェントに含まれるツールは 10 個以下にすることをお勧めします。 ただし、このガイダンスは、Azure OpenAI サービスから使用するモデルによって異なります。

  • ツールでは、アクションがすべての入力をモデルから取得する必要はありません。

    モデル以外のソースからのアクション入力と、モデルからの入力を細かく制御できます。 たとえば、ツールに電子メールを送信するアクションがあるとします。 プレーンでほとんど静的な電子メール本文を提供できますが、その電子メール本文の一部にはモデル生成の出力を使用します。

  • モデルに渡す前に、ツールの結果をカスタマイズまたは変換します。

    作成アクションを使用して、モデルに渡す前にツールから結果を変更できます。 この方法には次のような利点があります。

    • モデルに渡される無関係な コンテキスト を減らすことで、応答の品質を向上させます。 大きな応答から必要なフィールドのみを送信します。

    • モデルに渡されるトークンの課金料金を減らし、モデルに渡されるトークンの最大数である コンテキスト長に対するモデルの制限を超えないようにします。 必要なフィールドのみを送信します。

    • ツール内の複数のアクションの結果を結合します。

    • ツールの結果をモックして、実際のアクションから予想される結果をシミュレートできます。 モック アクションは、データをソースで変更せず、Azure Logic Apps の外でのリソース使用に対する料金も発生しません。

エージェント パラメーター

次のガイダンスでは、エージェント パラメーターのベスト プラクティスを示します。

  • 名前は、エージェント パラメーターの最も重要な値です。 名前が簡潔でわかりやすいものになっていることを確認します。

  • エージェント パラメーターの説明は、ツールに役立つ便利なコンテキストを提供します。

認証と承認

設計、開発、クイック テストなどの非運用アクティビティの場合、Azure portal は 開発者キー を提供、管理、使用してワークフローを実行し、ユーザーに代わってアクションを実行します。 次の一覧では、この開発者キーを処理するためのベスト プラクティスをいくつかお勧めします。

  • 開発者キーは、認証と承認のための設計時の利便性としてのみ厳密に扱います。

  • エージェント、自動化、またはより広範なユーザー集団にワークフローを公開する前に、ネットワーク制限付きの Easy Auth または署名済み SAS に移行します。

    基本的に、Azure portal セッション外のユーザーまたは何かがロジック アプリ ワークフローを呼び出す必要がある場合、開発者キーは適切ではなくなります。 Easy Auth を有効にするか、代わりにマネージド ID ベースのフローを使用してください。

エージェント ワークフローを運用環境にリリースする準備ができたら、必ず移行手順に従って 運用の認証と承認を準備してください。 詳細については、「 認証と承認」を参照してください。

運用環境の認証に移行する

  1. ロジック アプリ リソースで、 認証と承認のための Easy Auth を設定します。

  2. 認証に必要なアクセス パターンを適用します。

  3. 必要に応じて、未使用の SAS URL を無効または再生成して、トリガー エンドポイント URL をロックダウンします。

  4. 会話型エージェント ワークフローの場合は、 チャット クライアントの URL を 取得して、人間との対話をサポートする場所に外部チャット クライアント インターフェイスを埋め込むことができます。

認証移行のトラブルシューティング

次の表は、開発者キーから Easy Auth に移行しようとしたときに発生する可能性のある一般的な問題、考えられる原因、および実行できるアクションを示しています。

症状 考えられる原因 アクション
ポータル テストは機能しますが、外部呼び出しでは 401 応答が返されます。 外部呼び出しには、有効な Easy Auth アクセス トークンまたは署名された SAS トークンがありません。 署名付き SAS で Easy Auth を設定するか、ワークフロー トリガー URL を使用します。
デザイナー テストは機能しますが、Azure API Management の呼び出しは失敗します。 API Management の呼び出しには、必要なヘッダー情報がありません。 API Management ポリシーで OAuth 2.0 トークンの取得を追加するか、マネージド ID を使用します。
ロールが変更された後、アクセスに一貫性がありません。 Azure portal でキャッシュされたセッション - サインアウトしてもう一度サインインします。

新しいトークンを取得します。

問題の診断

このセクションでは、エージェント ワークフローをビルドまたは実行するときに発生する可能性のあるエラーや問題のトラブルシューティングに役立つガイダンスについて説明します。

ツールの実行データを確認する

ワークフロー実行履歴には、特定の実行中に何が起こったかを知るのに役立つ有用な情報が用意されています。 エージェント ワークフローの場合、特定のエージェント ループイテレーションのツール実行の入力と出力を見つけることができます。

  1. ワークフロー メニューの [ ツール] で [ 実行履歴 ] を選択し、[ 実行履歴 ] ページを開きます。

  2. [ 実行履歴 ] タブの [ 識別子 ] 列で、目的のワークフロー実行を選択します。

    監視ビューが開き、各ステップの状態が表示されます。

  3. 検査するエージェントを選択します。 右側に、[ エージェント ログ ] ウィンドウが表示されます。

    このウィンドウには、操作中のツールの実行を含むエージェント ログが表示されます。

  4. 特定の時点でツール実行データを取得するには、エージェント ログでそのポイントを見つけて、ツール実行参照を選択します。次に例を示します。

    エージェント ログと選択したツール実行リンクを示すスクリーンショット。

    このアクションにより、監視ビューの一致するツールに移動します。 エージェントは、現在のイテレーション数を表示します。

  5. 監視ビューで、確認する入力、出力、およびプロパティを含むエージェントまたはアクションを選択します。

    次の例は、以前に選択したツールの実行に対して選択したアクションを示しています。

    監視ビュー、現在のエージェント ループイテレーション、選択したアクションと、この時点での入力と出力を示すスクリーンショット。

    エージェントを選択した場合、モデルに渡され、モデルから返される次の情報を確認できます。たとえば、次のようになります。

    • モデルに渡される入力メッセージ。
    • モデルから返された出力メッセージ。
    • モデルがエージェントに呼び出しを求めたツール。
    • モデルにフィードバックされたツールの結果。
    • 各要求で使用されたトークンの数。
  6. 別のエージェント ループイテレーションを確認するには、エージェントで左矢印または右矢印を選択します。

Application Insights のログ

ワークフローの Application Insights または高度なテレメトリを設定した場合は、他のアクションと同様に、エージェント イベントのログを確認できます。 詳細については、「 Azure Logic Apps の標準ワークフローの Application Insights で拡張テレメトリを有効にして表示する」を参照してください。

モデルの最大コンテキスト長を超えました

エージェントのログ履歴がモデルの コンテキスト長または入力トークンの最大数を超えている場合は、次の例のようなエラーが発生します。

このモデルの最大コンテキスト長は 4097 トークンです。 ただし、4927 トークン (メッセージでは 3927、完了時は 1000) を要求しました。 メッセージまたは完了の長さを短くしてください。

エージェントがログに保持し、次の対話のためにモデルに渡すトークンまたはメッセージの数の制限を減らしてみてください。 この例では、[ トークン数の削減 ] を選択し 、[最大トークン数 ] をエラーの指定された最大コンテキスト長 ( 4097) より下の数値に設定できます。

詳細については、「 チャット履歴のコンテキスト長の管理」を参照してください。

サンプル リソースをクリーンアップする

例用に作成したリソースが不要な場合は、引き続き課金されないようにリソースを削除してください。 これらの手順に従って、これらのリソースを含むリソース グループを削除することも、各リソースを個別に削除することもできます。

  1. Azure 検索ボックスに「 リソース グループ」と入力し、[ リソース グループ] を選択します。

  2. この例のリソースを含むリソース グループを見つけて選択します。

  3. [ 概要 ] ページで、[ リソース グループの削除] を選択します。

  4. 確認ウィンドウが表示されたら、リソース グループ名を入力し、[削除] を選択 します