AWS · ML 博客

Amazon Bedrock 推出网络搜索功能,用于基础模型接地

Introducing Web Search on Amazon Bedrock for foundation model grounding

二〇二六年八月五日 · 英文原文

AWS 宣布 Amazon Bedrock 上 Web Search 全面可用,该服务端内置工具将模型响应锚定于当前网络知识,无需第三方供应商或外部 API 编排。其多源 grounding 方法结合 Amazon 网络索引与知识图谱,支持语义片段提取和单参数启用,默认零数据出口。开发者可通过 OpenAI Responses API 三步启用,并集成 AWS CloudTrail 审计。该功能在美国 us-east-1、us-east-2、us-west-2 区域可用。

当基础模型需要回答关于上周财报电话会议、昨天的监管变化或今天早上天气预报的问题时,它需要的是从未在训练中见过的知识。将模型锚定在当前的网络知识中可以弥合这一差距——无论是驱动聊天机器人、编码助手、CLI 工具还是企业应用,grounding 都能帮助回答超出模型训练范围的问题,并减少幻觉。传统上,将模型连接到网络知识需要开发者识别、集成并维护第三方 Web Search 提供商,这一过程会延迟项目时间表,并引入数据驻留风险和运营开销。在 AWS New York Summit 2026 上,我们宣布了 AgentCore 上 Web Search 的全面可用性。今天,我们通过 Amazon Bedrock 上 Web Search 的全面可用性进一步扩展了这一功能。它是一个服务端内置工具,将模型响应锚定在当前的网络知识中。借助 Web Search,grounding 成为 Amazon Bedrock 的原生能力,无需接入第三方供应商、无需编排外部 API、也无需进行额外的第三方供应商安全审查。在本文中,我们将介绍 Amazon Bedrock 上的 Web Search 是什么、为何重要、如何使用 OpenAI Responses API 启用它,以及如何开始使用该工具。

Amazon Bedrock 上的 Web Search 提供什么

Web Search 专为 Amazon Bedrock 模型推理设计,具有以下差异化特性:

工作原理

在 API 调用中启用 Web Search 后,Bedrock 在服务端处理整个搜索生命周期。首先,模型识别出查询需要最新的网络知识。然后,Bedrock 制定搜索查询,从 Amazon 的网络索引和知识图谱中检索相关内容,并将结果(包括相关片段、来源 URL 和标题)注入模型的上下文窗口。模型对检索到的内容进行推理,并生成带有来源引用的 grounded 响应。API 返回带有结构化引用注释的最终响应,包括每个引用来源的 URL 和页面标题。无需构建客户端工具使用循环、无需解析外部 API 响应、也无需管理重试或速率限制——一次 API 调用即可返回 grounded 响应。

开始使用 OpenAI Responses 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 端点验证请求。调用身份需要两组权限:

对端点的请求使用 AWS 颁发的 bearer token 进行身份验证,您可以使用 aws-bedrock-token-generator 包从现有的 AWS 凭证中生成该 token。此 bearer token 不是单独的 API 密钥;它是一个短期(最长 12 小时)凭证,通过 SigV4 从您现有的 AWS IAM 身份派生,并以 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 条目:

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

可选的 external_web_access 字段选择 Web Search 的检索来源:Amazon 的预索引网络语料库,或直接从网络获取的实时内容。目前仅提供索引网络检索;实时网络检索将在未来的更新中启用,该参数已在 API 中,因此您的代码无需更改。默认值为 true,这需要 bedrock-websearch:ExternalWebAccess 权限。以下示例设置为 false,无需额外权限。

步骤 3:读取带有引用的 grounded 响应。 综合起来,以下是完整的端到端示例,包括如何提取来源引用:

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://...

在此示例中,请求在 tools 数组中包含一个 Web Search 条目。Bedrock 在服务端执行搜索,并在一次往返中返回 grounded 响应——无需定义函数模式,也无需管理客户端循环。每个引用都是消息内容 annotations 数组中的一个 url_citation 对象。其线上格式如下:

{
  "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_indexend_indexoutput_text 中的字符偏移量,允许您呈现内联脚注或高亮显示每个引用支持的确切范围。

审计与可观测性

Web Search 开箱即用地与 AWS CloudTrail 集成。每次对 bedrock-websearch:InvokeSearchbedrock-websearch:InvokeFetch 的调用都会记录为管理事件,捕获调用身份、时间戳、操作、源身份(包括任何 forward-access-session 发起者)以及请求的账户和区域上下文。访问被拒绝的结果始终会被记录,每个 AccessDeniedException 事件都包含导致拒绝的特定条件键——这使得无需启用额外的跟踪即可轻松诊断 IAM 配置错误。根据设计,CloudTrail 不记录查询文本、搜索返回的 URL 或 fetch 检索到的原始页面内容。查询文本与推理提示的处理方式相同,永远不会暴露在跟踪事件中。结合区域内处理和零数据出口,这为安全和合规团队提供了谁在何时使用了该工具的完整审计跟踪,而不会暴露最终用户的搜索内容。

结论

Amazon Bedrock 上的 Web Search 消除了将基础模型连接到最新网络知识的无差别繁重工作。它提供上下文高效、多源的 grounded 结果,具有低延迟,并通过单个 API 参数实现简单启用——因此开发者无需管理供应商、编排或合规审查即可添加网络 grounding。Bedrock 上的 Web Search 在美国全面可用,在 us-east-1、us-east-2 和 us-west-2 区域内处理查询。有关定价详情,请参阅 Amazon Bedrock 定价页面。要开始使用,请参阅 Web Search 文档以获取完整的 API 参考和示例。

关于作者

Anuj Jauhari 是 AWS 的高级技术产品营销经理,帮助客户通过生成式 AI 实现业务成果。

Vadim Omeltchenko 是一位高级 AI/ML 解决方案架构师,热衷于帮助 AWS 客户在云端创新。他之前的 IT 经验主要集中在地面系统。

Priya Holikatti 是 Amazon AGI 的高级技术产品经理,负责构建将 AI 代理和模型连接到实时、可信网络知识的 Web Search 功能。

Rashim Gupta 是 AWS Amazon Bedrock 的高级技术产品管理经理,领导团队构建客户用于在 Bedrock 上开发和运行生产应用程序的功能。

Omar Abdelwahab 是 Amazon Web Services (AWS) 的技术产品营销经理,专注于包括 Agentic AI 和 Web Search 在内的 AI 产品。他拥有计算机科学博士学位,热衷于在 AI、技术和市场策略的交汇处工作,帮助客户构建创新应用。

译自 AWS · ML 博客 · 录于 二〇二六年八月五日