AICC BuilderでConnectのAIコンタクトセンターを生成する

こんにちは。エンジニアの君島です。

AICC BuilderというAWS Samplesのリポジトリを使って、AIコンタクトセンターを半自動で作ってみました。

今回は、手順や使ってみた所感を紹介します。




はじめに

AICC Builderというaws-samplesの新しいOSSがでました。

自然言語で要件をチャットするだけで、Amazon Connectを用いたAIコンタクトセンターを構築するためのアセットを生成してくれるツールです。つまり、半自動でAIコンタクトセンターを構築できるツールになっています。

本記事では、AICC Builder本体のデプロイから、生成されたアセットをデプロイしてAIコンタクトセンターとしてConnectで動かすところまでをひと通りやってみた内容を紹介します。


AICC Builderをデプロイしよう

事前準備

私はWindows端末を使用しているためなのですが、デプロイ環境としてEC2を用意しました。ビルドにそこそこメモリを使用するので、t4g.largeなど8GBくらいあるものを選択するのがおすすめです。

また、Amazon Bedrockを使用することになるので、Claude Sonnet 4.6を有効化しておきましょう。仮に、最新のモデルを使いたい場合はCDK上でソースを改変しておくことも可能です。

なお、ビルド、デプロイをCloudShellでする方法もありますが、今回は試していません。ビルドに時間がかかるだろうとセッション切れしないように注意が必要なのが面倒だったのと、もしかしたら、実行したらしたでメモリ制限でエラーになるかもしれません。

また、恐らく韓国のSAさんが開発したツールで、ところどころデフォルトリージョンがソウルになっていました。東京リージョンを使いたい場合は、環境変数AWS_DEFAULT_REGION=ap-northeast-1 を設定しておくのがおすすめです。

デプロイ方法

ツールのデプロイ自体は、GithubからCloneしてきて直下にあるdeploy.shを実行すればよいというシンプルな作りになっています。


問題がなければ、このまま待っていればデプロイが完了します。初回はCDKのbootstrapやDockerイメージのビルドなどが走るので、20分くらい待ちました。


参考までに、AICC Builderはこのような構成になっています。

つまったポイント

通常はあまり引っかからないかもですが、私がデプロイまでに引っかかったポイントを列挙しておきます。

  • EC2のインスタンスタイプをt4g.microで建てていてOut of Memory発生
    • 結果的にインスタンスタイプをt4g.large上げて再トライして成功しました。
  • CloudFront Origin が placeholder.invalid でエラー
    • 上記のようなエラーを何度か発生させてしまったために、キー名が空というデフォルト値が入ってしまったようで、不完全な状態のStackが残ってしまっていたようです。一度Stackを消してクリーンな状態からやり直すことで解消しました。


AICC Builderでチャットで要件定義しよう

さて、ここからは実際に要件をチャットしていきましょう。メールアドレスでユーザー認証を済ませた後にログインするとチャットができるようになっています。言語として日本語が用意されているのが嬉しいですね。

デフォルトはホテルや小売業といったメニューから業種を選択する方法と、自由記述でチャットする方法があります。


今回はデフォルトのメニューにあるホテルの宿泊予約のシナリオで進めてみます。

あとは質問に回答する形で、要件を確定していきます。裏側では会話を仕切る Orchestrator エージェントがいて、業種や業務内容、ビジネスルール、想定される会話シナリオ、トーンや対応言語などを順番に聞いてくれます。受け答えに合わせて、FAQ や Lambda、プロンプトといった各担当のエージェントが資材を組み立てていくイメージです。


データベースの設計についても確認されました!スクリーンショットはDBの種別でしたが、詳細な項目まで聞かれる場合もあったので、技術やAWSのノウハウがない場合は利用の難易度が高いかもしれませんね。


チャットでのインタビューが終わるとアセットを生成してくれますので、ダウンロードしておきましょう。

 

AIコンタクトセンターをデプロイしよう

事前準備

今度のデプロイ環境はCloudShellを利用します。こちらはAICC Builderの標準の案内に従って実施していきます。アセット生成完了後のダイアログに概ねやり方が書いてありますので、チェックしておきましょう。


事前に既存の Amazon Connect インスタンス(東京リージョン推奨)を用意しておき、そのインスタンス ID を控えておきます。こちらの deploy.sh もデフォルトリージョンがソウルなので、東京で動かす場合は AWS_DEFAULT_REGION=ap-northeast-1 を、インスタンス選択を省くなら CONNECT_INSTANCE_ID を、それぞれ export しておくと楽です。

デプロイ方法

もう少し詳しく手順を知りたいという方向けに、上記のダイアログに実は詳細な手順を示したリンクがあります。こちらから確認してください。後述のつまりどころの解消方法も乗っているので、詰まった場合は、必ず確認してみてください。私も、こちらのドキュメントのおかげで助かりました。

まず、アセット内に格納されているシェルスクリプトを実行してリソースをデプロイします。それだけでは足らず、マネコンで紐づけ等の設定をしていく必要があります。こちらの手順は、リンクのドキュメントや後述のworkshop studioに記載されていますが、チャットにて要件定義した内容に応じて利用しない機能が出てくることもあるので、必ずしも全ての手順を実行しない場合があります。

リソースデプロイ

まずはダウンロードしたアセットaicc-poc.zipをCloudshellにアップロードしておいてください。

