シナリオにおけるAIエージェントの使用方法
このチュートリアルでは、AIエージェントシナリオブロックを使用して、AIを活用したシナリオを展開する方法を解説します。外部のAIプロバイダーのアカウントからAPI認証情報を取得する方法、Bright PatternのAIプロバイダー連携アカウントを設定する方法、そして最後に、AI言語モデルを活用して顧客との目的のある対話を自動化するシナリオを構築・テストする方法について解説します。
前提条件
この記事では、以下の条件が満たされていることを前提としています:
- サービスプロバイダーが既定のAI連携アカウントを提供しているか、または以下のいずれかを少なくとも1つお持ちであること:
- Vertex AI アカウント
- OpenAI 開発者アカウント
- Anthropic 開発者アカウント
- カスタム AI ゲートウェイの連携で使用可能なAIプロバイダーのアカウント
- シナリオビルダーの使用方法
- サービスプロバイダーに、AIエージェントブロックの有効化を依頼済みであること
- 音声認識(Speech to Text)連携アカウントの設定済みであること
- 生成AIの使用方法や制限について、ある程度理解していること
手順
以下のチュートリアルでは、以下の内容について解説します:
- AIプロバイダーのAPI認証情報の取得
- AIプロバイダーの連携アカウントの設定
- AIエージェントのシナリオブロックを含むシナリオの設定
- シナリオのテスト
ステップ 1: AI プロバイダーから API 認証情報を取得する
|
サービスプロバイダーからコンタクトセンターに既定(デフォルト)のAIプロバイダーアカウントが提供されている場合は、ステップ3:AIエージェントブロックを使用したシナリオの作成までスキップしてください | ||
Bright Patternでは、生成AIモデルを提供する複数のプロバイダーとの連携が可能です。コンタクトセンターで言語モデルを使用するには、AIプロバイダー連携アカウントを適切なAPI認証情報で設定する必要があります。
以下の例では、OpenAIアカウントのAPI認証情報を使用する方法を示しています。Vertex AI をAIプロバイダーとして使用したい場合は、このセクションをスキップし、代わりにVertex AIのFAQ記事「サービスアカウントキーの作成」に記載されている手順を順に実行してください。
- ご自身の設定ページにアクセスします。OpenAI 組織アカウントに移動してください。

アカウントの「設定」ページを開いてください - OpenAIアカウント内のプロジェクトは、連携の管理に役立ち、アラート閾値や使用制限の設定が可能になります。Bright Patternとの連携に関連付けたいプロジェクトを選択するか、新規に作成してください。

新規プロジェクトを作成するか、選択済みのプロジェクトを選択してください - 目的のプロジェクトが選択済であれば、「プロジェクト」>「メンバー」に移動し、「+ サービスアカウント」をクリックして、プロジェクトに新規のサービスアカウントを追加してください。

プロジェクトにサービスアカウントを追加する - このサービスアカウント用に生成されたAPI認証情報は、AIプロバイダーの統合機能によって、ユーザーに代わってOpenAIリソースにアクセスするために使用されます。アカウントには、適切な説明的な名前を付けてください。

サービスアカウントにわかりやすい名前を付けてください - アカウント作成後に表示されるシークレットキーは、'安全に'保管してください。このキーは一度しか表示されず、キーを所持する者は誰でも、あなたのOpenAIアカウントへのAPIアクセス権限を得ることになります。次のステップでAIプロバイダー連携アカウントを設定する際、このキーを使用します。

新規サービスアカウントのAPIキーを安全に保管してください
ステップ 2: AI プロバイダー統合アカウントを作成する
AIプロバイダー統合アカウントにより、Bright Patternはサードパーティがホストする言語モデルにアクセスできるようになります。このセクションでは、OpenAIをAIプロバイダーとして設定する方法について説明しますが、他のプロバイダーを使用する場合でもステップは同様です。
- コンタクトセンター管理者アプリケーションにサインインし、該当セクションに移動して[設定] > [コールセンター設定] > [連携アカウント]、追加するAIプロバイダー統合アカウント選択済AIProvider

AIプロバイダー統合アカウントの作成 - ご利用になりたいサードパーティプロバイダーに応じて、アカウントの種類を選択してください。この例では、OpenAIをAIプロバイダーとして設定する方法をご紹介します。

