Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan dengan kerangka kerja agen
Anda dapat mengintegrasikan server OpenSearch MCP langsung ke kerangka kerja agen Python, memberikan agen otonom Anda akses terprogram sebagai bagian dari alur kerja yang OpenSearch lebih besar.
Agen Helai
Strands AgentsAWS_OPENSEARCH_SERVERLESS ke true saat menghubungkan ke koleksi OpenSearch Tanpa Server; hilangkan untuk domain terkelola.
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 menggunakan Amazon Bedrock sebagai penyedia model defaultnya. Pastikan Anda memiliki AWS kredensil yang dikonfigurasi dan akses model diaktifkan untuk Claude di wilayah Anda. Untuk detailnya, lihat dokumentasi penyedia Strands Bedrock
LangGraph
LangGraphlangchain-mcp-adapters untuk memuat alat OpenSearch MCP ke LangGraph ReAct agen yang didukung oleh Amazon Bedrock. Seperti halnya Strands, atur AWS_OPENSEARCH_SERVERLESS ke true saat menghubungkan ke koleksi OpenSearch Tanpa Server.
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())
Instal paket yang diperlukan:
pip install langchain-aws langchain-mcp-adapters langgraph