うまくいけばAIコンタクトセンターを動作させるために必要なLambda関数などのリソースがデプロイされます。私はいくつかエラーが出たのでやり直しました。つまった点については後述します。

コンソール作業

リソースがデプロイされた後は、Connect インスタンスでの設定をGUIで行います。

deploy.sh はリソースのデプロイと MCP サーバの登録までは自動でやってくれるのですが、AI エージェントに、ツールやナレッジベースをにつなぎこむところはコンソール手作業として残ります。そこそこ手順が多いので、がんばっていきましょう。 先に役割を整理しておくと、出来上がる構成はざっくり3段階あります。入口が Lex ボット、生成 AIはConnect AI agents(旧Q in Connect)、ツール実行はAgentCore Gatewayを起点にして実行するという分担になっています。

Connectサービスコンソール

Connectのマネジメントコンソールから、インスタンスとデプロイされたBedrock Agent Gatewayとを紐づけます。リストに出てこないような場合はBedrock Agent Gatewayの設定を確認してください。

 


Connectインスタンス管理画面

続いて、紐づけたConnectインスタンスにログインして操作します。

Connectのフローから音声のエントリーとなるLexBotを作成してください。


フローについてもアセットに出力してくれているのでインポートして作成してください。


AI AgentがMCPツールを呼び出すために、AI Agentに設定するセキュリティプロファイルを編集します。Adminプロファイルを使うか、新しいセキュリティプロファイルを作成しておいてください。こちらは、出てくるMCPアクション全てチェックしておきましょう。


名前は任意ですが、AI Agentを作成して、以下のように設定していきます。


上記で設定したセキュリティプロファイルも設定して、Toolsが有効になることも確認してください。


また、プロンプトもアセットに入っているのでそのままコピペして貼り付けてください。


以上で、AI Agentの作成を完了させます。

そして、デフォルトのセルフサービス動作を上記で設定したAI Agentを設定するようにしてください。


その他、電話番号から作成したフローに紐づけなど、インバウンド通話ができるようにConnectの設定を完了してください。

デプロイ完了

これでAICC BuilderをつかったAIコンタクトセンターが完成です。

実際に電話をかけてみるとAIによる音声対応にてAICC Builderで定義した業務が実現できるようになっています。

実際にどのような構成のコンタクトセンターができたかというと、以下のような構成図になります。


仕組みの概要としては、コンタクトフローが直接Bedrockを呼ぶのではなく、Lexボットブロックが intent経由でConnect AI agents(エージェンティック・セルフサービス、旧Q in Connect)に会話を引き渡します。そして、そのエージェントが応答生成の中で Bedrock AgentCore Gatewayを経由して各種MCPツールを呼び出してくれるものになっています。

つまりどころ

  • コンタクトフローのSet voiceブロックに日本語を指定していないため、通話するとシステムエラー
    • フローの更新はうまくいくので、通話をしてはじめてエラーに気付くとおもいます。アセットで生成するコンタクトフローはデフォルト英語、LexBotで日本語を指定しているため、言語が合わずエラーとなってしまっていました。 GUI上でLanguageCodeを入れられなかったので、update-contact-flow-contentで修正しました。
  • Gateway の audience がうまく更新されず、Toolsが出てきませんでした
    • 一見デプロイは成功していたのですが、GUIでAI AgentのToolsを追加しようとすると MCP tool の Namespace ドロップダウンが空になってしまっていました。deploy.sh の 実装上、allowedAudience"placeholder" のまま残っていたことが原因だと思われます。なお、以下のコマンドでplaceholderと出てしまっていたので、update-gatewayで修正しました。

 


まとめと所感

新しく公開されたAICC Builderを用いてAIコンタクトセンターをさくっとデプロイしてみました。

ツールのデプロイ、アセットのデプロイはもちろんですが、チャットのQA自体でも設計要素がありました。お客様に対して、便利なツールがあるのでどうぞ使ってみてください、というのはなかなか現実的には難しい利用方法だと思いました。

一方で、例えば弊社のようなパートナーが利用するのが適切ではないかと考えています。昨今の生成AIの進化により、AIコンタクトセンターを構築したいというご要望が各所から聞こえるようになりました。このAICC Builderを自社向けにツールをデプロイしておくことで、お客様から要望があがったら要件を入力することで、素早くデモ環境を構築することができると思いました。

また、ソースコードとして展開されているので、ちょっとしたカスタマイズができるのも嬉しいです。


まだ公開されて間もないツールですので、必ずしも安定した出力にならないケースもあるかもしれません。ですが、何もないところから構築するよりも、遥かに手順も整理されていますし、手間がかからないです。フローやプロンプトをインポートすればいいところまで進めてくれるのはありがたいです。仮にうまく動かないとしても、我々で修正したり、issueを起こすようにして改善していきましょう。

なお、早速日本語のREADMEも追加されていますので、より試しやすくなっていると思います。

また、英語版と韓国語版にはなりますが、workshop studioにも追加されましたので、そちらからでも一連の流れを体験しやすくなっています。

この記事が気に入ったら
いいね ! しよう

Twitter で
The following two tabs change content below.
君島翔
AI事業部事業部長株式会社ギークフィード
Java, .NET系の言語が得意。Laravelも使います。 エディタはvim派。 自分が楽するためにテストやビルド、デプロイを自動化させたい。 2022-2023 AWS Ambassador / 2022-2023 Japan AWS Top Engineer / 2022-2023 Japan AWS ALL Certifications Engineer

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