ご希望のAIプロバイダーを選択してください - 後で作成する可能性のある他のアカウントと区別できるよう、統合アカウントにわかりやすい名前を付けてください。「APIキー」の値として、前セクションで生成されたシークレットキーを使用し、「モデルを読み込む」をクリックして、OpenAI APIキーでアクセス可能なモデルのリストを取得してください。

アカウントに名前を付け、APIキーを入力し、モデルを確認する - 「GPTモデル」のドロップダウンメニューに、モデルのリストが表示されるはずです。シナリオにおいて、顧客のメッセージを評価し、応答を生成し、フォローアップアクションを選択するために使用したいモデルを選択してください。モデルによって、処理速度、精度、コストのバランスが異なります。コンサルテーションを参照してください。OpenAIのモデル説明を参照して、使用するモデルを決定することをお勧めします。なお、テキストを入力として受け付け、テキストを出力として返すモデルを選択する必要がある点にご注意ください。

ご希望のGPT モデルを選択してください - [接続のテスト] をクリックすると、API 認証情報が有効であることが確認されます。認証情報が無効である旨を示すダイアログが表示された場合は、OpenAI アカウントのキーを正しく入力していること、およびそのキーを使用して OpenAI への API リクエストが可能であることをご確認ください。
- 「適用」をクリックして、設定した連携アカウントを保存してください。

「適用」をクリックしてください
ステップ 3: AI エージェント ブロックを使用したシナリオを作成する
以下の例は、音声シナリオとして、設定のすべてをillustrateします。AIエージェントシナリオブロックのすべての設定を説明するための音声シナリオの例です。チャットシナリオを設定する場合は、以下の手順に従ってください。ただし、その際はシナリオブロックで使用される用語を使用してください。「メッセージ送信 +シナリオブロックを「プロンプトを再生」ブロックの代わりに「メッセージ送信+」ブロックの代わりに、「メッセージを送信 +」シナリオブロックを使用してください。
- 「作成」基本的な音声シナリオと、適切なダイヤルインシナリオエントリーを作成してください。
- 「言語設定」ブロックをシナリオの先頭に追加し、AIが顧客への応答時に使用する言語を定義してください。これは必須ではありませんが、特に英語以外の言語での会話において、より良い結果が得られる可能性があります。

「言語設定」ブロックを使用して、AIが顧客と会話する際に使用する言語を定義します - 「言語設定」ブロックの後に、追加「AIエージェント」ブロックを追加し、以下の設定例をご参照ください。

