跳至主要內容

Amazon Bedrock AgentCore 網頁搜尋

Amazon Bedrock AgentCore 上的網頁搜尋 是一個 AWS 托管的網頁索引,作為 AgentCore Gateway 上的 MCP 工具公開,因此搜尋流量會保留在 AWS 內部,並由 AWS 計費,而不是第三方搜尋 API

與其他搜尋提供者不同,這裡不需要註冊 API 金鑰。您建立一個帶有 web-search connector target 的 gateway,然後讓 LiteLLM 指向其 MCP endpoint

提供者 IDagentcore
Gateway URLAGENTCORE_GATEWAY_URL,或 api_base
驗證(AWS_IAM gateway)SigV4,來自明確提供的金鑰或標準 AWS credential chain
驗證(CUSTOM_JWT gateway)AGENTCORE_GATEWAY_TOKEN,或 api_key
工具名稱覆寫AGENTCORE_SEARCH_TOOL_NAME,或 tool_name
MCP protocol version 覆寫AGENTCORE_MCP_PROTOCOL_VERSION

gateway URL 看起來像 https://<gateway-id>.gateway.bedrock-agentcore.us-east-1.amazonaws.com/mcp

LiteLLM Python SDK​

AgentCore Web Search
import os
from litellm import search

os.environ["AGENTCORE_GATEWAY_URL"] = "https://<gateway-id>.gateway.bedrock-agentcore.us-east-1.amazonaws.com/mcp"
os.environ["AWS_ACCESS_KEY_ID"] = "your-access-key"
os.environ["AWS_SECRET_ACCESS_KEY"] = "your-secret-key"

response = search(
query="latest AI developments",
search_provider="agentcore",
max_results=5
)

for result in response.results:
print(f"{result.title}: {result.url}")
print(f"Snippet: {result.snippet}\n")

省略 AWS 金鑰即可使用標準 credential chain(環境、shared profile、IRSA、instance role),或在每次呼叫時以 aws_access_key_id、aws_secret_access_key、aws_session_token 和 aws_region_name 傳入

對於 CUSTOM_JWT gateway,請改為傳入 OAuth2 bearer token,且不會使用 AWS credentials:

AgentCore Web Search with a CUSTOM_JWT gateway
response = search(
query="latest AI developments",
search_provider="agentcore",
api_key=os.environ["AGENTCORE_GATEWAY_TOKEN"]
)

LiteLLM AI Gateway​

1. 設定 config.yaml​

config.yaml
search_tools:
- search_tool_name: agentcore-search
litellm_params:
search_provider: agentcore
api_base: https://<gateway-id>.gateway.bedrock-agentcore.us-east-1.amazonaws.com/mcp

2. 啟動 proxy​

litellm --config /path/to/config.yaml

# RUNNING on http://0.0.0.0:4000

3. 測試搜尋端點​

Test Request
curl http://0.0.0.0:4000/v1/search/agentcore-search \
-H "Authorization: Bearer $LITELLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "latest AI developments",
"max_results": 5
}'

Bedrock 的網頁搜尋攔截​

由於此提供者不需要第三方金鑰,因此它很自然地可作為 網頁搜尋攔截 的後端,透過搜尋提供者提供 Anthropic 原生的 web_search 工具(如 Claude Code 所使用):

config.yaml
model_list:
- model_name: claude-sonnet
litellm_params:
model: bedrock/us.anthropic.claude-sonnet-5
aws_region_name: us-east-1

search_tools:
- search_tool_name: agentcore-search
litellm_params:
search_provider: agentcore
api_base: https://<gateway-id>.gateway.bedrock-agentcore.us-east-1.amazonaws.com/mcp

litellm_settings:
callbacks: ["websearch_interception"]
websearch_interception_params:
enabled_providers: ["bedrock"]
search_tool_name: agentcore-search

統一參數​

統一規格參數對應的 AgentCore 參數
max_resultsmaxResults
search_domain_filterignored(無對應項)
countryignored(無對應項)
max_tokens_per_pageignored(無對應項)

AgentCore 將查詢上限設為 200 個字元,因此較長的查詢會被截斷

提供者特定參數​

參數類型說明
tool_namestring要呼叫的 gateway 工具。預設為 web-search-tool___WebSearch,與 AWS 設定文件中使用的 target 名稱一致。只有當您的 connector target 名稱不同時才設定這個值。必須以 ___WebSearch 結尾

備註​

gateway 由 AWS 直接計費,因此 LiteLLM 會以零成本追蹤 agentcore/search

SigV4 簽署區域來自 gateway hostname。如果您用自訂 hostname 在前方代理 gateway,請將 aws_region_name(或 AWS_REGION,或 profile region)設為 gateway 的區域

AGENTCORE_GATEWAY_TOKEN 只會在請求目標為 AGENTCORE_GATEWAY_URL 中設定的 gateway 時傳送,因此呼叫端提供的 api_base 無法外洩它。credentials 也只會透過 https 傳遞:除非主機是 localhost,否則純 http:// 的 gateway URL 會被拒絕

LiteLLM 會在每次請求中傳送 MCP-Protocol-Version: 2025-03-26,這是具有預設 protocolConfiguration 的 gateway 所接受的版本。如果您的 gateway 將 supportedVersions 鎖定為其他值,請將 AGENTCORE_MCP_PROTOCOL_VERSION 設為相符值,例如 2025-06-18