AWS Bedrock 推出内置 Web Search 功能,无需第三方即可实现模型响应的实时网络知识锚定,降低了接入外部工具的复杂度。
当基础模型需要回答关于上周财报、昨天的监管变化或今天早间天气预报的问题时,它需要的是从未被训练过的知识。将模型与当前的网络知识相结合可以弥合这一差距——无论是为聊天机器人、编码助手、CLI 工具还是企业应用程序提供支持,Grounding 都有助于回答超出模型训练范围的问题,并减少幻觉。传统上,将模型连接到网络知识需要开发者识别、集成和维护第三方 Web Search 提供商,这个过程会延迟项目时间线,并引入数据驻留风险和运营开销。
在 AWS New York Summit 2026 上,我们宣布了 Web Search on AgentCore 的全面可用性。今天,我们进一步扩展,宣布 Web Search on Amazon Bedrock 的全面可用性。这是一个服务端内置工具,将模型响应锚定在当前的网络知识中。通过 Web Search,Grounding 成为 Amazon Bedrock 的原生能力,无需 onboarding 第三方供应商,无需编排外部 API,也无需进行额外的第三方供应商安全审查。
在本文中,我们将介绍什么是 Amazon Bedrock 上的 Web Search、为什么它很重要、如何使用 OpenAI Responses API 启用它,以及如何开始使用该工具。
Web Search 专为 Amazon Bedrock 模型推理而设计,具有以下差异化特性:
多源 Grounding 方法:Web Search 由亚马逊运营的网络索引支持,涵盖数十亿文档并持续刷新。它将此索引与内置知识图谱相结合,将实体锚定在特定领域及其之间的连接中。当问题本质上是事实性的——比如谁写了某本书或某个事件发生在哪一年——Web Search 使用知识图谱以高度置信度回答,而不是让模型从提取的页面文本中推断答案。这有助于减少代理从零散内容中组装答案时容易出现的小的事实性误差。
高效的上下文检索:Web Search 不是向模型提供原始页面并希望它找到相关部分,而是执行语义片段提取——从每个网页中提取与查询相关的内容,并以优化模型上下文窗口的形式返回。模型看到的都是重要的部分,减少了在模板内容上消耗的 token。检索速度快,因此可以以最低延迟交付有依据的响应。
单参数启用:Web Search 成为现有 OpenAI 兼容 API 调用中的单个参数,无需供应商 onboarding、API 密钥、编排层和单独的 SDK。
开箱即用的企业级合规性:默认情况下,Bedrock 上的 Web Search 提供零数据出口,因此您的数据永远不会离开您的 AWS 环境。随着我们引入新功能,某些未来功能可能仅在您明确请求时才会暴露数据。有关最新信息,请参阅 Amazon Bedrock 文档。Web Search 完全在 Amazon Bedrock 的基础设施内运行,支持客户的合规要求。

