構成での 仮想エージェント ボットインターコネクト の使用

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:6分
  • 仮想エージェント ボットインターコネクトを使用して、複数のチャネルにわたって統一されたチャットエクスペリエンスを作成します。Google DialogflowMicrosoft Power Virtual Agents、ServiceNow® 仮想エージェント などのセカンダリボットをサポートできます。

    仮想エージェント ボットインターコネクト は、多様なチャット環境でプライマリボットとして機能します。複雑さを軽減し、エンドユーザー向けの統一されたチャットエクスペリエンスを作成するのに役立ちます。 仮想エージェント ボットインターコネクト を使用すると、エンドユーザーは、 ServiceNow から利用可能な複数のチャネルとさまざまなエンタープライズタスクにアクセスできます。

    ボットインターコネクト には次のメリットがあります。
    • Google DialogflowMicrosoft Power Virtual Agents などのサードパーティボットとの統合が完了しています。
    • 他のインスタンスの ServiceNow 仮想エージェント ボットと簡単に統合できます。
    • 他のサードパーティ製ボットをセカンダリボットとしてシステムに追加する機能。
    • ボットインターコネクトでのユーザー認証とアカウントのリンク。
    • プライマリボットとセカンダリボットでサポートされているすべてのスキルで ボットインターコネクト インテントディスカバリー。
    • プライマリボットとセカンダリボット間の LLM トピック会話
    • 会話は一度に 1 つのボットで行われます。
    • ボットインターコネクト は、レポートとアナリティクスを統合する共通の会話モデルとデータストレージを提供します。
    注:
    仮想エージェント ボットインターコネクトには、仮想エージェントと同様のProライセンスが必要です。

    サポートされているコントロール

    すべての入力コントロールとボット応答コントロールがサポートされています。

    機能とデフォルトの動作

    言語サポート
    ボットインターコネクトの応答は翻訳されません。ボットインターコネクト はユーザーの言語をセカンダリボットに渡し、セカンダリボットがその言語で応答を返すことを期待します。たとえば、プライマリボットにドイツ語を話すユーザーがいて、セカンダリインスタンスがドイツ語にローカライズされている場合、ドイツ語の応答がプライマリボットに返されます。
    セカンダリボットからのタイムアウト値
    タイムアウト値は、プライマリボットがセカンダリボットからの応答を待機する最大時間です。ボットインターコネクトトピックブロックのプロパティでカスタムのタイムアウト値 (ミリ秒単位) を渡すと、これを上書きできます。
    1. プライマリインスタンスのシェルトピックで ボットインターコネクトトピックブロック ノードを選択します。
    2. [追加のパラメーター (文字列)] エリアで、[スクリプト] アイコン [スクリプト] アイコンを選択します。
    3. 次のスクリプトを追加します。
      return JSON.stringify({ timeout : 30000 })
      この例では、30000 は 30 秒に相当します。
    4. トピックを保存して公開します。
    終了された会話
    ユーザーが ボットインターコネクト で会話をクローズするか、 ボットインターコネクト 会話がタイムアウトすると、セカンダリボットで会話がクローズされます。
    注:
    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 つしかない場合、インタラクションはその接続にルーティングされ、エージェントの可用性がセカンダリインスタンスでチェックされます。
    • 一致する接続が複数ある場合、ユーザーには定義された順序でオプションが表示され、選択した接続に接続されます。
    • セカンダリインスタンスで利用可能な一致するエージェントが存在しない場合は、「対応可能なエージェントがありません。後でもう一度お試しください。
    • セカンダリインスタンスで利用可能な一致するエージェントが存在する場合、ユーザーはインタラクションに対応できるライブエージェントにリダイレクトされます。

    会話がプライマリインスタンスで開始された場合、オートパイロットモードは現在セカンダリインスタンスではサポートされていません。セカンダリインスタンスのライブエージェント接続は、セカンダリインスタンスが非同期モードの場合にのみ機能します。