このサンプルは、Powertools for AWS(TypeScript)のイベントハンドラーを使用してAmazon Bedrock Agentを作成する方法を示しています。
- このサンプルは個人用途で作成したため、利用に生じた問題については一切の責任を負いません。
- コストについても一切の責任を負いません。AWSのサービスを使用する際は、事前にコストを確認してください。
- コストの所感としては、モデル利用料が最も高くなります。モデルの価格はこちらで確認できます。
このサンプルをデプロイする前に、Amazon Bedrockのファウンデーションモデルへのアクセスをリクエストする必要があります。詳細については、こちらのページをご参照ください。
アクセスが許可されたら、モデルID(例: amazon.nova-pro-v1:0
)とAWSリージョン(例: us-west-2
)をメモしてください。これらはサンプルをデプロイする際に必要になります。
最後に、lib/bedrockagents-stack.ts
で定義されているIAMロールと権限(特にagentRole
を検索)を確認してください。このサンプルでは、bedrock:*
の権限を使用してエージェントをテストし、実験できるようにしています。
本番環境にエージェントをデプロイする前に、Bedrock Agentのドキュメントを確認し、適切な権限が設定されていることを確認してください。
パラメータ指定として、プロジェクト直下に.env.dev ファイルを作成し、以下のように指定してください。
GOOGLE_BOOKS_API_KEY=VALUE..............
LOG_LEVEL=ERROR
NODE_ENV=dev
このリポジトリをクローンした後、AWS CDKを使用してサンプルをデプロイできます。デプロイ環境に指定はありませんが、ハンズオン目的であれば、AWSコンソールからCloudShellでのデプロイをお勧めします。
npm ci
# まだCDKブートストラップスタックをプロビジョニングしていない場合は、以下を実行してください:
npx cdk bootstrap --region=us-west-2
# Claudeモデルを使用する場合
npx cdk deploy --context modelId=anthropic.claude-3-7-sonnet-20250219-v1:0 --context region=us-west-2
# Nova Proモデルを使用する場合
npx cdk deploy --context modelId=amazon.nova-pro-v1:0 --context region=us-west-2
Bedrockコンソールを使用してエージェントをテストします。次のような質問をしてみてください。
- AWSの生成AIサービスを勉強したいです。おすすめはありますか?(あまり分厚くないとありがたいです。)
- フランス旅行を計画しています。海外旅行の経験が少なく、フランス語も話せないことを踏まえて、おすすめの旅行ガイドブックがあれば教えてください。特に、グルメと観光に焦点を当てたものがいいです。
- せなけいこの子供向け絵本を探しています。おすすめの作品はありますか?
npx cdk destroy
今後の改善点については、現状では例えば以下が考えられます。
- プロンプト改善
- 著者・キーワード以外のパラメータの扱い(出版社や年代など)
- ユーザーの入力が曖昧・不足する場合の、早い段階での追加入力の要求
- Tool改善
- 他の検索手法との併用(通常のGoogle検索、Tavilyなど)