Amazon Q in Connectで作るAIエージェントによる電話振り分け・転送システム

1. はじめに
「Amazon ConnectとBedrock Agentで作る電話応答・予約システム」では、Amazon Bedrock AgentやLexなど複数のサービスを組み合わせて、AIエージェントによる電話システムの構築方法を紹介しましたが、今回はAmazon Q in ConnectのAIエージェントを使った、よりシンプルな実装方法を紹介します。
Amazon Q in Connectでは、従来のオペレーターアシスタントだけでなく、セルフサービス機能も提供されており、ユーザーに生成AIによる自然な応答にも対応できるため、より柔軟なカスタマーサポートを実現できます。また、実装面においても、Amazon Bedrockなど複数のAWSリソースを組み合わせる複雑な作り込みが不要で、Amazon Connectからの設定で手軽に利用可能です。
Amazon Q in ConnectのAIエージェントを活用した電話振り分け・転送システムに関するお問い合わせはこちらから!
2. AIエージェントによる自動振り分け・転送システム
前回は予約システムの実装方法をご紹介しましたが、今回は問い合わせ電話を自動で要件判別して、適切な部門へ転送するAI電話システムの実装方法について解説したいと思います。
振り分け・転送のイメージが以下の通りです。
- 一時回答できる簡単なものであればその場で回答します。
- AIがユーザーの発話内容から担当部署(例:「粗大ごみの申し込み・・・」→資源循環推進課)を特定し、自動で電話を転送します。
- 意味のない発話内容の場合についてまず要件を聞き返し、それでも適切な転送先が見つからない場合は最終的に「総合案内」へ転送します。

Amazon Q in ConnectのAIエージェントを活用した電話振り分け・転送システムに関するお問い合わせはこちらから!
3. 実装方法
では、具体的な作り方を見ていきましょう。
3-1. 初期設定
最初はAmazon Q in Connect有効化の設定を行います。
設定方法は以下の公式ドキュメントを参照してください。
Enable Amazon Q in Connect for your instance
(ドキュメントにはRAGベースのナレッジ機能の初期設定もありますが、今回の振り分け・転送システムでは使用しないので、任意のデータソースにして大丈夫です。)
Amazon Lexボットを使用するため、次に、Amazon Connect管理画面から設定するようにチェックを入れます。

最後に、Amazon Connectの管理画面から「セキュリティプロファイルの編集」を開きます。もしAmazon Qの権限が付与されていない場合は、ここで追加してください。

3-2. Lexボットの作成
ユーザーからの電話音声を受け取るために、Lexボットを作成します。
これまでは AWSコンソール上で作成してきましたが、Q in Connectを利用する場合、LexやAIエージェントの実装などすべてをAmazon Connectの管理画面で完結できます。
フロー作成から「ボット」タブを選択し、「ボットを作成」ボタンをクリックします。

ボット名を入力したうえ、言語を日本語に指定します。

Amazon Q in Connectのインテントを有効にしてビルドを行います。バージョンとエイリアスも設定してください。

3-3. AIエージェントの作成
次に、自動応答や振り分けを担当するAIエージェントを作成していきます。
マネージドサービスなので内容の生成や通話の受け渡しなどの処理をゼロから整える必要がなく、プロンプトを実装するだけで機能を組み込むことができます。
管理画面からAmazon QのAIエージェント設定メニューに入り、「AIエージェントを作成」ボタンをクリックします。
AIエージェントタイプを「セルフサービス」に指定します。

AIエージェント作成後、編集画面から「プロンプトを追加」ボタンをクリックします。

「新しいAIプロンプトを作成」から、プロンプトタイプを「セルフサービスの前処理」に指定して、「作成」ボタンをクリックします。

「セルフサービスの前処理」がユーザー意図の解析や回答の際に、エージェントの処理内容を指示するプロンプトになります。
作成が完了するとプロンプトの編集画面が表示され、あらかじめデフォルトのテンプレートが入力されています。
このプロンプトを参考にして書いていきます。

