Amazon Bedrock AgentCore Web Search 功能新增运行时域名过滤和发布日期过滤,开发者可按请求控制 Agent 咨询的来源范围与内容时效性,同时扩展至爱尔兰和东京区域。
当 AI 智能体使用 Web Search 为客户回答问题以增强答案可信度时,运营该智能体的组织需要域名和日期过滤器来控制智能体参考哪些来源、以及这些来源需要有多新。一个金融服务智能体不应该在一个未经审核的博客上寻找答案基础。一个产品信息智能体在用户询问当前库存时,不应该引用三年前的定价或库存数据,因为库存水平和定价变化很快。
今天,我们宣布在 Amazon Bedrock AgentCore 上推出运行时域名和发布日期过滤功能。AgentCore 是一个平台,可以使用任何框架或模型大规模构建、连接和优化智能体。此功能随 web-search connector 1.2.0 版本一起发布。这些功能使开发人员能够对每次工具调用进行细粒度控制——控制智能体可以搜索哪些 Web 域名、以及结果必须落在什么发布日期范围内,所有过滤均在服务端强制执行。无需外部编排。结合现有的管理员级域名策略,组织可以建立分层过滤模型,在强制执行企业治理的同时,让各个 API 调用能够按请求动态收窄范围。
除了运行时过滤,此次发布还将 Web Search 扩展到两个新的 AWS 区域:eu-west-1(都柏林)和 ap-northeast-1(东京)。欧洲和亚太地区的客户现在可以从更靠近其工作负载的区域端点调用 Web Search,降低延迟,并为有数据距离要求的组织提供欧盟入口点。AgentCore 采用零出口架构,搜索查询始终在 AWS 内部完成。此次区域扩展为这些地区的受监管客户提供了一条使用增强智能体的路径,无需将流量跨越大西洋路由。
在本文中,我们将介绍什么是运行时过滤、为什么它很重要、分层 admin 加运行时模型如何工作、如何开始使用新的 API 参数,以及区域可用性对工作负载意味着什么。
Connector 版本 1.2.0 的新功能
此次发布在 Web Search 工具输入 schema 的 filters 对象中引入了两个新功能:
在每次 tools/call 调用时传入包含列表(允许列表)或排除列表(拒绝列表)。这使得每个请求都可以控制智能体可以参考哪些来源。
每个列表最多支持 100 个域名,独立计数。
使用 ISO-8601 UTC 边界将结果限制在特定日期范围内发布的内容:
两个过滤器都是可选的,按请求应用。省略它们会保留现有行为,即所有索引内容都有资格被返回。
为什么运行时过滤很重要
现实世界的智能体工作负载需要比组织级策略更细粒度的控制:
按任务限制来源:分析监管更新的合规智能体应该只搜索 .gov 域名和经批准的发布商,而不是开放 Web。
时间范围限定:汇总"本周财报电话"的 市场情报智能体永远不应该展示上一季度的结果,即使它们在查询中排名很高。
调用时动态允许/拒绝:为不同客户提供服务的多租户平台可能需要每个请求使用不同的域名策略,而无需为每个租户创建单独的目标。
内容新鲜度保证:回答"最新版本有哪些变化"的客户支持智能体应该只返回过去 7 天内发布的文档。
运行时过滤通过将控制权移至 API 调用本身来满足这些需求。
工作原理:请求流程
下图展示了过滤搜索请求的生命周期:你的智能体发送带有查询和过滤器的 tools/call,Gateway 将你的运行时过滤器与管理员级策略合并,针对 Web 索引执行过滤查询,对原始结果强制执行合规性检查,然后仅返回经过验证的结果供你的智能体在回答中使用。
图 1:过滤 Web Search 请求的生命周期,从 tools/call 到经验证的结果
整个生命周期在服务端完成。没有客户端过滤循环、没有后处理、也没有额外的往返调用。
分层过滤模型:Admin + 运行时
此次发布的一个关键设计原则是:运行时过滤器可以收窄但永远不能扩展管理员设定的范围集。这确保了无论运行时调用者请求什么,企业策略始终被强制执行。管理员级域名列表在创建连接器资源时设置。
下图说明了管理员级和运行时过滤列表如何组合:包含列表通过交集合并(只有同时出现在两个列表中的域名保留),而排除列表通过并集合并(在任一级别被阻止的域名保持被阻止状态)。注意 d.com 如何从有效允许列表中移除,因为它仅出现在运行时列表中,而不在管理员策略中。
图 2:管理员和运行时域名列表如何合并——包含列表取交集、排除列表取并集
域名包含(允许列表):有效允许列表是管理员列表和运行时列表的交集。如果管理员允许 [a.com, b.com, c.com],运行时调用包含 [b.com, c.com, d.com],则只搜索 b.com 和 c.com。域名 d.com 不在管理员域名列表中,被静默删除。
域名排除(拒绝列表):有效拒绝列表是管理员列表和运行时列表的并集。如果管理员阻止 [x.com],运行时调用排除 [y.com],则两者都被阻止。
注意:运行时调用者无法搜索管理员未允许的域名,也无法取消管理员已拒绝的域名的阻止状态。运行时过滤器只能进一步限制搜索空间。
过滤器合规行为
当过滤器处于活跃状态时,Web Search 以精确度优先于召回率为原则。无法根据过滤器条件验证的结果会被排除,而不是返回未过滤的结果:
域名过滤器活跃:无法识别域名的结果被排除在考虑范围之外。
日期过滤器活跃:无法识别发布日期的结果被排除。
启用过滤器后你可能会收到更少的结果,但你收到的每个结果都满足你指定的过滤器条件。
共有四个列表:admin 包含、admin 排除、runtime 包含和 runtime 排除。每个列表独立支持最多 100 个条目。有关完整配置详情和组合规则,请参阅开发者指南中的配置域名过滤。
Web Search 通过 AgentCore Gateway 交付,这是 Amazon Bedrock AgentCore 的一项功能,提供兼容 Model Context Protocol(MCP)的托管端点,用于将智能体连接到工具。按照以下步骤为你的 Web Search 目标启用运行时域名和日期过滤。
一个 Web Search 目标绑定到 connector 1.2.0 或更高版本的 Amazon Bedrock AgentCore Gateway。
AWS Identity and Access Management(IAM)权限:你的调用智能体或应用程序需要在网关 ARN 上具有 bedrock-agentcore:InvokeGateway 权限,而网关的服务角色需要 bedrock-agentcore:InvokeWebSearch 权限。请参阅配置 Gateway 服务角色以获取完整策略。
最新的 AWS SDK(Python、JavaScript、Java、.NET、Go、Ruby 或 PHP)。
步骤 1:使用版本 1.2.0 创建 Web Search 目标
使用 AWS SDK for Python(Boto3)创建(或更新)一个绑定到版本 1.2.0 的目标,并设置管理员级域名策略。如果你已有版本 1.1.0 上的 Web Search 目标,可以使用 UpdateGatewayTarget 将其绑定到版本 1.2.0,而不是创建新目标。有关其他设置选项(包括 AgentCore CLI 和控制台),请参阅设置 Web Search 工具。
import boto3
gateway_client = boto3.client("bedrock-agentcore-control", region_name="us-east-1")
# Create a Web Search target pinned to version 1.2.0 with admin-level domain filtering
target = gateway_client.create_gateway_target(
gatewayIdentifier="your-gateway-id",
name="web-search-filtered",
targetConfiguration={
"mcp": {
"connector": {
"source": {"connectorId": "web-search", "version": "1.2.0"},
"configurations": [
{
"name": "WebSearch",
"parameterValues": {
"domainFilter": {
"include": [
"approved-wire-1.com",
"approved-wire-2.com",
"sec.gov",
"investor.gov",
],
"exclude": ["unreliable-source.net"],
}
},
}
],
}
}
},
credentialProviderConfigurations=[
{"credentialProviderType": "GATEWAY_IAM_ROLE"}
],
)
## 第 2/3 部分
print(f"Target ID: {target['targetId']}")
print(f"Status: {target['status']}")
假设你的 AI 智能体在为法务团队监控 SEC 执法行动。该团队只信任 sec.gov 作为主要来源,且只需要当月发布的行动,而非历史文件。以下是你的 AI 智能体发送的 tools/call 请求载荷:
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "WebSearch",
"arguments": {
"query": "latest SEC enforcement actions 2026",
"filters": {
"domainFilter": {
"include": ["sec.gov"],
"exclude": []
},
"publishedDateFilter": {
"from": "2026-07-01T00:00:00Z",
"to": "2026-08-04T23:59:59Z"
}
}
}
}
}
AI 智能体只收到来自 sec.gov 且在最近五周内发布的结果。结果中不会出现第三方法律评论或过时文件。
注意:tools/call 请求中的工具名称是通 tools/list 发现名称,遵循 <target-name>___WebSearch 的模式。对于之前创建的目标,即 web-search-filtered___WebSearch。运行时 include 列表(sec.gov)与管理员列表(approved-wire-1.com、approved-wire-2.com、sec.gov、investor.gov)取交集。由于 sec.gov 同时出现在两个列表中,因此会被搜索。如果传入 some-other-site.com,则会被静默丢弃,因为它不在管理员允许列表中。
以下是一些示例,展示如何使用从 AgentCore Gateway 创建的 MCP 客户端在运行时使用新过滤器。创建用于调用工具的 MCP 客户端的代码示例。
示例 1:符合监管引用要求且需要合规性的临床研究助手
你正在为一家制药公司的监管事务团队构建研究助手。公司政策要求每个答案只能引用 FDA、NIH 或 ClinicalTrials.gov。来自健康博客的引用不仅是质量问题,更是可能在审计中暴露的合规违规。AI 智能体需要在每次搜索时强制执行此要求,无论模型构造何种查询。
import json
# Pharma research assistant: only approved regulatory sources
compliance_request = json.dumps({
"jsonrpc": "2.0",
"id": "req-001",
"method": "tools/call",
"params": {
"name": "WebSearch",
"arguments": {
"query": "FDA drug approval process 2026 guidance",
"maxResults": 10,
"filters": {
"domainFilter": {
"include": ["fda.gov", "nih.gov", "clinicaltrials.gov"]
}
}
}
}
})
# Send via your MCP client (SigV4-signed or OAuth-authenticated)
response = mcp_client.send(compliance_request)
results = json.loads(response)
# Every result is from fda.gov, nih.gov, or clinicaltrials.gov
for result in results["result"]["content"]:
print(result["text"])
你的 AI 智能体引用的每个结果现在都可以验证来自批准的监管来源。即使 WebMD 文章对该查询排名 #1,它也永远不会进入模型的上下文窗口。
示例 2:仅限本周报道的股票更新 AI 智能体
你的交易台运行着一个在交易日内生成股票更新的 AI 智能体。问题是:当交易员询问"半导体股票最新动态如何?"时,AI 智能体过去会展示上季度的高排名分析,而依据过时报道操作的交易员会损失资金。你需要每个结果都来自过去 7 天,无例外。
from datetime import datetime, timedelta, timezone
# Calculate the 7-day window
now = datetime.now(timezone.utc)
seven_days_ago = now - timedelta(days=7)
stock_update_request = json.dumps({
"jsonrpc": "2.0",
"id": "req-002",
"method": "tools/call",
"params": {
"name": "WebSearch",
"arguments": {
"query": "semiconductor stocks latest developments",
"maxResults": 15,
"filters": {
"publishedDateFilter": {
"from": seven_days_ago.strftime("%Y-%m-%dT%H:%M:%SZ"),
"to": now.strftime("%Y-%m-%dT%H:%M:%SZ")
}
}
}
}
})
response = mcp_client.send(stock_update_request)
AI 智能体的股票更新现在只基于过去七天内发布的报道。那份上季度的高排名分析?它永远不会触达模型,因此也永远不可能误导交易员。
注意:启用日期过滤器时,无法识别发布日期的结果会被排除。这确保了每个返回的结果都可以验证处于你的时间窗口内。
示例 3:投资者关系合规,仅限主要来源和本季度
你的投资者关系团队使用 AI 智能体来准备财报分析草稿。两项硬性规则:(1) 仅限主要来源:SEC 文件和官方投资者页面,绝不引用众包金融评论网站;(2) 仅限本季度出版物,因为在当前季度分析中引用上季度的数据是重大错误。你需要同时对每次搜索强制执行这两个约束。
# IR compliance agent: primary sources + current quarter only
financial_request = json.dumps({
"jsonrpc": "2.0",
"id": "req-003",
"method": "tools/call",
"params": {
"name": "WebSearch",
"arguments": {
"query": "AMZN quarterly earnings report Q2 2026",
"maxResults": 10,
"filters": {
"domainFilter": {
"include": ["sec.gov", "investor.gov"],
"exclude": ["example-crowd-commentary-1.com", "example-crowd-commentary-2.com"]
},
"publishedDateFilter": {
"from": "2026-04-01T00:00:00Z",
"to": "2026-08-04T23:59:59Z"
}
}
}
}
})
response = mcp_client.send(financial_request)
AI 智能体的草稿现在只引用 Q2 和 Q3 2026 年的官方文件和通讯社报道。即使众包评论和观点文章完美匹配查询,也会被屏蔽。无论来源如何,之前季度的内容都会被排除。
示例 4:每个租户有独立来源策略的 SaaS 平台
你运营着一个服务于医疗、法律和金融服务客户的研究 AI 智能体 SaaS 平台。每个租户都有合同约定的来源策略。你的医疗客户的业务伙伴协议(BAA)要求只能引用 PubMed、CDC 和批准的医学研究数据库。你的法律客户坚持使用 Cornell LII 和官方法院记录。你的金融客户要求 SEC、美联储和批准的通讯社。你无法为每个租户单独启动网关目标(你有 200 个租户且还在增加),因此你使用 Strands Agents SDK 在运行时应用租户特定的过滤器。
from strands import Agent
from strands.models import BedrockModel
from strands.tools.mcp.mcp_client import MCPClient
from mcp.client.streamable_http import streamablehttp_client
# Per-tenant domain policies (from your config database)
TENANT_POLICIES = {
"tenant-healthcare": {
"include": ["pubmed.ncbi.nlm.nih.gov", "who.int", "cdc.gov"],
"exclude": ["example-consumer-health-site.com"],
},
"tenant-legal": {
"include": ["law.cornell.edu", "supremecourt.gov", "uscourts.gov"],
"exclude": [],
},
"tenant-finance": {
"include": ["sec.gov", "federalreserve.gov", "example-approved-wire.com"],
"exclude": ["example-social-forum-site.com"],
},
}
def search_for_tenant(tenant_id: str, query: str, days_back: int = 30):
"""Execute a policy-compliant web search for a specific tenant."""
from datetime import datetime, timedelta, timezone
policy = TENANT_POLICIES[tenant_id]
now = datetime.now(timezone.utc)
date_from = (now - timedelta(days=days_back)).strftime("%Y-%m-%dT%H:%M:%SZ")
def create_transport():
return streamablehttp_client(
gateway_url,
headers={"Authorization": f"Bearer {get_token()}"},
)
mcp_client = MCPClient(create_transport)
model = BedrockModel(
model_id="us.anthropic.claude-sonnet-4-20250514-v1:0",
max_tokens=2048,
)
with mcp_client:
tools = mcp_client.list_tools_sync()
agent = Agent(model=model, tools=tools)
# The agent's system prompt instructs it to pass these filters
# on every WebSearch invocation
system_prompt = f"""You are a research assistant. When using WebSearch,
ALWAYS include these filters in your tool call:
- domainFilter.include: {policy['include']}
- domainFilter.exclude: {policy['exclude']}
- publishedDateFilter.from: {date_from}
Never search outside approved domains."""
result = agent(query, system_prompt=system_prompt)
return result.message
answer = search_for_tenant(
"tenant-healthcare",
"What are the latest clinical trial results for GLP-1 drugs?"
)
一个网关目标可为 200 个租户提供服务,每个租户拥有独立的源策略,并在调用时动态执行。你的医疗保健租户的 AI 智能体不会引用 Reddit 或 WebMD,而你的金融租户的 AI 智能体也不会引用博客文章,尽管它们共享相同的底层基础设施。
重要提示:基于系统提示的过滤(如前所示)依赖于 AI 智能体遵循指令,并非硬性强制。如需硬性强制,请在目标级别配置允许的域名(admin include 列表)。通过 tool/call payload 直接传递的运行时过滤器提供了 API 级别的强制执行,模型无法绕过。
输入 schema 参考
connector 1.2.0 版本引入的 filters 对象在原有 query 和 maxResults 字段基础上新增了 domainFilter(包含/排除列表,各最多 100 个域名)和 publishedDateFilter(包含性 ISO-8601 UTC 范围)。完整输入 schema 和逐字段参考,请参阅 Amazon Bedrock AgentCore 开发者指南中的 输入 schema。
可用性与零数据出口
运行时域名和日期过滤功能现已在以下区域正式推出:美国东部(弗吉尼亚北部)(us-east-1)、欧洲(爱尔兰)(eu-west-1)和亚太地区(东京)(ap-northeast-1),适用于 Amazon Bedrock AgentCore 上的 Web Search。
Web Search 受益于 AgentCore 的零数据出口架构:搜索查询完全在 AWS 基础设施内处理。客户查询不会发送到第三方搜索引擎或路由到 AWS 外部。对于金融服务、医疗保健和政府等受监管行业的组织,这免除了一整类合规审查。
向后兼容
这些功能完全向后兼容:
无破坏性变更。1.2.0 版本是次版本更新。新增字段是加性的,filters 对象是可选的。不带过滤器的现有 API 调用完全按原样继续工作。
SDK 支持。支持所有 AWS SDK(Python (Boto3)、JavaScript/TypeScript、Java、.NET、Go、Ruby 和 PHP SDK)、AWS 命令行界面(AWS CLI)和 AgentCore CLI。
控制台支持。AgentCore Web Search 目标的 AWS Console 现已在连接器配置 UI 中显示包含和排除域名列表输入。
运行时域名和发布时期过滤为在 Amazon Bedrock AgentCore Gateway 上构建的开发者提供了每次调用所需的精确控制,使他们能够构建值得信赖的、符合策略的 AI 智能体,而无需牺牲托管服务端搜索工具的简便性。
无论你是将 AI 智能体限制在经批准的监管来源、将结果范围限定在最近 24 小时,还是动态应用特定于租户的策略,AgentCore 上的 Web Search 都能让你通过零数据出口、原生 IAM 身份验证和无外部依赖保持完全控制。
这些功能现已在以下 AWS 区域正式推出:美国东部(弗吉尼亚北部)(us-east-1)、欧洲(爱尔兰)(eu-west-1)和亚太地区(东京)(ap-northeast-1),适用于 Amazon Bedrock AgentCore 上的 Web Search。
Amazon Bedrock AgentCore 开发者指南中的 Web Search 过滤