シナリオに「AIエージェント」ブロックを追加してください - *タイトルテキスト
この AI エージェント ブロックの名前です。この例では、単に「AI」としています。
- AI プロバイダー
以下のAIプロバイダーの連携アカウントを指定します。このブロックが、顧客へのメッセージ生成や顧客の応答の評価に使用するものです。この例では、ステップ1およびステップ2で事前に作成したOpenAI連携アカウントを使用していますが、このチュートリアルに従う際は、どのAIプロバイダーの連携アカウントでも使用可能です。 - 文字起こしツール
以下の音声認識(Speech to Text)連携アカウントを選択してください。この例では、トランスクリバーの設定は使用されます。音声シナリオにのみ適用され、エージェントブロックで使用されないチャットシナリオで使用される「AIエージェント」ブロックには表示されません - フレーズ終了タイムアウト
お客様の発話が終了したことを示す無音時間を定義します。既定値の 0.8 秒は、ほとんどのユースケースに適しています。この設定は、音声シナリオにのみ適用されます。 - 顧客の音声によるプロンプトの中断を許可する
有効にすると、AIの応答中に顧客が話すと、ユーザーの入力が即座に認識され、AIメッセージが停止します。対話の一連のステップごとに、AIメッセージを完了まで再生させたい場合は、この設定を無効にしてください。音声シナリオにのみ適用されます。 - AIを待機中に再生するプロンプト
AIエージェントブロックがAIプロバイダーからの応答を待機している間に再生する音声プロンプトを選択できます。選択する場合は、顧客の返信が処理中であることを伝えるようなプロンプトを選んでください。この設定は音声シナリオにのみ適用されます。 - AIへの指示
これらの指示は、AIが顧客向けのメッセージを生成したり、顧客の応答を評価したりする際にAIに送信されます。 最良の結果を得るためには、AIが顧客とどのように対話すべきか、どのような目標を追求すべきか、一般的な態度、扱うべきトピックの範囲、およびAIに守ってほしいその他の指針について、AIに正確に説明してください。「セクション」「AIへの指示」 セクションでは、効果的な指示の書き方に関する詳細な説明や関連リソースへのリンクが提供されています。このチュートリアルでは、以下の指示が使用されています:上記の指示では、会話の範囲を「アドレス変更またはサブスクリプション」に限定している点にご注意ください。その詳細は、「要求される成果」設定で定義されています。「AIへの指示」と「要求される成果」が互いに補完し合うようにすることが、ベストプラクティスとされています。あなたのペルソナと自己紹介 - あなたは、Bright Pattern のプロフェッショナルで礼儀正しく、親切なバーチャルアシスタント、ダイアナ・イェーです。 - 一貫して穏やかで、忍耐強く、プロフェッショナルな口調を保ちます。 主な目的と範囲 - あなたの主な目的は、顧客が**アドレスの変更**または**サブスクリプションの更新**を必要としているかどうかを識別することです。 - あなたは**これら2つのタスクのみ**を処理する権限があります。あなたの役割は、必要なデータを正確に収集することです。その他の問題の解決は行いません。 対応手順 - 会話を円滑に進めるため、一度に1つの簡単な質問のみを行ってください。すべての情報を一度に尋ねることは避けてください。 - お客様がアドレスの変更を希望される場合は、旧アドレスと新規アドレスの両方を確認してください。 - お客様がサブスクリプションの更新を希望される場合は、ご希望のプランを確認してください。 - お客様が**それ以外の事柄**(例:テクニカルサポート、営業、請求に関する係争、サービスのキャンセルなど)について尋ねた場合は、丁寧にお問い合わせ先をご案内してください。**決して**、ご自身の対応範囲外の質問に試行的に応答しようとしないでください。
- 会話のコンテキストを含める
このオプションを使用すると、指示に加えてAIに追加のコンテキストを提供できます。例えば、前の会話の要約や、AIが会話をパーソナライズするのに役立つ顧客情報などです。これにより、AIが生成する対話の精度と品質が向上する可能性がありますが、コストや処理時間が増加する可能性があります。以下のセクションを参照してください「会話のコンテキストを含める」詳細については、以下のセクションをご参照ください。 - 求められる成果
顧客との対話を行う際、AIが目指すべき成果を定義します。「AIへの指示」設定で言及されている「アドレスの変更」と「定期購読の作成」という2つの成果は手動で定義することもできますが、自動化された解決策も用意されています:
- [成果を生成] をクリックすると、AIを使用して「AIへの指示」に基づいて「要求された成果」を推論します

「成果を生成」をクリックします - 「アドレスの変更」と「定期購読の更新」という2つの成果が生成され、それに対応する条件付き終了がブロックの下に表示されました。

要求された各アウトカムには、対応する条件付き出口が作成されます - いずれかの結果をクリックすると、名前を編集できます。各結果の名前はAIに提供され、AIが対話の進め方を決定する際に役立ちます。最適な結果を得るためには、各結果の名前が内容を明確に表すものであるようにしてください。

結果名の編集 old_addressをクリックすると、「収集するデータ」モーダルウィンドウが開きます。ここでは、データの説明、変数名、および例となる値を入力できます。これらはすべてAIに渡され、収集が必要なデータの性質を理解する手助けとなります。正確な名前と説明を指定することで、通常、より良い結果が得られます。 「変数名」フィールドは、シナリオ変数保存するデータの名称も決定します。
出力データの編集 - [アウトカムの追加] または [出力データの追加] をクリックして、手動でアウトカム(および条件付き終了)を作成したり、特定のアウトカムに対して収集が必要な追加のデータ項目を追加したりします。

