View a markdown version of this page

Da utilizzare con i framework degli agenti - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Da utilizzare con i framework degli agenti

Puoi integrare il server OpenSearch MCP direttamente nei framework di agenti Python, dando ai tuoi agenti autonomi l'accesso programmatico come parte di un flusso di lavoro più OpenSearch ampio.

Agenti Strands

Strands Agents è un SDK per agenti AWS nativi con supporto MCP integrato e Amazon Bedrock come provider di modelli predefinito. L'esempio seguente collega un agente Strands a un dominio di OpenSearch servizio o a una raccolta OpenSearch Serverless impostando le variabili di ambiente appropriate. Impostato su AWS_OPENSEARCH_SERVERLESS true quando ci si connette a una raccolta OpenSearch Serverless; omettilo per un dominio gestito.

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 utilizza Amazon Bedrock come fornitore di modelli predefinito. Assicurati di avere AWS le credenziali configurate e l'accesso al modello abilitato per Claude nella tua regione. Per i dettagli, consulta la documentazione del provider Strands Bedrock.

LangGraph

LangGraphè un framework di orchestrazione di basso livello per la creazione di agenti stateful. L'esempio seguente utilizza langchain-mcp-adapters per caricare gli strumenti OpenSearch MCP in un LangGraph ReAct agente supportato da Amazon Bedrock. Come con Strands, imposta su true quando ti connetti AWS_OPENSEARCH_SERVERLESS a una OpenSearch raccolta Serverless.

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())

Installa i pacchetti richiesti:

pip install langchain-aws langchain-mcp-adapters langgraph