Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cari alat di AgentCore gateway Anda dengan kueri bahasa alami
Jika Anda mengaktifkan pencarian semantik untuk gateway Anda saat Anda membuatnya, Anda dapat memang x_amz_bedrock_agentcore_search gil alat untuk mencari alat di gateway Anda dengan kueri bahasa alami. Pencarian semantik sangat berguna ketika Anda memiliki banyak alat dan perlu menemukan yang paling tepat untuk kasus penggunaan Anda. Untuk mempelajari cara mengaktifkan pencarian semantik selama pembuatan gateway, lihat Membuat AgentCore gateway Amazon Bedrock.
Didukung AWS Wilayah untuk pencarian semantik
Pencarian semantik didukung di Wil AWS ayah berikut:
| Nama wilayah |
Region |
|
AS Timur (Virginia Utara)
|
us-east-1
|
|
US East (Ohio)
|
us-east-2
|
|
US West (Oregon)
|
us-west-2
|
|
Asia Pasifik (Hyderabad)
|
ap-south-2
|
|
Asia Pasifik (Mumbai)
|
ap-south-1
|
|
Asia Pacific (Seoul)
|
ap-northeast-2
|
|
Asia Pacific (Singapore)
|
ap-southeast-1
|
|
Asia Pacific (Sydney)
|
ap-southeast-2
|
|
Asia Pacific (Tokyo)
|
ap-northeast-1
|
|
Canada (Central)
|
ca-sentral-1
|
|
Europe (Frankfurt)
|
eu-central-1
|
|
Europe (Ireland)
|
eu-west-1
|
|
Europe (London)
|
eu-barat-2
|
|
Eropa (Milan)
|
eu-selatan-1
|
|
Eropa (Paris)
|
eu-west-3
|
|
Eropa (Spanyol)
|
eu-south-2
|
|
Eropa (Stockholm)
|
eu-north-1
|
|
South America (Sao Paulo)
|
sa-east-1
|
Untuk mencari alat menggunakan AgentCore alat ini, buat permintaan POST berikut dengan tools/call metode ke titik akhir MCP gateway:
contoh
- 2025-11-25 and earlier
-
POST /mcp HTTP/1.1
Host: ${GatewayEndpoint}
Accept: application/json, text/event-stream
Content-Type: application/json
Authorization: ${Authorization header}
MCP-Protocol-Version: ${McpProtocolVersion}
{
"jsonrpc": "2.0",
"id": "${RequestName}",
"method": "tools/call",
"params": {
"name": "x_amz_bedrock_agentcore_search",
"arguments": {
"query": ${Query}
}
}
}
- 2026-07-28
-
Pada versi2026-07-28, setiap permintaan membawa MCP-Protocol-Version header, header Mcp-Method dan Mcp-Name request-metadata, dan bidang _meta versi di badan.
POST /mcp HTTP/1.1
Host: ${GatewayEndpoint}
Accept: application/json, text/event-stream
Content-Type: application/json
Authorization: ${Authorization header}
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: x_amz_bedrock_agentcore_search
{
"jsonrpc": "2.0",
"id": "${RequestName}",
"method": "tools/call",
"params": {
"name": "x_amz_bedrock_agentcore_search",
"arguments": {
"query": ${Query}
},
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientInfo": {
"name": "my-agent",
"version": "1.0.0"
},
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}
Gateway hanya menerima versi protokol MCP yang tercantum di supportedVersions bidang protocolConfiguration.mcp konfigurasinya. Untuk menggunakan versi2026-07-28, pastikan gateway Anda menyer supportedVersions takannya. Anda dapat mengubah versi yang didukung dengan UpdateGateway API.
Ganti nilai-nilai berikut:
-
${GatewayEndpoint}— URL gateway, seperti yang disediakan dalam tanggapan CreateGateway API.
-
${Authorization header}— KredenSIAL otorisasi dari penyedia identitas saat Anda mengatur otorisasi masuk.
-
${McpProtocolVersion}— Versi protokol MCP untuk permintaan, seperti2025-11-25. Versi harus salah satu yang didukung gateway Anda.
-
${RequestName}— Nama untuk permintaan.
-
${Query}— Kueri bahasa alami untuk mencari alat.
Respons mengembalikan daftar alat yang relevan dengan kueri.
Contoh kode untuk pencarian alat
Untuk melihat contoh penggunaan kueri bahasa alami untuk menemukan alat di gateway, pilih salah satu metode berikut:
contoh
- Python requests package (2025-11-25 and earlier)
-
Atur MCP-Protocol-Version header ke versi yang didukung gateway Anda.
import requests
import json
def search_tools(gateway_url, access_token, query):
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {access_token}",
"MCP-Protocol-Version": "2025-11-25"
}
payload = {
"jsonrpc": "2.0",
"id": "search-tools-request",
"method": "tools/call",
"params": {
"name": "x_amz_bedrock_agentcore_search",
"arguments": {
"query": query
}
}
}
response = requests.post(gateway_url, headers=headers, json=payload)
return response.json()
# Example usage
gateway_url = "https://${GatewayEndpoint}/mcp" # Replace with your actual gateway endpoint
access_token = "${AccessToken}" # Replace with your actual access token
results = search_tools(gateway_url, access_token, "find order information")
print(json.dumps(results, indent=2))
- Python requests package (2026-07-28)
-
Pada versi2026-07-28, sertakan Mcp-Method header dan Mcp-Name request-metadata dan bidang _meta versi di badan. MCP-Protocol-VersionHeader harus cocok_meta.io.modelcontextprotocol/protocolVersion. Gateway Anda supportedVersions harus disertakan2026-07-28.
import requests
import json
def search_tools(gateway_url, access_token, query):
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {access_token}",
"MCP-Protocol-Version": "2026-07-28",
"Mcp-Method": "tools/call",
"Mcp-Name": "x_amz_bedrock_agentcore_search"
}
payload = {
"jsonrpc": "2.0",
"id": "search-tools-request",
"method": "tools/call",
"params": {
"name": "x_amz_bedrock_agentcore_search",
"arguments": {
"query": query
},
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientInfo": {"name": "my-agent", "version": "1.0.0"},
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}
response = requests.post(gateway_url, headers=headers, json=payload)
return response.json()
# Example usage
gateway_url = "https://${GatewayEndpoint}/mcp" # Replace with your actual gateway endpoint
access_token = "${AccessToken}" # Replace with your actual access token
results = search_tools(gateway_url, access_token, "find order information")
print(json.dumps(results, indent=2))
- MCP Client
-
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
import asyncio
async def execute_mcp(
url,
token,
tool_params,
headers=None
):
default_headers = {
"Authorization": f"Bearer {token}"
}
headers = {**default_headers, **(headers or {})}
async with streamablehttp_client(
url=url,
headers=headers,
) as (
read_stream,
write_stream,
callA,
):
async with ClientSession(read_stream, write_stream) as session:
# 1. Perform initialization handshake
print("Initializing MCP...")
_init_response = await session.initialize()
print(f"MCP Server Initialize successful! - {_init_response}")
# 2. Call specific tool
print(f"Calling tool: {tool_params['name']}")
tool_response = await session.call_tool(
name=tool_params['name'],
arguments=tool_params['arguments']
)
print(f"Tool response: {tool_response}")
return tool_response
async def main():
url = "https://${GatewayEndpoint}/mcp"
token = "your_bearer_token_here"
tool_params = {
"name": "x_amz_bedrock_agentcore_search",
"arguments": {
"query": "How do I find order details?"
}
}
await execute_mcp(
url=url,
token=token,
tool_params=tool_params
)
if __name__ == "__main__":
asyncio.run(main())
- Strands MCP Client
-
from strands.tools.mcp.mcp_client import MCPClient
from mcp.client.streamable_http import streamablehttp_client
def create_streamable_http_transport(mcp_url: str, access_token: str):
return streamablehttp_client(mcp_url, headers={"Authorization": f"Bearer {access_token}"})
def get_full_tools_list(client):
"""
List tools w/ support for pagination
"""
more_tools = True
tools = []
pagination_token = None
while more_tools:
tmp_tools = client.list_tools_sync(pagination_token=pagination_token)
tools.extend(tmp_tools)
if tmp_tools.pagination_token is None:
more_tools = False
else:
more_tools = True
pagination_token = tmp_tools.pagination_token
return tools
def run_agent(mcp_url: str, access_token: str):
mcp_client = MCPClient(lambda: create_streamable_http_transport(mcp_url, access_token))
with mcp_client:
tools = get_full_tools_list(mcp_client)
print(f"Found the following tools: {[tool.tool_name for tool in tools]}")
result = mcp_client.call_tool_sync(
tool_use_id="tool-123", # A unique ID for the tool call
name="x_amz_bedrock_agentcore_search", # The name of the tool to invoke
arguments={"query": "find order information"} # A dictionary of arguments for the tool
)
print(result)
url = {gatewayUrl}
token = {AccessToken}
run_agent(url, token)
- LangGraph MCP Client
-
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
url = ""
headers = {}
def filter_search_tool(
):
mcp_client = MultiServerMCPClient(
{
"agent": {
"transport": "streamable_http",
"url": url,
"headers": headers,
}
}
)
tools = asyncio.run(mcp_client.get_tools())
builtin_search_tool = []
for tool in tools:
if tool.name == "x_amz_bedrock_agentcore_search":
builtin_search_tool.append(tool)
return builtin_search_tool
def execute_agent(
user_prompt,
model_id,
region,
tools
):
model = ChatBedrock(model_id=model_id, region_name=region)
agent = create_react_agent(model, filter_search_tool())
_response = asyncio.run(agent.ainvoke({
"messages": user_prompt
}))
_response = _response.get('messages', {})[1].content
print(
f"Invoke Langchain Agents Response"
f"Response - \n{_response}\n"
)
return _response