

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
<a name="mcp-server-configure-frameworks"></a>

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
<a name="mcp-server-strands"></a>

[Strands Agents](https://strandsagents.com) adalah SDK agen AWS-native dengan dukungan MCP bawaan dan Amazon Bedrock sebagai penyedia model default. Contoh berikut menghubungkan agen Strands ke domain OpenSearch Service atau koleksi OpenSearch Tanpa Server dengan menetapkan variabel lingkungan yang sesuai. Setel `AWS_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](https://strandsagents.com/docs/user-guide/concepts/model-providers/amazon-bedrock/).

## LangGraph
<a name="mcp-server-langgraph"></a>

[LangGraph](https://github.com/langchain-ai/langgraph)adalah kerangka kerja orkestrasi tingkat rendah untuk membangun agen stateful. Contoh berikut digunakan `langchain-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
```