View a markdown version of this page

Recherchez des outils dans votre AgentCore passerelle à l'aide d'une requête en langage naturel - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Recherchez des outils dans votre AgentCore passerelle à l'aide d'une requête en langage naturel

Si vous avez activé la recherche sémantique pour votre passerelle lorsque vous l'avez créée, vous pouvez appeler l'x_amz_bedrock_agentcore_searchoutil pour rechercher des outils dans votre passerelle à l'aide d'une requête en langage naturel. La recherche sémantique est particulièrement utile lorsque vous disposez de nombreux outils et que vous devez trouver ceux qui conviennent le mieux à votre cas d'utilisation. Pour savoir comment activer la recherche sémantique lors de la création d'une passerelle, consultez Créer une passerelle Amazon Bedrock AgentCore .

Pris en charge AWS Régions pour la recherche sémantique

La recherche sémantique est prise en charge dans les AWS régions suivantes :

Nom de la région Région

USA Est (Virginie du Nord)

us-east-1

USA Est (Ohio)

us-east-2

USA Ouest (Oregon)

us-west-2

Asie-Pacifique (Hyderabad)

ap-south-2

Asie-Pacifique (Mumbai)

ap-south-1

Asia Pacific (Seoul)

ap-northeast-2

Asie-Pacifique (Singapour)

ap-southeast-1

Asie-Pacifique (Sydney)

ap-southeast-2

Asia Pacific (Tokyo)

ap-northeast-1

Canada (Central)

ca-central-1

Europe (Francfort)

eu-central-1

Europe (Irlande)

eu-west-1

Europe (Londres)

eu-west-2

Europe (Milan)

eu-south-1

Europe (Paris)

eu-west-3

Europe (Espagne)

eu-south-2

Europe (Stockholm)

eu-north-1

Amérique du Sud (São Paulo)

sa-east-1

Pour rechercher un outil à l'aide de cet AgentCore outil, envoyez la requête POST suivante avec la tools/call méthode au point de terminaison MCP de la passerelle :

Exemple
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

Lors de la version2026-07-28, chaque demande contient l'MCP-Protocol-Versionen-tête, les en-têtes Mcp-Method et les en-têtes Mcp-Name des métadonnées de la demande, ainsi que les champs de _meta version dans le corps.

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": {} } } }
Note

La passerelle accepte uniquement les versions du protocole MCP répertoriées dans le supportedVersions champ de sa protocolConfiguration.mcp configuration. Pour utiliser la version2026-07-28, assurez-vous que votre passerelle l'supportedVersionsinclut. Vous pouvez modifier les versions prises en charge à l'aide de l'UpdateGatewayAPI.

Remplacez les valeurs suivantes :

  • ${GatewayEndpoint}— L'URL de la passerelle, telle que fournie dans la réponse de l'CreateGatewayAPI.

  • ${Authorization header}— Les informations d'autorisation fournies par le fournisseur d'identité lorsque vous configurez l'autorisation Configurez l'autorisation entrante pour votre passerelle entrante.

  • ${McpProtocolVersion}— La version du protocole MCP pour la demande, telle que2025-11-25. La version doit être prise en charge par votre passerelle.

  • ${RequestName}— Un nom pour la demande.

  • ${Query}— Une requête en langage naturel pour rechercher des outils.

La réponse renvoie une liste d'outils pertinents pour la requête.

Exemples de code pour la recherche d'outils

Pour voir des exemples d'utilisation de requêtes en langage naturel pour rechercher des outils dans la passerelle, sélectionnez l'une des méthodes suivantes :

Exemple
Python requests package (2025-11-25 and earlier)

Définissez l'MCP-Protocol-Versionen-tête sur une version prise en charge par votre passerelle.

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)

Dans la version2026-07-28, incluez les en-têtes Mcp-Method Mcp-Name et les métadonnées de demande et les champs de _meta version dans le corps. L'MCP-Protocol-Versionen-tête doit correspondre_meta.io.modelcontextprotocol/protocolVersion. Votre passerelle supportedVersions doit inclure2026-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