構成内での 仮想エージェント ボットインターコネクト の使用
仮想エージェント ボットインターコネクト を使用して、複数のチャネル間で統一されたチャットエクスペリエンスを作成します。Google Dialogflow、Microsoft Power Virtual Agents、ServiceNow® 仮想エージェント などのセカンダリボットをサポートできます。
仮想エージェント ボットインターコネクト は、多様なチャット環境でプライマリボットとして機能します。これによってチャットをよりシンプルにし、エンドユーザーにとって統一されたチャットエクスペリエンスを作成することができます。仮想エージェント ボットインターコネクト によって、ServiceNow から利用可能な複数のチャネルとさまざまなエンタープライズタスクにエンドユーザーがアクセスすることが可能になります。
- Google Dialogflow や Microsoft Power Virtual Agents などのサードパーティ製ボットとの統合が完了。
- 他のインスタンスの ServiceNow 仮想エージェント ボットと簡単に統合可能。
- 他のサードパーティ製ボットをセカンダリボットとしてシステムに追加する機能。
- ボットインターコネクト でのユーザー認証とアカウントのリンク。
- プライマリおよびセカンダリボットによってサポートされているすべてのスキルを対象とする ボットインターコネクト のインテントディスカバリー。
- プライマリボットとセカンダリボット間の LLM トピック会話
- 会話が一度に 1 つのボットで行われる。
- レポートとアナリティクスを統合する共通の会話モデルとデータストレージが ボットインターコネクト によって提供される。
サポートされているコントロール
すべての入力コントロールとボット応答コントロールがサポートされています。
機能とデフォルトの動作
- 言語サポート
- ボットインターコネクト の応答は翻訳されません。ボットインターコネクト はユーザー言語をセカンダリボットに渡すため、セカンダリボットからその言語で応答が返ってくることを想定しています。たとえば、プライマリボットにドイツ語を話すユーザーがいて、セカンダリインスタンスがドイツ語にローカライズされていた場合、ドイツ語の応答がプライマリボットに返されます。
- セカンダリボットからのタイムアウト値
- このタイムアウト値は、プライマリボットがセカンダリボットからの応答を待機する最大の時間です。[ボットインターコネクト トピックブロック] プロパティでカスタムのタイムアウト値 (ミリ秒単位) を渡すと、これを上書きできます。
- プライマリインスタンスのシェルトピックで、[ボットインターコネクトトピックブロック (Bot Interconnect Topic Block)] ノードを選択します。
- [追加のパラメーター (文字列)] 領域で、スクリプトアイコン
- 次のスクリプトを入力します。
この例では、30000 は 30 秒と同じです。return JSON.stringify({ timeout : 30000 }) - トピックを保存して公開します。
- 終了された会話
- ユーザーが ボットインターコネクト で会話をクローズしたり、ボットインターコネクト の会話がタイムアウトしたりすると、セカンダリボットで会話がクローズされます。注:Microsoft Power Virtual Agents では会話は常に開いたままになります。
- デバッグログ
- ボットインターコネクト インスタンスのデバッグログを有効にするには、sn_va_bot_ic.bot_interconnect.enable.logging システムプロパティを true に設定します。ほとんどのログに添付された会話 ID とファイル名が表示されます。
- セカンダリボットトピックからプライマリボットに出力を渡す
- ボットインターコネクト シェルトピックのセカンダリボット会話の出力に、カスタムロジックを適用できます。
- カスタム変換マップのサポート
開発者は、getTransformerMap メソッドを使用してカスタム変換マップを渡すことができます。カスタム変換マップを使用すると、デフォルトの変換ロジックを上書きできます。
Google Dialogflow の DialogflowInboundTransformer スクリプトインクルードの例:/** Custom transformation map based on control types in DialogFlow messenger **/ getTransformationMap: function() { return { ‘text’: ‘transformText’, ‘info’: ‘transformInfoCards2’, ‘description’: ‘transformDescription’, ‘button’: ‘transformButtonLink’, ‘image’: ‘transformImage’, ‘chips’: ‘transformChips’, /* fallback logic in case VA API response format is mentioned in Dialogflow custom response payload */ ‘servicenow’: ‘transformServiceNowResponse’ }; },この例では、
テキスト、情報、説明などはセカンダリボットに対応するコントロールタイプです。指定されたメソッド (transformText など) は、コントロールタイプの変換を行うために呼び出されます。セカンダリボット応答ごとに、仮想エージェント は getControlType メソッドを使用して、セカンダリボットメッセージの変換マップで指定されたコントロールタイプを返します。Google Dialogflow の受信トランスフォーマーは、これの使用方法の良い例を示します。呼び出された変換メソッドが存在しない場合、仮想エージェント API はそれをエラーとして記録します。
- ライブエージェント接続
- プライマリインスタンスでライブエージェント接続を有効にして、仮想エージェントのインタラクションをセカンダリインスタンスのライブエージェントにルーティングします。考えられる接続シナリオは次のとおりです。
- インタラクションに対応する一致するエージェントがプライマリインスタンスにない場合、ボットインターコネクト はライブエージェント接続で設定された一致条件を評価し、インタラクションをセカンダリインスタンスの適切なライブエージェントにルーティングします。
- 一致する接続が 1 つしかない場合、インタラクションはその接続にルーティングされ、エージェントの可用性がセカンダリインスタンスでチェックされます。
- 一致する接続が複数ある場合、ユーザーには定義された順序でオプションが表示され、選択した接続に接続されます。
- セカンダリインスタンスで利用可能な一致するエージェントが存在しない場合は、次のメッセージが表示されます:「利用可能なエージェントがありません。後でもう一度お試しください。(There are no agents available. Please try again later.)」。
- セカンダリインスタンスに利用可能な一致するエージェントが存在する場合、ユーザーはインタラクションに対応できる、その利用可能なライブエージェントにリダイレクトされます。
会話がプライマリインスタンスで開始された場合、オートパイロットモードは現在、セカンダリインスタンスではサポートされていません。セカンダリインスタンスのライブエージェント接続は、セカンダリインスタンスが非同期モードの場合にのみ機能します。