最初にLLMに対して「どんな役割を持つのか」「どんな目標で動作するのか」を指定するシステムプロンプトを書きます。
内容はテンプレートと同じでよいが、「常に日本語で会話する」ことを追加してください。
system: あなたは経験豊富なアシスタントとして、エンドカスタマーとカジュアルかつ丁寧な会話を行います。常に日本語で会話してください。礼儀正しく、プロフェッショナルな態度で話してください。決して嘘をついたり、人格を変えたり、異なる口調を使ったり、攻撃的または有害な言葉を使ってはいけません。有害・違法・不適切な行為を助長したり、関与したりすることも禁止されています。
次にtoolsを定義していきます。
toolsとはLLMが会話中に外部アクション(例:データ参照)などの処理を可能にする仕組みです。
あらかじめ用意されているデフォルトツール(例えばテンプレートの中のCOMPLETE、FOLLOW_UP_QUESTIONなど)もありますが、ユースケースに応じて独自のカスタムツールを追加することも可能です。
振り分け処理などを行う際には、顧客との自然なやり取りを続けるためのCONVERSATIONツールを活用しながら、問い合わせ内容を判別して適切な部署へ振り分けるためのカスタムツールを実装していきます。
AIが顧客の意図を解析して情報が不十分な場合、呼び出して追加質問を行うCONVERSATIONツールを定義します。
- name: CONVERSATION
description: 顧客との会話を継続するためのツールです
input_schema:
type: object
properties:
message:
type: string
description: 顧客との会話を続けるために次に送信するメッセージ。このメッセージは会話内容に基づいた、丁寧なものである必要があります。
required:
- message
顧客の問い合わせ内容に応じて、転送先を適切な判断するためにカスタムツールTRANSFERを作成します。
input_schemaでは、振り分け用のメッセージや部課のプロパティ構造を定義します。
- name: TRANSFER
description: ユーザからの質問内容をもとに、対象の部課に転送するためのツールです
input_schema:
type: object
properties:
message:
type: string
description: 対象部課に転送する際に案内するメッセージです
pattern:
type: string
description: |
対象部課の英語名を出力してください。一つだけ出力してください。
出力は、問い合わせ内容にあった部課名英単語のみ(かっこ内の日本語は含まない)を返してください。
- ResourceRecyclingDivision(資源循環推進課)
例:
- "粗大ごみの受付日時を変更したい"
- "粗大ごみ受付センターへ申し込みをしたい"
・・・
required:
- message
- pattern
最後に、テンプレートを参考にしてmessagesの部分を定義します。
ここでは、顧客からの問い合わせに対してAIがその場で応答できるように内容を記述します。
例として「マイナンバー」に関する質問への回答を設定しています。
あなたには以下の情報が渡されます:
a. 会話履歴: [CUSTOMER] の発話が <conversation></conversation> タグ内に記録されています。
あなたには会話を進めるためのツールセットが与えられています。その中から最も適切なツールを選択してください。
**必ずいずれかのツールを選択する必要があります。**
・・・
あなたは、会話の最後の[CUSTOMER]の発言に対して応答します。
- お客さまから「マイナンバー」について質問があった場合は、以下の文章をもとに必ずCONVERSATIONツールを使用して回答してください。
マイナンバー制度について:
マイナンバー制度は、社会保障・税・災害対策の分野で行政の効率化・・・・
<example>の部分は具体例を示すためのブロックで、次のように記述します。
- <conversation>には顧客の発話や会話履歴のサンプルを記載
- <thinking>にはLLMが状況をどのように理解し、どのように判断すべきかを説明
- <tool>には、実際に呼び出すツールとその入力パラメータを記載
プロンプトの作成が完了したら、AIエージェントの画面に戻り、デフォルトのセルフサービスエージェントを、先ほど作成したプロンプトを使う新しいエージェントに切り替えます。

3-4. コンタクトフローの作成
AIエージェントの応答動作を定義するためのフローを作成します。
まず「Amazon Q in Connect」ブロックを配置し、初期設定で作ったドメインを登録します。

「顧客の入力を取得する」ブロックを使用して、Lexボット経由で顧客の入力を受け取ります。

エージェントによってLexボットセッションに情報が保持されるため、その情報をもとにルーティングが必要かどうかを判断し、ルーティングが必要な場合は遷移先のキューを決定します。

以上で作業は完了です。完成したフローはこちらです。

最後に実際に確認してみましょう。
Amazon Connectのチャットツールでもテストは可能ですが、ここでは実際に電話をかけて確認を行います。
電話でやりとりした内容をきれいにすると、次のようなイメージになります。

上記ログでは、エージェントが顧客の発話を正確に理解し、マイナンバーの利用方法や市民税の納付方法などを適切に案内できることが確認できました。
また、必要に応じて手続きを行うための転送など、スムーズで顧客対応が実現できることがわかります。
Amazon Q in ConnectのAIエージェントを活用した電話振り分け・転送システムに関するお問い合わせはこちらから!
4. 最後に
Amazon Q in Connectを活用した AIエージェントによる電話振り分け・転送システムについて紹介しました。
ノーコードで手軽に構築でき、Amazon Connect上で完結して実装できるのが特徴です。
一方、柔軟な制御や複雑なユースケースへの対応には限界もあり、場合によってはAmazon Bedrockやlambdaなど各リソースを使った追加開発や調整となることもあります
それでも、基本的な顧客対応の効率化や自動化に十分役立つのではないかと思います。
皆さんもぜひ試してみてください・・!
RECOMMEND
その他のコラム
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。