アウトカムと出力データを手動で追加する
- [成果を生成] をクリックすると、AIを使用して「AIへの指示」に基づいて「要求された成果」を推論します
- 最終的なAIの応答を短縮する
この設定を有効にすると、AIからの最終メッセージは、送信されない。 。このチュートリアルでは、後で結果を顧客に伝えるシナリオロジックを追加するため、この設定を有効にしたままにします。 - ダイアログの最大ターン数
AIエージェントブロックが許可する、AIメッセージと顧客の応答の組み合わせの最大数を指定します。このケースでは、既定値の10が適切です。ダイアログがこの値を超過した場合、ブロックは既定の終了処理を実行し、エラー変数に値を設定しますに値が設定されます。
* ダイアログの最大回数
AIエージェントブロックが許容するAIメッセージと顧客の応答のペアの最大数を指定します。このケースでは、 - AI 応答タイムアウト
AI ブロックが AI プロバイダーからの応答を待機する最大時間です。この値は、AI プロバイダーが使用する AI モデルの処理速度に基づいて選択してください。 このケースでは、100秒で十分です。AIプロバイダーがこの時間内に応答しない場合、ブロックは既定の終了経路をたどり、エラー変数に値が設定されます。
に値が設定されます。 - 顧客の返信タイムアウト
顧客への新規メッセージを生成する前に、顧客からの返信を待つ時間を指定します。この場合、10秒で十分です。 - 連続タイムアウト回数の上限
AIエージェントブロックが、顧客からの応答がない状態で顧客との対話を試みる最大回数です。この場合、値は10で十分です。この回数分の試行後も顧客から応答がない場合、ブロックは既定の出口に進み、エラー変数に値を設定します。
- AI プロバイダー
ステップ 4: AI エージェントの条件付き出口を設定する
AIエージェントブロックの設定が完了しました。このブロックには、「アドレス変更」および「定期購読の作成」という要求された成果に対応する2つの条件付き終了があります。以下の設定を行うことで、テスト中にAIがどの成果を選択するか、また会話中にどのようなデータを抽出できるかを確認し、ブロックの挙動を検証することができます。
- 以下の変数を追加してください「変数の設定」ブロックを追加します。このブロックは、変数
speechに、AIが収集したアドレスデータを含む動的なテキストの断片を設定します。
「アドレス変更」の条件付き出口に「変数の設定」ブロックを追加します
- 変数の名前を「speech」に設定してください。
- 「値」パラメータには、AIエージェントブロックの「要求された結果」で定義した
old_addressおよびnew_address変数を使用して、短いテキストを入力してください。例:$(old_address) から $(new_address) へのアドレス更新、ありがとうございます。 良い一日をお過ごしください!
- 変数の名前を「speech」に設定してください。
- 追加「プロンプトの再生」ブロックを追加し、「選択」をクリックしてプロンプトを選択してください。このブロックは、
speech変数を顧客に再生するために使用されます。
「プロンプトを再生」ブロックを追加します - 「追加」音声プロンプトセグメント「テキスト」と値「$(speech)」を追加します。これにより、
speech変数に保存されているテキストが再生されます。
「$(speech)」を使用したテキスト形式のプロンプトを設定し、「speech」変数を再生するようにします - 終了ブロックを追加し、顧客に結果が表示された後にインタラクションを終了させます。
- 次の条件付き終了「サブスクリプションの作成」については、前の手順を繰り返して、「変数の設定」、「プロンプトの再生」、および「終了」ブロックをコピーしてください。

