Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Úselo con marcos de agentes
Puede integrar el servidor OpenSearch MCP directamente en los marcos de agentes de Python, lo que permite a sus agentes autónomos acceder mediante programación OpenSearch como parte de un flujo de trabajo más amplio.
Strands Agents
Strands AgentsAWS_OPENSEARCH_SERVERLESStrueEstablézcalo en Al conectarse a una colección OpenSearch sin servidor; omítalo en el caso de un dominio administrado.
import os from strands import Agent from strands.tools.mcp import MCPClient from mcp import stdio_client, StdioServerParameters # For a managed domain: # OPENSEARCH_URL = https://<domain-endpoint>.<region>.es.amazonaws.com # # For an OpenSearch Serverless collection, also set: # AWS_OPENSEARCH_SERVERLESS = true # OPENSEARCH_URL = https://<collection-id>.<region>.aoss.amazonaws.com opensearch_client = MCPClient( lambda: stdio_client( StdioServerParameters( command="uvx", args=["opensearch-mcp-server-py"], env={ "OPENSEARCH_URL": os.environ["OPENSEARCH_URL"], "AWS_REGION": os.environ["AWS_REGION"], "AWS_IAM_ARN": os.environ["AWS_IAM_ARN"], # Set to "true" for OpenSearch Serverless, omit for managed domains "AWS_OPENSEARCH_SERVERLESS": os.environ.get("AWS_OPENSEARCH_SERVERLESS", "false"), }, ) ) ) with opensearch_client: agent = Agent(tools=opensearch_client.list_tools_sync()) response = agent("List all indexes and show the document count for each") print(response)
Strands utiliza Amazon Bedrock como proveedor de modelos predeterminado. Asegúrese de tener AWS las credenciales configuradas y de habilitar el acceso a modelos para Claude en su región. Para obtener más información, consulte la documentación del proveedor de Strands Bedrock
LangGraph
LangGraphlangchain-mcp-adapters para cargar las herramientas de OpenSearch MCP en un LangGraph ReAct agente respaldado por Amazon Bedrock. Al igual que con Strands, se configura AWS_OPENSEARCH_SERVERLESS en true cuando se conecta a una colección OpenSearch sin servidor.
import asyncio import os from langchain_aws import ChatBedrock from langchain_mcp_adapters.client import MultiServerMCPClient from langgraph.prebuilt import create_react_agent async def main(): async with MultiServerMCPClient( { "opensearch": { "command": "uvx", "args": ["opensearch-mcp-server-py"], "env": { # Managed domain: https://<domain-endpoint>.<region>.es.amazonaws.com # Serverless: https://<collection-id>.<region>.aoss.amazonaws.com "OPENSEARCH_URL": os.environ["OPENSEARCH_URL"], "AWS_REGION": os.environ["AWS_REGION"], "AWS_IAM_ARN": os.environ["AWS_IAM_ARN"], # Set to "true" for OpenSearch Serverless, omit for managed domains "AWS_OPENSEARCH_SERVERLESS": os.environ.get("AWS_OPENSEARCH_SERVERLESS", "false"), }, "transport": "stdio", } } ) as mcp_client: tools = mcp_client.get_tools() model = ChatBedrock( model_id="anthropic.claude-3-5-sonnet-20241022-v2:0", region_name=os.environ["AWS_REGION"], ) agent = create_react_agent(model, tools) result = await agent.ainvoke( {"messages": [{"role": "user", "content": "Check cluster health and list all indexes"}]} ) print(result["messages"][-1].content) asyncio.run(main())
Instale los paquetes obligatorios:
pip install langchain-aws langchain-mcp-adapters langgraph