はじめに
2025年12月に一般公開されたAmazon S3 Vectorsを使用し、Amazon Bedrock Agentと連携させたシンプルなRAG環境を構築しました。
その際、エージェントビルダーにて設定した指示が無視され、単なる検索結果の要約しか返ってこない現象に遭遇しました。
本記事では、その原因と解決策(オーケストレーション設定のオーバーライド)についてご紹介します。
サービスの説明
本題に入る前に、今回の記事に出てくる「Amazon Bedrock Agent」と「Amazon S3 Vectors」について簡単にご紹介します。
Amazon Bedrock Agents
生成AIアプリケーションの開発を加速させるフルマネージドサービスです。
LLMと社内データソースを接続したり、APIを呼び出してタスクを実行したりするAIエージェントを、数クリックで構築・デプロイできます。
詳細はこちらの公式ドキュメントをご参照ください。
Amazon S3 Vectors
Amazon S3に保存されたデータに対して、ベクトル検索機能をネイティブに追加できる新機能です。
従来、RAG(検索拡張生成)をおこなうには専用ベクトルDBが必要でしたが、S3 Vectorsを使えばS3のみで完結するため、従来比で約90%のコスト削減が可能になります。
詳細はこちらの公式ドキュメントをご参照ください。
検証環境構成
今回の検証環境構成は以下のとおりです。
- オーケストレーション:Claude 3 Haiku 4.5
- Knowledge Base:Titan Text Embeddings v2
- データストア:S3 Vectors
- 構成の特徴: アクショングループなし、ナレッジベースのみのシンプルな構成
発生した事象
「エージェント向けの指示」欄にて特定の役割や回答フォーマットを指定した内容が、生成された回答に反映されていませんでした。
エージェント向けの指示
AWSのサービスをレストラン経営に例えて解説するよう指示しました。
実際の挙動
指示内容は無視され、ナレッジベースの検索結果をそのまま要約しただけの無機質な回答が返ってきました。
【原因】 Agentの「最適化」仕様
原因は、Bedrock Agentの仕様によるものでした。
以下の条件がすべて当てはまる場合、エージェントはパフォーマンス最適化のために「指示」を使用せず、デフォルトの処理フローを優先します。
(エージェント向けの指示のテキストボックス直下にインフォメーションとして示されている場合があります)
- このエージェントにアクショングループがない
- 関連付けられているナレッジベースが1つだけである
- オーバーライドされた詳細プロンプトがない
- ユーザー入力とコードインタープリターが無効である
- マルチエージェントコラボレーションが無効である
今回のようなシンプルなRAG構成の場合、これらに合致しやすいため、デフォルトで指示がスキップされてしまいます。
【解決策】 オーケストレーションのオーバーライド
この挙動を回避するために、「オーケストレーション戦略」の設定を変更し、テンプレートを明示的への上書きを行いました。
手順
-
Bedrockコンソールで対象エージェントの「エージェントビルダーで編集」 画面を開く。
-
「テンプレートデフォルトを上書き」 を有効化する。
テンプレートの編集
エディタが表示されるので、プロンプトテンプレートエディター内の適切な場所(変数の定義前後など)に、反映させたい指示を直接記述します。
日本語で1行目から入れることも可能です。
結果
テンプレートをオーバーライドすることで、最適化によるスキップ条件から外れるため、指示通りのフォーマットで回答が生成されるようになります 。
まとめ
検証やハンズオンでS3 Vectors などを用いたシンプルなエージェントを構築する場合、デフォルト設定のままでは指示が効かないことがあります。
その際は、オーケストレーション戦略でテンプレートをオーバーライドすることを試してみてください。





