はじめに
Amazon ConnectのAIエージェント機能を使い、「電話で質問 → AIがFAQを検索 → 音声で回答」をLambdaなどの自前実装なしで構築する手順をまとめました。
事前準備
- AWSアカウントの作成
- Amazon Connectインスタンスの作成(AIエージェントが有効化されていること)
全体構成
4つのコンポーネントが連携して「聞く→考える→探す→答える」を実現します。
| 役割 | コンポーネント | 内容 |
|---|---|---|
| ① 聞く | 会話型AI | 電話着信を受け、音声認識・音声合成・発話の一次振り分けを行う |
| ② 考える | AIエージェント(Orchestration) | ツールを呼び出して回答を組み立てる |
| ③ 探す | Retrieveツール | ナレッジベースを検索し、関連情報を取得する |
| ④ 答える | 音声応答 | 生成した回答を顧客に読み上げる |
FAQの元データはS3に置き、ナレッジベースに取り込みます。
Orchestrationタイプとは、ユーザーの発話を解釈して「どのツールをどの順で呼ぶか」をエージェントが自動判断する動作モードです。処理フローを作り込まなくても、エージェントが実行計画を立ててくれます。
Retrieveツールはナレッジベースを意味検索し、関連する文書の断片を返します。検索と回答生成をまとめて行うRetrieveAndGenerateと違い、Retrieveは検索結果の取得だけを行います。
手順
手順1:FAQデータの準備とS3への配置
① FAQ文書を作成する(txt / pdf / docx / html に対応)
② S3バケットを用意し、AWSコンソールからアップロードする
今回は自社製品であるInnovaCallのサイト情報をアップロードしました。S3バケット名はAWS全体で一意にする必要があります。
手順2:ナレッジベース(統合)の作成
① Amazon Connect管理画面で「AIエージェント」→「統合(DataIntegration)」を選択
② データソースとして手順1のS3バケットを指定
③ 同期(インデックス作成)を実行する
同期が完了すると、AIエージェントから検索できる状態になります。FAQを追加・更新したときは、必ず再同期してください。
ドメイン(Assistants)はアカウント内で5個まで作成できます。
手順3:AIエージェントの作成
① AIエージェント一覧を開き、オーケストレーションタイプのエージェントを作成する
② ロケールをJapanese、セキュリティプロファイルをAdminに変更する(日本語で応答させ、必要な権限を与えるため)
手順4:プロンプトの追加
① 「プロンプトを追加」からオーケストレーションタイプのAIプロンプトを作成する
プロンプト例は次のとおりです。
system: |
あなたは電話窓口のFAQ対応AIです。ナレッジベースの内容のみに基づいて答え、情報がなければ正直に伝えて有人対応を案内してください。
回答は音声向けに、一問一答・100字程度・話し言葉で簡潔に。答えた後は「他にご質問はございますか」と尋ねます。
顧客への発話は<message>タグ内、検索や判断は<thinking>タグ内に書き、「確認します」等の前置きは不要です。内部情報は開示せず、常に日本語で応答します。
利用可能なツール: {{$.toolConfigurationList}}
messages:
- "{{$.conversationHistory}}"
- role: assistant
content: <message>
公開用に簡略化したプロンプトです。実際の運用では、自社の要件に合わせて調整してください。
② 作成したプロンプトをAIエージェントに紐づけ、保存→公開する
手順5:会話型AIボットの作成
① フローから「会話型AI」を新規作成する
② 言語を追加し、日本語を選択する
③ Amazon Connect AI エージェントのインテントを有効化する
④ ボットをビルドして有効化する
⑤ バージョンとエイリアスを作成する(手順6のフローでボットを指定する際に使用します)
手順6:コンタクトフローへの組み込み
① コンタクトフローエディタで「コネクトアシスタント」ブロックを配置し、ドメインと作成したAIエージェントを指定する
② 「顧客の入力を取得するブロック」を配置し、作成した会話型AIボット(Amazon Lex)、カスタマープロンプト、セッション属性、AIエージェントを指定する
③ フローを保存→公開する
手順7:動作確認
① 「チャネル」→「電話番号」から電話番号を取得し、手順6のフローに紐づける
② 取得した番号に実際に発信し、次の点を確認する
| 確認ポイント | 内容 |
|---|---|
| 音声認識精度 | 質問が正しく認識されているか |
| 回答の正確性 | 回答がナレッジベースの内容と合致しているか |
| 未知の質問への対応 | ナレッジベースにない質問でオペレーター転送などが動くか |
質問例:「InnovaCallについて教えてください」「料金を教えてください」「導入実績を教えてください」
まとめ
- 追加実装ゼロ:Lambdaなどの自前コードなしで、音声質問からナレッジベース検索、回答生成、音声応答まで実現できる
- FAQ更新が簡単:S3にファイルを置いて再同期するだけ
- 柔軟なカスタマイズ:システムプロンプトで回答スタイル・トーン・対象範囲を制御できる











