タスクを特殊なエージェント ループに渡すが、Azure Logic Apps でチャット継続性を維持する (プレビュー)

適用対象: Azure Logic Apps (Standard)

Important

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

ワークフローでは、タスクを特殊な AI エージェント ループに委任する必要があるが、エージェント ループの遷移間でチャットの会話の継続性とコンテキストを保持する必要がある場合があります。 このシナリオでは、エージェント ループは、ワークフローまたはビジネス プロセスのさまざまな段階でドメイン固有のタスクを実行します。 これらのエージェント ループは、動的な決定を行い、タスクを他のエージェント ループに渡すタイミングを理解する必要もあります。 この動作は ハンドオフ パターンと呼ばれます。

このガイドでは、ワークフローのハンドオフ パターンに従う中央エージェント ループと特殊なエージェント ループを設定する方法について説明します。 この例では、最初のトリアージから特殊なサポートまで、完全な顧客体験を管理するカスタマー サービスハンドオフ システムを設定します。

次の表に、入力、タスク、および出力を示します。

要素またはエージェント ループ Description
Input カスタマー サービス要求
カスタマー サービス エージェント ループ 顧客要求をトリアージして分類します。 ルーティング オプションを特定します。
払い戻しエージェント ループ 払い戻し要求、請求に関する質問、払い戻し処理を処理します。
セールス エージェント ループ 販売に関する質問、製品の推奨事項、注文処理を処理します。
アウトプット 完全な会話コンテキストを使用した特殊な応答

[前提条件]

会話型エージェント ワークフローの作成と同じ要件。

必要な Standard ロジック アプリ リソースは、空であるか、他のワークフローを持つことができます。 このガイドでは、必要な会話型エージェント ワークフローを作成します。 このワークフローには、空のエージェント ループと、新しいチャット セッションの開始時に発生する既定のトリガーが含まれます。 ワークフローに必要な既定のトリガーは削除できません。

重要な概念

次の表では、このハンドオフ エージェント ワークフローの例で理解する必要がある主要な概念について説明します。

概念 Description
ツールの分離 ハンドオフ パターンでは、次の種類のツールが区別されます。

- ビジネス ロジックまたは "検索"、"払い戻し"、"注文" などのタスクを実行する通常のツール

- 他のエージェント ループに制御を渡す委任ツール
エージェントループの特殊化 各エージェント ループには、特定の関連するツールと機能があります。

- カスタマー サービス エージェント ループには、質問と要求を委任するためのエージェント ループハンドオフ ツールのみが含まれており、通常のツールはありません。

- 払い戻しスペシャリスト エージェント ループには、次のツールがあります。
-- look_up_item
-- process_refund
-- handoff_<ID>_tool

- セールス スペシャリスト エージェント ループには、次のツールがあります。
-- search_products
-- process_order
-- handoff_<ID>_tool

詳細については、「 ハンドオフ パターンのベスト プラクティス」を参照してください。

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

新しい会話型エージェント ワークフローを作成するには、次の手順に従います。

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

  2. リソースサイドバーの[ワークフロー]で、[ ワークフロー]を選択 します

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

  4. [ ワークフローの作成 ] ウィンドウの [ ワークフロー名] に、「 customer-service-agent-workflow」と入力します。 会話エージェント>作成 を選択します。

    デザイナーが開き、[ 新しいチャット セッションが開始されたとき ] という名前の既定のトリガーと空の エージェント アクションを含むワークフローが表示されます。

エージェント ループと使用する大規模言語モデル (LLM) の間に接続を作成するまで、ワークフローを保存することはできません。

2 - カスタマー サービス エージェント ループを設定する