当在 API 调用中启用 Web Search 时,Bedrock 在服务端处理整个搜索生命周期。首先,模型识别出查询需要最新的网络知识。然后 Bedrock 构建搜索查询,从亚马逊的网络索引和知识图谱中检索相关内容,并将结果——包括相关片段、来源 URL 和标题——注入模型的上下文窗口。模型对检索到的内容进行推理,并生成带有来源引用的有依据响应。API 返回带有结构化引用注释的最终响应,包括每个引用来源的 URL 和页面标题。不需要构建客户端工具调用循环,不需要解析外部 API 响应,也不需要管理重试或速率限制——单次 API 调用即可返回有依据的响应。
Responses API 原生支持内置工具,因此 Web Search 可以在不定义函数模式或构建客户端循环的情况下调用。启用需要三个步骤:配置 AWS 凭证、将 OpenAI 客户端指向 bedrock-mantle 端点,以及在请求中添加 Web Search 工具。发布时,Web Search 可用于通过 Amazon Bedrock 下一代推理引擎提供的 OpenAI 模型。
步骤 1:配置身份验证和权限。Web Search 使用您现有的 AWS 凭证——无需配置单独的 API 密钥。环境必须通过标准凭证链(IAM 角色、AWS CLI 配置文件或环境变量)提供 AWS 凭证,这些凭证用于向 bedrock-mantle 端点进行身份验证。调用身份需要两组权限:
Amazon Bedrock 上的推理权限,以便模型调用本身能够成功。附加 AmazonBedrockMantleInferenceAccess 托管策略,或授予您的调用所需的特定推理操作。
Web Search 工具权限,以便模型可以在请求期间调用该工具。至少授予 bedrock-websearch:InvokeSearch;添加 bedrock-websearch:InvokeFetch 以允许模型读取结果的完整页面内容。实时网络检索还需要 bedrock-websearch:ExternalWebAccess,这是默认请求行为——如果您的身份没有此权限,请在工具上设置 external_web_access: false。如果 InvokeSearch 被拒绝,Web Search 将被有效禁用,模型将根据其训练数据作答。
对端点的请求使用 AWS 颁发的 bearer token 进行身份验证,您可以使用 aws-bedrock-token-generator 包从现有的 AWS 凭证生成此 bearer token。这个 bearer token 不是单独的 API 密钥;它是一个短期(最多 12 小时)的凭证,源自您现有的 AWS IAM 身份,通过 SigV4 签名,并包装成 OpenAI 客户端期望的 api_key 参数格式。无需额外的密钥管理。
从一个标准调用开始。正常的 Responses API 调用(不进行 Grounding)如下所示:
response = client.responses.create(
model="openai.gpt-5.4",
input="What were the key announcements at AWS re:Invent 2025?",
)
步骤 2:启用 Web Search。要将同一个调用锚定在网络知识中,添加一个工具条目:
tools=[{"type": "web_search", "external_web_access": False}]
可选的 external_web_access 字段选择 Web Search 从哪里检索:亚马逊的预索引网络语料库,或直接从网络获取的实时内容。目前只提供索引网络检索服务;实时网络检索将在未来更新中启用,该参数已在 API 中,因此您的代码无需更改。默认值为 true,需要 bedrock-websearch:ExternalWebAccess 权限。以下示例设置为 false,不需要额外权限。
步骤 3:读取带有引用的有依据响应。整合起来,以下是完整的端到端示例,包括如何提取来源引用:
from openai import OpenAI
from aws_bedrock_token_generator import provide_token
REGION = "us-east-1"
client = OpenAI(
base_url=f"https://bedrock-mantle.{REGION}.api.aws/openai/v1",
api_key=provide_token(region=REGION),
)
response = client.responses.create(
model="openai.gpt-5.4",
input="What were the key announcements at AWS re:Invent 2025?",
tools=[{"type": "web_search", "external_web_access": False}],
)
searches = [item for item in response.output if item.type == "web_search_call"]
print(f"Retrieval steps: {len(searches)}")
for call in searches:
if call.action.type == "search":
print(f" search: {call.action.queries}")
elif call.action.type == "open_page":
print(f" open_page: {call.action.url}")
for item in response.output:
if item.type == "message":
for content in item.content:
if content.type == "output_text":
print(content.text)
for citation in content.annotations or []:
if citation.type == "url_citation":
print(f" [{citation.title}] {citation.url}")
以上代码产生以下输出(已删减):
Retrieval steps: 2
search: ['AWS re:Invent 2025 key announcements official AWS blog keynote recap']
open_page: https://aws.amazon.com/blogs/aws/top-announcements-of-aws-reinvent-2025
The biggest AWS re:Invent 2025 announcements clustered around **AI agents, custom
silicon/infrastructure, and developer productivity**. ...
[Top announcements of AWS re:Invent 2025 | AWS News Blog] https://aws.amazon.com/...
[AWS re:Invent 2025: Amazon announces Nova 2, Trainium3, frontier agents] https://...
在这个示例中,请求在工具数组中包含一个 Web Search 条目。Bedrock 在服务端执行搜索并在一轮交互中返回有依据的响应——无需定义函数模式,也无需管理客户端循环。
每个引用都是消息内容 annotations 数组中的一个 url_citation 对象。其 Wire 格式:
{
"type": "url_citation",
"start_index": 120,
"end_index": 303,
"title": "Top announcements of AWS re:Invent 2025 | AWS News Blog",
"url": "https://aws.amazon.com/blogs/aws/top-announcements-of-aws-reinvent-2025"
}
start_index 和 end_index 是 output_text 中的字符偏移量,允许您渲染内联脚注或突出显示每个引用所支持的确切跨度。
Web Search 与 AWS CloudTrail 开箱即用集成。每次调用 bedrock-websearch:InvokeSearch 和 bedrock-websearch:InvokeFetch 都会被记录为管理事件,捕获调用身份、时间戳、操作、来源身份(包括任何 forward-access-session 发起者)以及请求的账户和区域上下文。访问拒绝结果始终被记录,每个 AccessDeniedException 事件都包含导致拒绝的特定条件键——这使得 IAM 错误配置易于诊断,无需开启额外的 trails。
根据设计,CloudTrail 不记录查询文本、搜索返回的 URL 或 fetch 检索的原始页面内容。查询文本与推理提示受到相同对待,从不会在 trail 事件中暴露。结合区域内处理和零数据出口,这为安全和合规团队提供了完整的使用审计跟踪——记录谁在何时使用了该工具,而不暴露最终用户搜索的内容。
Amazon Bedrock 上的 Web Search 消除了将基础模型连接到最新网络知识这一差异化的大量繁重工作。它通过低延迟提供上下文高效、多源的有依据结果,并通过单个 API 参数简单启用——因此开发者可以在不管理供应商、编排或合规审查的情况下添加网络 Grounding。
Web Search on Bedrock 在美国全面可用,在 us-east-1、us-east-2 和 us-west-2 提供区域内查询处理。有关定价详细信息,请参阅 Amazon Bedrock 定价页面。要开始使用,请参阅 Web Search 文档以获取完整的 API 参考和示例。