Web Search on Amazon Bedrockについて深堀る


本記事は 夏休みクラウド自由研究2026 8/13付の記事です

こんにちは、SCSK竜崎です。
2026年8月4日に、Amazon BedrockでもOpenAIのResponses APIを使用すれば、Web Searchの仕組みが使えるようになりました。
今年開催されたAWS NewYork Summitにて、Amazon Bedrock AgentCore上でのWeb検索が一般提供されるようになり、それに追従するかのような形でBedrockでも使えるようになった、という話になります。

今回は、実際にOpenAIのResponses APIを使うことで、これまでとどう実装が変わるのかについて共有していきたいと思います!
以下、Web Search on Amazon Bedrockの参考記事になります。
Introducing Web Search on Amazon Bedrock for foundation model grounding

Web Search on Amazon Bedrockとは

Web Search on Amazon Bedrockとは、AWS内でのみWeb検索を実行する組み込みサーバーサイドツールのことです。
記事執筆時点では、OpenAIモデルのGPT-5.4・GPT-5.5・GPT-5.6 Sol/Terra/Lunaが一般提供の対象となっております。
Amazon BedrockのWeb検索には、以下4つの特徴があります。

  1. マルチソース・グラウンディングアプローチ
  2. コンテキスト効率の高い検索
  3. 単一パラメータの有効化で使用可能に
  4. エンプラレベルのコンプライアンスを標準サポート

と、これだけ書かれても、私自身もあまりよくわからなかったので、それぞれ深掘りしていきましょう!

マルチソース・グラウンディングアプローチとは

検索結果だけを返すのではなく、ナレッジグラフも活用して回答精度を向上させる仕組みです。
Web Searchは、Amazonが継続的に更新している大規模なWebインデックスに加え、人物・組織・場所などの関係性を保持したナレッジグラフも利用します。

そのため、以下のような事実を問う質問では、単純に検索結果の文章を読んで推測するのではなく、ナレッジグラフを活用して回答できます。

「○○を書いたのは誰?」
「○○が発表されたのはいつ?」

これにより、検索結果をLLMが解釈する際に起こりがちな細かな事実誤認を減らせます!

コンテキスト効率はなぜ高いのか

今回Bedrockでも一般提供されたWeb Searchのコンテキスト効率が高い理由は、ページ全部をモデルへ渡すのではなく、必要な情報だけを抽出してモデルを渡すためです。

通常の検索では、Webページ全体をモデルへ渡し、その中から必要な情報を探させることがあります。
一方、Web Searchでは、クエリに関係する文章だけを抽出(セマンティックスニペット抽出)し、モデルへ渡します。
その結果、以下が期待できます。

  • トークン消費を削減
  • レスポンス高速化
  • ノイズの少ない回答

単一パラメータで有効化できるようになった、とは

これはそのままの意味で、実装をする際に1つのパラメータを追加するだけで、Web Search機能を使えるようになった、という話です。
Web Searchは、既存のOpenAI Responses API互換リクエストに、以下を追加するだけで利用ができます。

"tools": [
  {
    "type": "web_search"
  }
]

エンプラ向け設計について

Web Search on Amazon Bedrockは、Amazon Bedrockのインフラストラクチャ内で動作するよう設計されています。
特に注目したいのが、デフォルトで「Zero Egress(ゼロエグレス)」となっている点です。
Zero Egressには、以下のメリットがあります。

  • 検索APIの契約やAPIキー管理が不要
  • データの送信先をAWS内に限定できる
  • セキュリティやコンプライアンス要件を満たしやすい
Zero Egressとは、Web Searchを利用する際に、ユーザーが入力したプロンプトや検索クエリがAWS管理外のサービスへ送信されないことを意味します。
従来のように外部の検索APIを利用する場合は、検索クエリを第三者サービスへ送信する必要がありましたが、Web Search on Amazon Bedrockでは、検索から回答生成までをAWSの管理する環境内で完結できます。

OpenAI Responses APIでWeb Searchを利用する方法

大まかな流れは次の3ステップです。

Step1 AWS認証とIAM権限を設定する

Web Search専用のAPIキーは不要です。
通常のAWS認証情報(IAMロール、AWS CLI Profile、環境変数など)を利用して認証します。

必要なIAM権限

Web Searchを利用するには、大きく2種類の権限が必要です。

①Bedrock推論権限

モデルを呼び出すための権限です。
例えば以下のような権限を付与します。

  • AmazonBedrockMantleInferenceAccess
  • または同等の推論権限
②Web Search利用権限

Web Searchを利用するための権限です。
最低限必要なのは、bedrock-websearch:InvokeSearchです。
さらに、bedrock-websearch:InvokeFetchを付与すると、検索結果ページの本文取得も可能になります。

将来的に、リアルタイムのWeb検索を利用する場合は、bedrock-websearch:ExternalWebAccessも必要になります(今後、本機能が追加される予定です)。

InvokeSearch権限がない場合、Web Searchは実行されず、モデルは学習済みデータのみを利用して回答します。

OpenAI SDKでもAWS認証を利用する

今回の実装ではOpenAI SDKを利用しますが、OpenAIのAPIキーは使用しません。
代わりに aws-bedrock-token-generatorを利用し、AWSのIAM認証情報からBearer Tokenを生成します。

from aws_bedrock_token_generator import provide_token
client = OpenAI(
  base_url="https://bedrock-mantle.<region>.api.aws/openai/v1",
  api_key=provide_token(region="<region>")
)

ここで生成されるBearer Tokenは、

  • IAMロール
  • AWS CLI Profile
  • 環境変数

などのAWS認証情報をもとに生成される、一時的(最大12時間有効)な認証トークンです。
つまり、OpenAI SDKを利用しながらも、認証自体はAWS IAMで管理されます。

Step2 Web Searchを有効化する

通常のResponses API呼び出しは以下のようになります。

response = client.responses.create(
  model="openai.gpt-5.6-luna",
  input="今日のOpenAIの最新情報はある?"
)

Web Searchを利用する場合は、以下のtoolsブロックに記載されている内容を追加するだけです。
非常にシンプルですね!

tools=[
  {
    "type": "web_search",
    "external_web_access": False
  }
]

external_web_accessとは?

Step1でも少し触れましたが、このパラメータはどこから検索結果を取得するかを指定します。

説明
false Amazonが管理するWebインデックスから検索
true ライブWebから検索(将来提供予定)

Step3 回答とCitationを取得する

Web Searchを利用すると、通常の回答だけではなく、以下についても取得できます。

  • 実行された検索クエリ
  • アクセスしたWebページ
  • URL Citation

例えば、こんな感じになります。

検索クエリ:
2026/08/13 OpenAI 最新情報      

アクセスしたページ:
https://openai.com/ja-JP/news/

最終回答:
2026年8月13日時点での最新情報は…

引用情報:
Improving GPT‑5.6 Sol in ChatGPT—and expanding access to GPT‑5.6 Luna for free users
https://openai.com/index/improving-gpt-5-6-sol-in-chatgpt/

このCitation情報を利用することで、回答の根拠表示・引用URL表示・検索内容の可視化、なども簡単に実装できます。

おわりに

現在はOpenAIのモデルのみがAmazon BedrockでもWeb Search機能が使えるようになったとのことですが、AgentCoreを使うほどでもない用途でBedrockを使っている人にとっては、嬉しいアップデートなのではないでしょうか!

本当は実装までしたかったのですが、GPT-5.4以降のモデルがどうも401エラーで呼び出せずだったので、断念。。。
(解決した方いらっしゃいましたら、ぜひご教示いただきたいです。。。!)

×
タイトルとURLをコピーしました