次の手順に従って、カスタマー サービス エージェント ループのセットアップを追加します。

  1. デザイナーで、空の エージェント アクションを選択します。

  2. 表示された情報ウィンドウで、既定のアクション名を選択し、アクションの名前を Customer Service エージェントに変更します。

  3. エージェント アクションと使用する LLM の間に接続がない場合は、次の手順に従って エージェント アクションを LLM に接続します

  4. [ パラメーター ] タブの [ システム指示 ] ボックスで、次の情報を入力します。

    You're a customer service agent for Fabrikam, Inc. Start by introducing yourself and understanding the customer's request. Based on their needs, you can hand off to specialized agents within this conversation for complex issues that require specialist expertise.
    
    Your role performs the following tasks:
    
    1. Greet customers professionally.
    2. Understand their request or problem.
    3. Always use a friendly, polite, and professional voice.
    4. Hand off tasks to the appropriate specialist agent when necessary.
    
    You exist in a multi-agent system designed to make agent coordination and execution easy. Agents use two primary abstractions: agents and handoffs. An agent includes instructions, tools, and the capability to hand off a conversation to another agent when appropriate. A handoff calls a handoff function, generally named 'handoff_<ID>_tool'. Transfers between agents happen seamlessly in the background. Don't mention or draw attention to these transfers in your conversation with the customer.
    

    完成した カスタマー サービス エージェント は、次の例のようになります。

    完了したカスタマー サービス エージェント ループを示すスクリーンショット。

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

3 - ハンドオフの説明を含む特殊なエージェント ループを追加する

特殊なエージェント ループを追加するには、次の手順に従います。

3.1 - 返金スペシャリストエージェントループを追加する

  1. デザイナーのカスタマー サービス エージェント ループで、プラス記号 (+) を選択し、[ ハンドオフ エージェントの追加] を選択します。

    スクリーンショットは、エージェント ループ間のハンドオフの追加ボタンと、ハンドオフ エージェント ループを追加するための選択されたオプションを示しています。

    新しい空のエージェントがデザイナーに表示されます。 カスタマー サービス エージェントは選択したままですが、[パラメーター] タブから [ハンドオフ] タブにエージェント情報ウィンドウが自動的に切り替わります。

  2. カスタマー サービス エージェント ループの [ハンドオフ ] タブで、次のハンドオフの説明を入力します。

    Hand off to the refund specialist agent for refunds, returns, exchanges, and billing issues. This agent specializes in understanding refund policies, processing returns, and resolving billing disputes with empathy and efficiency.
    

    例えば次が挙げられます。

    スクリーンショットは、新しい払い戻しスペシャリストエージェントループへのハンドオフを含む顧客サービスエージェントループを示しています。

  3. 新しいエージェント ループを選択し、エージェント ループの名前を Refund スペシャリスト エージェントに変更します。

    カスタマー サービス エージェント ループの [ハンドオフ ] タブで、払い戻しエージェント ループの既定の名前が新しい名前に自動的に変更されます。

  4. 払戻エージェント ループの [パラメーター ] タブの [ システム指示 ] ボックスで、次の情報を入力します。

    You're a refund specialist agent for Fabrikam, Inc. You handle refund requests, returns, and billing issues with empathy and efficiency. If the request is outside your refund expertise, you can hand back control to the main agent.
    
    Your role performs the following tasks:
    
    1. Understand the customer's reason for the refund.
    2. Propose appropriate solutions, for example, exchange, fix, or refund.
    3. If a refund is necessary, look up the item details and execute the refund.
    4. Always use an understanding and helpful voice.
    5. Hand back control to the main agent for non-refund questions.
    
    You exist in a multi-agent system designed to make agent coordination and execution easy. Agents use two primary abstractions: agents and handoffs. An agent includes instructions, tools, and the capability to hand off a conversation to another agent when appropriate. A handoff calls a handoff function, generally named 'handoff_<ID>_tool'. Transfers between agents happen seamlessly in the background. Don't mention or draw attention to these transfers in your conversation with the customer.
    

    完成した 払戻スペシャリスト エージェント は、次の例のようになります。

    完成した返金専門担当者ループを示すスクリーンショット。

