ハンドオフ ルール

ハンドオフ ルールを使用すると、マルチエージェント アプリケーションで親エージェントと子エージェント間の転送を決定論的に制御できます。これらの転送を制御するには、転送の条件を定義します。条件が満たされたときにすぐに転送を強制するか、条件が満たされるまで転送をブロックできます。

たとえば、ユーザーが認証された場合はエージェント A からエージェント B に転送し、ユーザーが認証されていない場合はエージェント A からエージェント C に転送します。

エージェント転送の同様の制御は手順を使用して実現できますが、その制御は確定的ではありません。コールバックを使用することもできますが、コールバックにはコードの記述が必要です。

サンプル ユースケース:

  • 転送ハンドオフ(エージェントからサブエージェント)
    • 認証済みユーザーと未認証ユーザーを別々のエージェントに転送する
    • ユーザーの意図を理解し、適切なエージェントに転送する
    • リスクの高いリクエスト(金融取引、PII の処理など)を特定のエージェントに転送する
  • 後方引き継ぎ(サブエージェントからエージェント)
    • 認証に失敗した試行を再試行する
    • 追加の情報を収集するためにループバックする
    • ユーザー要件の変更後の再認定
    • 反復的なトラブルシューティング プロセス

構成

エージェント ビルダーからハンドオフ ルールを構成するには:

  1. エージェント ノードの下にある [+] ボタンをクリックします。
  2. [ハンドオフ ルールを追加] を選択します。ハンドオフ ルールの構成ペインが開き、子エージェントが一覧表示されます。
  3. 子エージェントを選択します。ルール構成ペインが開きます。
  4. 転送の方向(親または子)を選択します。
  5. インターフェースを使用して変数に基づいて条件を定義することも、高度なコード オプションを使用することもできます。
  6. [保存] をクリックします。

高度なコード オプションを選択した場合のサンプルを次に示します。

def should_trigger_transfer_callback(callback_context: CallbackContext) -> bool:
  # Access session variables using callback_context:
  # callback_context.variables['variable_name]
  return True

制限事項

次の制限が適用されます。

変数チェックを使用するルールを作成する場合は、複数の条件(変数ごとに 1 つ)を指定できます。これらは、AND または OR の論理演算子を使用してリンクできます。リストに表示されるすべての条件に対して選択できる演算子は 1 つ(AND/OR)のみです。論理演算子を組み合わせて条件をグループ化する場合は、Python コード オプションを使用するか、API を使用して条件を指定します。

変数チェックでサポートされているのは、テキスト、数値、ブール値の変数型のみです(リスト型とカスタム オブジェクト型はサポートされていません)。

ハンドオフをブロックするルールを定義する場合、条件は変数(コードではない)を使用してのみ指定できます。

API を使用して複雑な条件(複数の AND/OR、グループ化などを使用)を作成すると、ハンドオフ ルールは UI で読み取り専用として表示され、API を使用してのみ変更できます。