ハンドオフ ルールを使用すると、マルチエージェント アプリケーションで親エージェントと子エージェント間の転送を決定論的に制御できます。これらの転送を制御するには、転送の条件を定義します。条件が満たされたときにすぐに転送を強制するか、条件が満たされるまで転送をブロックできます。
たとえば、ユーザーが認証された場合はエージェント A からエージェント B に転送し、ユーザーが認証されていない場合はエージェント A からエージェント C に転送します。
エージェント転送の同様の制御は手順を使用して実現できますが、その制御は確定的ではありません。コールバックを使用することもできますが、コールバックにはコードの記述が必要です。
サンプル ユースケース:
- 転送ハンドオフ(エージェントからサブエージェント)
- 認証済みユーザーと未認証ユーザーを別々のエージェントに転送する
- ユーザーの意図を理解し、適切なエージェントに転送する
- リスクの高いリクエスト(金融取引、PII の処理など)を特定のエージェントに転送する
- 後方引き継ぎ(サブエージェントからエージェント)
- 認証に失敗した試行を再試行する
- 追加の情報を収集するためにループバックする
- ユーザー要件の変更後の再認定
- 反復的なトラブルシューティング プロセス
構成
エージェント ビルダーからハンドオフ ルールを構成するには:
- エージェント ノードの下にある [+] ボタンをクリックします。
- [ハンドオフ ルールを追加] を選択します。ハンドオフ ルールの構成ペインが開き、子エージェントが一覧表示されます。
- 子エージェントを選択します。ルール構成ペインが開きます。
- 転送の方向(親または子)を選択します。
- インターフェースを使用して変数に基づいて条件を定義することも、高度なコード オプションを使用することもできます。
- [保存] をクリックします。
高度なコード オプションを選択した場合のサンプルを次に示します。
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 を使用してのみ変更できます。