3.2 - セールス スペシャリスト エージェント ループを追加する

  1. デザイナーで、カスタマーサービスエージェント用ループの下に、別の引き継ぎエージェント用ループを追加します。

    デザイナーに新しい空のエージェント ループが表示された後も、 顧客サービス エージェント は選択されたままになりますが、エージェント ループ情報ウィンドウに、新しいエージェント ループと払い戻しスペシャリスト エージェント ループの両方が含まれる [ハンドオフ ] タブが表示されるようになりました。

  2. カスタマー サービス エージェント ループの [ハンドオフ ] タブで、新しいエージェント ループの下に次のハンドオフの説明を入力します。

    Hand off to the sales specialist agent for product questions, purchase assistance, and sales consultations. This agent excels at understanding customer needs, recommending products, and facilitating purchases.
    

    例えば次が挙げられます。

    スクリーンショットは、新しいセールス スペシャリスト エージェントにハンドオフされた顧客サービス エージェントを示しています。

  3. 新しいエージェント ループを選択し、エージェント ループの名前を Sales スペシャリスト エージェントに変更します。

    カスタマー サービス エージェント ループの [ハンドオフ ] タブで、販売エージェント ループの既定の名前が新しい名前に自動的に変更されます。

  4. 販売エージェント ループの [パラメーター] タブの [ システム指示 ] ボックスで、次の情報を指定します。

    You're a sales specialist agent for Fabrikam, Inc. You help customers with product questions, recommendations, and purchase orders. If the question is outside your sales expertise, you can hand back control to the main agent.
    
    Your role performs the following tasks:
    
    1. Understand customer needs and problems.
    2. Recommend appropriate Fabrikam products.
    3. Discuss product features and benefits.
    4. Handle pricing and facilitate product orders when ready.
    5. Always use an enthusiastic but not pushy voice. Focus on solving customer problems.
    6. Hand back control to the main agent for non-sales questions.
    
    You exist in a multi-agent system designed to make agent coordination and execution easy. Agents use two primary abstractions: agents and handoffs. An agent includes instructions, tools, and the capability to hand off a conversation to another agent when appropriate. A handoff calls a handoff function, generally named 'handoff_<ID>_tool'. Transfers between agents happen seamlessly in the background. Don't mention or draw attention to these transfers in your conversation with the customer.
    

    完成した セールス スペシャリスト エージェント は、次の例のようになります。

    完了したセールス スペシャリスト エージェント ループを示すスクリーンショット。

4 - 特殊なエージェント ループからのハンドオフを設定する

各スペシャリスト エージェント ループのシステム命令では、専門知識ドメイン外で要求を受け取ったときに、メインのカスタマー サービス エージェント ループに制御を戻す機能について説明します。 この機能を提供するには、各スペシャリスト エージェント ループからのハンドオフを設定する必要があります。

4.1 - 払戻エージェント ループからのハンドオフを設定する

払い戻しエージェント ループからカスタマー サービス エージェント ループへのハンドオフを設定するには、次の手順に従います。

  1. 設計ツールで払い戻し専門エージェントを選択します。 表示された情報ウィンドウで、[ ハンドオフ] を選択します。

  2. [ エージェントの選択 ] ボックスの一覧から、ハンドオフの制御を取得するエージェント ループを選択します。この例では、 カスタマー サービス エージェント です。

  3. カスタマー サービス エージェント ループの [ハンドオフの説明 ] ボックスに、ハンドオフの理由を指定します。次に例を示します。

    Return control to the customer service agent when the customer's request is unrelated to refunds, returns, or billing. For example, hand off when customers ask about products, orders, have general questions, or need help that's not related to refunds.

完成したハンドオフは次の例のようになります。

払い戻しエージェント ループからの完了したハンドオフを示すスクリーンショット。

4.2 - セールスエージェントループからの引き継ぎを設定する

次の手順に従って、セールス エージェント ループからカスタマー サービス エージェント ループへのハンドオフを設定します。

  1. デザイナーの画面で、セールススペシャリストエージェントを選択します。 表示された情報ウィンドウで、[ ハンドオフ] を選択します。

  2. [ エージェントの選択 ] ボックスの一覧から、ハンドオフの制御を取得するエージェント ループを選択します。この例では、 カスタマー サービス エージェント です。

  3. カスタマー サービス エージェント ループの [ハンドオフの説明 ] ボックスに、ハンドオフの理由を指定します。次に例を示します。

    Return control to the customer service agent when the customer's request is unrelated to sales, product recommendations, or help with purchases or orders. For example, hand off when customers ask about refunds, returns, billing, have general questions, or need help that's not related to sales.

カスタマー サービス エージェント ループへの終了したハンドオフは、次の例のようになります:

販売エージェントループから完了したハンドオフを示すスクリーンショット。

5 - エージェント ループ固有のツールを設定する

各エージェント ループには、専門知識に関連するタスクを完了するための特殊なツールがあります。 Azure Logic Apps では、エージェント ループごとにこれらのツールをビルドします。 わかりやすくするために、この例では Compose を使用してツール呼び出しをモックします。 実際には、特定のシナリオで実際のタスクを実行するために、使用可能な組み込みアクションまたはコネクタ アクションから選択します。

詳細については、「 ツールの割り当てのベスト プラクティス」を参照してください。

5.1 - 返金エージェント ループにツールを追加する

このセクションでは、払戻スペシャリスト エージェント ループに次の特殊なツールを追加します。

  • 項目を検索
  • 返金処理

5.1.1 - look_up_item ツールを追加する

  1. デザイナーの 払戻スペシャリスト エージェント[追加] ツールで、プラス記号 (+) を選択してアクションを追加します。

  2. [ アクションの追加 ] ウィンドウで、[ 作成 ] アクションを見つけて選択します。

    作成アクションとツール コンテナーには、次のウィンドウが表示されます。

    ワークフロー デザイナー、作成アクション ウィンドウ、およびツール コンテナー ペインを示すスクリーンショット。

  3. 製品アイテムを検索し、アイテム ID を返すようにツールを設定します。

    1. ツール ウィンドウで、ツール名をlook_up_itemに変更します。

    2. [ 説明 ] ボックスに、ツールの目的とタスクに関する詳細を入力します。次に例を示します。

      Find the ID for the product item. The search query can use a description or keywords.

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

    4. [ 新しいエージェント パラメーター] で、次の情報を指定します。

      プロパティ 価値
      名前 item_id
      タイプ String
      説明 The item ID
  4. ツールを実装するように Compose アクションを設定します。

    1. [ 作成 ] ウィンドウで、アクション名を Find itemに変更します。

    2. [ 入力 ] ボックスに、次の JSON を入力します。

      {
         "item_id": "<item-ID>",
         "status": "found"
      }
      
    3. <item-ID>プレースホルダー テキストを選択します。 表示される使用可能な入力ソースからロボット アイコンを選択して、以前に作成したエージェント パラメーターを選択できるようにします。

      スクリーンショットには、[アイテムの検索] という名前の Compose アクション、選択した item-id プレースホルダー テキスト、選択したロボット アイコンが示されています。

    4. [エージェント パラメーター] ボックスの一覧から [item_idを選択します。

      [ アイテムの検索] アクションの入力は、次の例のようになります。

      エージェント パラメーターを参照するモック ツール呼び出しを含む Compose アクションを示すスクリーンショット。

完成した look_up_item ツールと [アイテムの検索] アクションは、次の例のようになります。

完了した検索項目ツールと [アイテムの検索] アクションを示すスクリーンショット。

5.1.2 - process_refund ツールを追加する

払戻スペシャリスト エージェント ループの process_refund ツールを追加して設定するには、次の手順に従います。

  1. look_up_item ツールの横にあるプラス記号 (+) を選択して作成アクションを追加します。

  2. 上記の一般的な手順を繰り返しますが、次の情報を使用します。

Item 価値
ツール名 process_refund
ツールの説明 Process refund for validated items after confirming eligibility.
ツールのエージェント パラメーター - 名前: order_id
- : String
- 説明: The order ID
作成 アクション名 Execute refund
作成アクションの入力 { "refund_status": "success", "refund_amount": 100.58, "confirmation": "Successfully processed refund." }

: この例では、入力のエージェント パラメーターは参照しません。

完成した process_refund ツールと 払い戻しの実行 アクションは、次の例のようになります。

完了したプロセス払い戻しツールと払い戻しアクションの実行を示すスクリーンショット。

5.2 - セールス エージェント ループにツールを追加する

このセクションでは、次の特殊なツールを販売スペシャリスト エージェント ループに追加します。

  • search_products
  • 注文処理

5.2.1 - search_products ツールを追加する

セールス スペシャリスト エージェント ループの search_products ツールを追加して設定するには、上記の一般的な手順を繰り返しますが、次の情報を使用します。

Item 価値
ツール名 search_products
ツールの説明 Search product catalog based on customer needs and preferences.
ツールのエージェント パラメーター - 名前: search_string
- : String
- 説明: The search string
作成 アクション名 Find products

Compose アクションの入力には、次の例を使用できます。

{
   "products": [
      {
         "id": "laptop_001",
         "name": "Adatum 13",
         "price": 1299.99,
         "description": "i7, 16GB RAM, 512GB SSD"
      },
      {
         "id": "laptop_002", 
         "name": "Adatum M2",
         "price": 1199.99,
         "description": "M2, 8GB RAM, 256GB SSD"
      },
      {
         "id": "laptop_003",
         "name": "Adatum X1",
         "price": 1599.99,
         "description": "i7, 16GB RAM, 1TB SSD"
      },
      {
         "id": "laptop_004",
         "name": "Adatum x360",
         "price": 1399.99,
         "description": "i7, 16GB RAM, 512GB SSD, touchscreen"
      }
   ]
}

この例では、入力のエージェント パラメーターは参照しません。

完成した search_products ツールと [製品の検索] アクションは、次の例のようになります。

完成した検索製品ツールと [製品の検索] アクションを示すスクリーンショット。

5.2.2 - process_order ツールを追加する

セールス スペシャリスト エージェント ループの process_order ツールを追加して設定するには、上記の一般的な手順を繰り返しますが、次の情報を使用します。

Item 価値
ツール名 process_order
ツールの説明 Process customer order with product details, pricing, and shipping. Use price in US$.
ツールのエージェント パラメーター パラメーター #1:
- 名前: product_id
- : String
- 説明: The product ID

パラメーター #2:
- 名前: quantity
- : Integer
- 説明: The product quantity
作成 アクション名 Execute order

Compose アクションの入力では、次の例を使用して、プレースホルダーを対応するエージェント パラメーターに置き換えることができます。

{
   "order_status": "success",
   "order_id": "@{guid()}",
   "quantity": "<quantity>",
   "product_id": "<product-ID>"
}

完成した process_order ツールと 注文の実行 アクションは、次の例のようになります。

完了したプロセス注文ツールと注文の実行アクションを示すスクリーンショット。

完成したハンドオフ エージェント ワークフローは、次の例のようになります。

完了したハンドオフ エージェント ワークフローを示すスクリーンショット。

6 - ワークフローをテストする

払い戻しと販売の両方のシナリオで、ワークフローが期待どおりに動作することを確認します。 実際のエージェント ループ応答は、例とは多少異なる場合があります。 ただし、エージェント ループの応答には、重要なコアの詳細が含まれている必要があります。

6.1 - 払い戻しシナリオをテストする

このシナリオでは、想定される動作は、エージェント ループのハンドオフ間でチャット コンテキストを維持しながら、次の手順に従います。

  1. 顧客サービス エージェントが顧客にあいさつし、返品要求を理解します。
  2. カスタマー サービス エージェントは、自動的に払い戻しスペシャリスト エージェントに連絡します。
  3. 払戻スペシャリスト エージェントは、作成したツールを使用して返品を処理します。

このシナリオをテストするには、次の手順に従います。

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

  2. チャット ボックスに、次のテキストを入力します。 Hi, I want to return a pair of shoes. They're too small.

    顧客サービスエージェントシステムが注文番号を求めるプロンプトで応答します。

  3. 注文 ID の例を入力します。 XYZ3245

    払い戻しエージェント ループは、アイテムの状態を確認するためのプロンプトで応答します。

  4. 確認を入力します。 Yes

    払い戻しエージェント ループは、返品が正常に処理されたことを応答し、払い戻し金額を報告し、アイテムを返す手順を含めます。

次のスクリーンショットは、払い戻しシナリオのチャット履歴の例と、会話内のさまざまなポイントで異なるエージェント ループが制御できる場所を示しています。

テスト払い戻しシナリオのチャット履歴を示すスクリーンショット。

6.2 - 払い戻しシナリオのワークフロー実行履歴を確認する

エージェント ループ遷移、ハンドオフ ツール呼び出し、およびエージェント ツール呼び出しを使用してワークフロー実行履歴とチャット履歴を表示するには、次の手順に従います。

  1. チャット ページからデザイナーに戻ります。

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

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

    監視ビューが開き、[ エージェント ログ ] ウィンドウが開き、エージェント ループの遷移、ハンドオフ ツール呼び出し、エージェント ツール呼び出しが埋め込まれたチャット履歴が表示されます。 例えば次が挙げられます。

    スクリーンショットには、チャット履歴、エージェント ループの遷移、払い戻しシナリオのハンドオフ ツール呼び出しを含む監視ビューとエージェント ログ ペインが示されています。

  4. システムの次の動作を確認します。

    • エージェント ループの遷移、ハンドオフ ツール呼び出し、およびエージェント ツール呼び出しは正しく見えます。
    • 払戻スペシャリスト エージェント ループでは、 look_up_item ツールとprocess_refund ツールのみが使用 されます

6.3 - 販売シナリオをテストする

このシナリオでは、想定される動作は、エージェント ループのハンドオフ間でチャット コンテキストを維持しながら、次の手順に従います。

  1. 顧客サービス エージェントは、要求を販売の質問として識別します。
  2. カスタマー サービス エージェントは、自動的にセールス スペシャリスト エージェントに引き上げられます。
  3. セールス スペシャリスト エージェントは、作成したツールを使用して製品を検索し、顧客の購入に役立ちます。

このシナリオをテストするには、次の手順に従います。

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

  2. チャット ボックスに、次のテキストを入力します。 I'm looking for a new laptop for work. Can you help me find something?

    顧客サービス エージェント ループは、顧客を迎え、顧客のニーズと予算に関する詳細情報を求めます。

  3. 予算金額の例を入力します。 $1200

    セールス エージェント ループは、顧客の条件に最も近い製品で応答します。

  4. 注文の要求を入力します。次に例を示します。 Please place an order for an Adatum M2?

    販売エージェント ループは、注文が正常に処理されたことを応答し、出荷やその他のニーズに対してより多くのヘルプを提供します。

次のスクリーンショットは、販売シナリオのチャット履歴の例と、会話内のさまざまなポイントで異なるエージェント ループが制御できる場所を示しています。

テスト販売シナリオのチャット履歴を示すスクリーンショット。

6.4 - 販売シナリオのワークフロー実行履歴を確認する

エージェント ループ遷移、ハンドオフ ツール呼び出し、およびエージェント ツール呼び出しを使用してワークフロー実行履歴とチャット履歴を表示するには、次の手順に従います。

  1. チャット ページからデザイナーに戻ります。

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

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

    監視ビューが開き、[ エージェント ログ ] ウィンドウが開き、エージェント ループの遷移、ハンドオフ ツール呼び出し、エージェント ツール呼び出しが埋め込まれたチャット履歴が表示されます。 例えば次が挙げられます。

    スクリーンショットには、チャット履歴、エージェント ループの遷移、販売シナリオのハンドオフ ツール呼び出しを含む監視ビューとエージェント ログ ペインが示されています。

  4. システムの次の動作を確認します。

    • エージェント ループの遷移、ハンドオフ ツール呼び出し、およびエージェント ツール呼び出しは正しく見えます。
    • 払戻スペシャリスト エージェント ループでは、 search_products ツールとprocess_order ツールのみが使用 されます

6.5 - 他のテストを試す

他のテストを実行して、ハンドオフ パターンが期待どおりに動作することを確認できます。次に例を示します。

  • 混合要求テスト: 払い戻し要求から始めて、売上について質問します。

    プロンプト: Actually, after the refund, I want to buy something new. What do you recommend? 想定される動作: 払い戻しスペシャリスト エージェント ループは、顧客サービス エージェント ループに制御を戻し、次に販売スペシャリスト エージェント ループに制御を引き出します。

  • ドメイン テストの外部: セールス スペシャリスト エージェント ループとチャットしている場合は、関連のない領域についてエージェント ループに問い合わせてください。

    プロンプト: Can you help me with a billing dispute? 想定される動作: セールス スペシャリスト エージェント ループは、カスタマー サービス エージェント ループに制御を戻し、その後、払い戻しスペシャリスト エージェント ループに制御を引き戻します。

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

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

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

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

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

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

ベスト プラクティス

ハンドオフ パターンに従う会話エージェント ワークフローは、シームレスな会話コンテキスト フローを自動的に維持します。 手動によるコンテキストの受け渡しは必要ありません。 次のベスト プラクティスは、エージェント ループが正確なハンドオフを行い、使用するツールに関する正しい選択を行うのに役立ちます。

ハンドオフ パターンのベスト プラクティス

次の表では、ハンドオフ パターンのベスト プラクティスについて説明します。

練習 Description
ハンドオフの明確な説明を記述する エージェント・ループのシステム命令に詳細なハンドオフ命令を指定して、スペシャリスト・エージェント・ループに渡すタイミングと理由を正確に指定します。 たとえば、次の手順では通常、ハンドオフの精度が向上します。

You're an agent in a multi-agent system designed to make agent coordination and execution easy.

Agents use two primary abstractions: agents and handoffs. An agent includes instructions, tools, and the capability to hand off a conversation to another agent when appropriate. A handoff calls a handoff function, generally named 'handoff_<ID>_tool'.

Transfers between agents happen seamlessly in the background. Don't mention or draw attention to these transfers in your conversation with the end user.

: Azure Logic Apps では、ハンドオフはツールとして構築されています。
適切な特殊化を使用してエージェント ループを構築する 明確な境界と特定の専門知識領域を持つエージェント ループ ロールを設計します。
自然なハンドオフ トリガーを指定する 適切で正確なハンドオフをトリガーするための自然言語の手掛かりと顧客の意図を含めます。
双方向ハンドオフを設定する エージェント ループがハンドオフを受け取り、必要に応じて制御を返すことができることを確認します。
ハンドオフ ループを回避する エージェント ループに明確な終了戦略があることを確認します。 同じ会話を何度も引き渡さないようにしてください。
パフォーマンスを監視する さまざまなエージェント ループハンドオフでハンドオフの成功率と顧客満足度を追跡します。

ツールの割り当てのベスト プラクティス

次の表では、エージェント ループにツールを割り当てる際のベスト プラクティスについて説明します。

練習 Description
エージェント固有の関連ツール エージェント ループには、専門知識領域に固有のツールのみが含まれます。 例えば:

- 払い戻しエージェント ループ: アイテム参照、払い戻し処理、返品検証

- セールス エージェント ループ: 製品検索、注文処理、価格ツール
ドメイン外のツールを共有したり、ツールにアクセスしたりできない 各エージェント ループは、専門知識ドメイン内のツールにのみアクセスできます。 この方法では、顧客の混乱を防ぎ、明確な境界を維持します。 例えば:

- 払い戻しエージェント ループでは、販売ツールを使用できません。

- 販売代理店のループでは、払い戻しツールを使用することはできません。
集中型エージェント ループとツール機能 各エージェント ループとツールは、独自の専門ドメインの専門知識に重点を置いています。
ツールの説明を明確にする エージェント ループが適切なツールを選択し、そのツールを使用するタイミングを把握するのに役立つ、各ツールの目的とタスクに関する正確な情報を提供します。 必要な入力パラメーターを指定し、"US$ で価格を使用する" などの使用ガイドラインを追加します。

一般的な問題のトラブルシューティング

次の表に、ハンドオフ パターンで発生する可能性がある一般的な問題を示します。

問題 解決策
エージェント ループのハンドオフが正しくありません より具体的なトリガーと条件を使用してハンドオフの説明を調整します。 ハンドオフ パターンのベスト プラクティスで説明されているハンドオフ手順を含めます。
エージェント ループ間のハンドオフ ループ 明確な終了戦略を含め、エージェント ループが同じ要求を繰り返し渡さないようにします。
エージェント ループの遷移で混乱した顧客 エージェント ループに対して、よりスムーズな切り替えのためにその専門を導入するように指示します。
スペシャリスト エージェント ループで使用できないツール 各エージェント ループで、それぞれの特殊なツールへのアクセスを確認します。
ハンドオフの選択肢が悪い ハンドオフ パターンを監視および分析します。 パフォーマンスに基づいてエージェント ループ命令を更新します。