「サブスクリプションの作成」という条件付き終了を設定します - 「変数の設定」ブロックの値を、「サブスクリプションの更新」という結果で定義された
new_plan変数を使用するように修正してください。必要に応じて、最終的な返信を含むaiAgentFinalReply変数を使用することも可能です。AIからの最終応答が含まれています。例:$(new_plan)をご購読いただき、ありがとうございます。ぜひお楽しみください。 良い一日をお過ごしください! P.S. バーチャルアシスタントからも、あなたへの最後のメッセージがあります:$(aiAgentFinalReply)
ステップ 5:Switch ブロックを使用してエラーを捕捉する
シナリオをテストする前に、シナリオの実行中に発生する可能性のあるエラーを確認する方法を用意しておくことをお勧めします。エラーが発生した場合、AIエージェントブロックは既定の終了経路をたどり、2つの変数aiAgentErrorCodeおよびaiAgentErrorBodyに値が設定されます。詳しくはAIエージェントのエラー変数を参照して、これらの変数に含まれる情報についてご確認ください。
aiAgentErrorCodeおよびaiAgentErrorBodyという2つの変数に値を追加Switchブロックを追加してください。「テストする変数」を「aiAgentErrorCode」に設定してください。
Switchブロックを追加します - [分岐の追加] をクリックして、Switchブロックに条件分岐の出口を追加します。AIエージェントのエラー変数セクションに記載されている表によると、「AI プロバイダーのアカウントが特定されていませんか、または削除されていますか」の場合、
aiAgentErrorCode変数の値は1000となります。 このエラーを適切に処理するには、変数値を1000に設定し、分岐ラベルに「No AI」などの関連性のある名前を付けてください。
aiAgentErrorCodeの値が1000の場合に備え、条件付き終了「No AI」を追加してください - 「No AI」という条件付き出口の下に「変数の設定」ブロックを追加し、これを使用して
speech変数を、その出口に適した値(例:「AI が利用可能ではありません」)に設定してください。
speech変数を「AI を利用できません!」に設定します - テストしたいエラー条件ごとに、Switchブロックに条件付き出口を追加してください。AIエージェントのエラー変数セクションにあるエラー番号の一覧表が、使用できるでしょう。
- 「Switch」ブロックの後に「Play Prompt」ブロックを追加してください。前の手順と同様に、この「Play Prompt」ブロックを設定して、
speech変数を再生するようにしてください。
「Switch」ブロックの後に「Play Prompt」ブロックを追加します - 必要に応じて、追加する「Gotoブロックを追加し、AIエージェントブロックへ戻るように設定することもできます。これにより、シナリオエントリーを何度もコールするのではなく、さまざまなエラー条件をテストできるようになります。
ステップ6:シナリオのテスト
AIエージェントブロックを使用してシナリオを作成しましたので、テストを行うことができます。以下に、テストケースの例をいくつか挙げます:
成功例:
- アドレスの変更:
- テスト入力:「アドレスの変更を希望します。」「以前のアドレスはメインストリート123番地です。」「新規のアドレスはオークアベニュー456番地です。」
- 期待される出力:AIは「アドレス変更」というインテントを認識し、旧アドレスと新規アドレスを収集した上で、「メインストリート123番地からオークアベニュー456番地へアドレスを更新していただき、ありがとうございます。良い一日をお過ごしください!」といった内容の応答を返すべきです。
- サブスクリプションの作成:
- テスト入力:「定期購読を申し込みたいです。」「私のアドレスはパイン・レーン789番地です。」「次週の月曜日から開始してほしいです。」「3ヶ月間の定期購読を希望します。」といった内容の発話。
- 期待される出力: AIは「定期購読の作成」というインテントを理解し、アドレス、開始日、durationを収集した上で、「789 Pine Laneでの3ヶ月間の定期購読、来週の月曜日からの開始、お申し込みありがとうございます。良い一日をお過ごしください!」といった内容の発言を行う必要があります。
エラー処理:
- AIプロバイダーなし:
- シナリオの設定:AIプロバイダーの統合アカウントを一時的に消去または無効にしてください。
- テスト入力:シナリオをコールします。
- 期待される出力:シナリオは、AIエージェントブロックの既定の終了経路に従い、その後スイッチブロックの「AIなし」分岐に進み、「AIは利用可能ではありません」というプロンプトを再生する必要があります。
- ダイアログのターン数が多すぎます:
- シナリオの設定: 「AIエージェント」ブロックで、「最大対話ターン数」を2や3などの少ない数値に設定し、「スイッチ」ブロックでエラーコード
1006に対する条件付き出口を設定してください。 - テスト入力:最大ターン数超過の会話を行ってください。
- 期待される出力:AIエージェントブロックは既定の終了処理に従い、シナリオはこの状況を適切に処理する必要があります。例えば、スイッチブロックの条件付き終了を、「申し訳ありません。現在、内容を理解できません。後ほど再度お試しください。」といったプロンプトを再生するように設定することができます。
- シナリオの設定: 「AIエージェント」ブロックで、「最大対話ターン数」を2や3などの少ない数値に設定し、「スイッチ」ブロックでエラーコード
追加のテスト
- 指示の実験:AI への指示を変えてみて、対話中の AI の挙動がどのように変化するかを確認してください。
- 文脈の理解:対話途中で話題を切り替えることで、AIが会話の複数のターンにわたって文脈を維持できるかどうかをテストしてください。これらのテストにおいて、「前のトランスクリプトを含める」設定がAIにどのような影響を与えるかを確認してください。
- 指示の範囲外の会話:指示の範囲外のトピックについて、AIに話し合わせるようにしてみてください。
< 前へ