はじめに
私は普段、AWSの基盤設計およびCDKを使った構築を担当しています。業務では他部署のメンバーからAWSに関する技術相談を受けることがあるのですが、最近は以下のような相談を耳にすることが増えてきました。
生成AIに聞いてみた感じ、こんな構成を提案されたのですが、これで大丈夫ですかね?
昨今の生成AIの性能向上に伴い、多くのケースではある程度正しい構成が出てきます。
ただ、細かい部分を見ると、要件の読み落とし、セキュリティ観点の抜け、コスト見積もりの甘さ、AWSサービスの使い分けの違和感などが残ることもあります。
そこで、こう思いました。
社内向けにAWSの専門エージェントと会話できるチャットアプリを展開して、そこで解決できなければ自部署に連携する社内版AWSサポートアプリを作ったら便利じゃね?
基本はAI相手に相談しつつ、「正確な見積もりを知りたい」「この構成のリスクを見てほしい」となった際は、それまでのチャット履歴と一緒に自部署へ連携できる。
そうすれば、相談する側は前提整理をしやすくなり、受ける側もチャット履歴から相手の状況を把握したうえでスムーズに相談に入れます。
作ったもの
現時点の構成は、おおよそ以下です。
データ操作はAmplify Data経由でAppSync / DynamoDBを使い、添付ファイルはAmplify Storage経由でS3に保存します。AgentCore上で実行するAIエージェントはAgent Toolkit for AWSのAWS MCP Serverに接続させています。
Amplify君とAgentCore君があまりにも優秀。
エージェント呼び出しは、フロントエンドから直接AgentCore Runtimeを叩くのではなく、API Gateway + Lambdaを挟む構成にしています。
このBFF的な層を挟むことで、IPアドレスの制限の実施に加え、今後ユーザごとのリクエスト制限を設ける想定です。
機能一覧
基本的な機能としては以下になります。
- Cognitoでログインする
- AWS専門エージェントに質問する
- 会話履歴を保存する(ユーザごとにアクセス制御を実施)
- 会話一覧から過去の会話を開く
- プロジェクトを作って会話を分類する
- テキストや画像の添付ファイルをアップロードする
- 添付ファイルの情報をエージェントに渡す
画面イメージは以下のような形です。
実際の動きとしては、まずチャット画面からAWSに関する相談を送ると、エージェントの回答がストリーミングで表示されます。
要件メモや構成図のようなファイルを添付して、その内容を前提に相談することもできます。
ポイント
以下は、今回工夫したポイント(機能)です。
構成図ギャラリー機能
登録済みの構成図をギャラリーから選び、その構成についてそのまま相談を始める導線も用意しています。
過去構成図までは作成したものの実現しなかった遺産を少しでも活用したい...!との願いが込められています。
相談事項ヒアリング機能
AIだけで解決しきれない場合は、会話履歴をもとに担当部署へ相談するための文面整理もできます。
この辺りはまんま現在のAWS Supportで提供されている機能ですね。
ボタンをクリックすると、担当部署に相談する上で必要な情報のヒアリングをAIが行います。その結果をもとにメール文面を作成してくれるイメージです。
SESやTeams Webhookでアプリケーションから直接担当者に連絡を送るのも可能ですが、一旦はここまでに。
AWSクイズ機能
ネタ機能です。難易度に応じた記述式AWSクイズを出題します。
「難易度(難しい)」は度を超えて難しいです。未だ百点を貰えたことはありません。
作業メニュー
画面右の作業メニューには以下があります。
- 見積もり作成
- 見積もりレビュー
- 構成検討
- 構成レビュー
いずれかを選択すると、エージェント側に事前定義したレビュー観点や見積もり作成のフローが注入されます。作業者のスキルによらず、一定の品質で見積もり作成や構成検討を可能にすることが目的です。
まとめ
このアプリケーションについては、Codex君と打ち合いながら2日間程度で完成しました。
Amplify Gen2とAgentCoreとAWSの公式サンプルとCodex君の力が9割9部を占めています。
いつかは諸々しっかりと理解したいものです。
余談ですが、AIエージェントへの指示に「憶測で回答せず、MCPサーバを用いてきちんと裏どりした上で回答すること」を組み込んだ結果、
少し使っただけでinput Tokenがとんでもないことになりました。お財布に厳しい。
うーむ、MCPを使わずに回答させるのではあればChat GPTやCopilotで良くない?となってしまいますし、難しいところですね。
参考にしたもの
今回のアプリ構築では、特に以下を参考にしています。









