기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
도구 검색
에이전트에서 도구를 검색하고 MCP 서버에 등록하는 방법에는 정적 정의, 동적 검색 및 검색 함수라는 세 가지가 있습니다.
정적 정의
먼저 에이전트 코드에서 사용 가능한 도구를 직접 정적으로 정의할 수 있습니다. 이 접근 방식에서는 MCP 클라이언트가 액세스하는 MCP 서버에서 제공하는 각 도구에 대해 원격 도구(Strands Agent SDK와 같은 프레임워크의 클라이언트 측 참조 객체)를 정의합니다. 다음 예제에서는 스트리밍 가능한 HTTP 전송을 사용합니다.
from mcp.client.streamable_http import streamablehttp_client from strands import Agent from strands.tools.mcp import MCPClient streamable_http_mcp_client = MCPClient( lambda: streamablehttp_client("https://mcp1:8000/mcp") ) reverse_text = RemoteTool( name="reverseText", client=streamable_http_mcp_client ) agent = Agent(tools=[reverse_text])
개별 도구 등록을 사용하면 LLM에서 사용할 수 있는 도구를 매우 선택적으로 선택할 수 있으므로 사용되는 컨텍스트 기간이 최소화됩니다. 단점은 사용 가능한 도구의 이름을 알아야 하며 MCP 서버에서 사용 가능한 도구가 변경될 경우 부서질 수 있다는 것입니다.
동적 검색
다음 접근 방식은 동적 검색을 사용하고 에이전트에 사용 가능한 모든 도구를 등록하는 것입니다. 이 접근 방식은 MCP 서버에 더 많은 도구가 추가될 때 컨텍스트를 선형으로 사용합니다. 다음은이 접근 방식의 예입니다.
from mcp.client.streamable_http import streamablehttp_client from strands import Agent from strands.tools.mcp import MCPClient streamable_http_mcp_client = MCPClient( lambda: streamablehttp_client("https://mcp1:8000/mcp") ) with streamable_http_mcp_client: tools = streamable_http_mcp_client.list_tools_sync() agent = Agent(tools=tools)
일반적인 도구 정의에서 약 250~500개의 토큰(이름, 설명 및 스키마 포함)을 사용하는 시나리오를 생각해 보세요. 20개의 도구를 등록하면 컨텍스트 창에 5,000~10,000개의 토큰이 사용됩니다. MCP 서버 수가 적고 도구 수를 제어할 수 있는 경우이 옵션을 구현하는 것이 가장 간단합니다. 그러나 도구 목록이 증가할 것으로 예상되는 경우 에이전트에서 자동 컨텍스트 관리 문제가 발생할 수 있습니다. 이 접근 방식의 다른 변형은 Strands Agents SDK가 제공하는list_tools같이를 호출할 때 도구 필터 파라미터를 사용하여 에이전트에 등록된 도구 수를 줄이는 것입니다.
검색 함수
세 번째 옵션은 검색 함수를 사용하여 런타임 중에 관련 도구를 찾는 것입니다. MCP 서버에서 사용 가능한 모든 도구를 나열한 다음 사용자 프롬프트를 기반으로 해당 도구에 대한 의미 체계 검색을 수행합니다. 그러면 결과 도구가 에이전트에 등록됩니다. Amazon Bedrock AgentCore Gateway는 이러한 종류의 솔루션을 더 쉽게 구현할 수 있는 네이티브 의미 체계 검색 기능을 제공합니다.
MCP 도구 검색 모범 사례
-
컨텍스트 기간 보존 - 컨텍스트 기간을 최대한 많이 절약하는 도구 검색 및 등록 접근 방식을 선택합니다.
-
도구 필터링 또는 의미 체계 검색 기능 사용 - LLM에 선택할 수 있는 범위가 축소된 도구 세트를 동적으로 제공하여 올바른 도구를 선택할 때 정확성과 효율성을 개선합니다. 도구 필터링은 도구 이름(정확한 일치 또는 패턴), 도구 설명(시맨틱 일치) 또는 도메인 또는 범주 태그에서 작동할 수 있습니다. 의미 체계 검색은 사용자 의도를 도구 설명과 일치시키는 데 특히 효과적입니다. 두 접근 방식 모두 컨텍스트 창 사용을 줄입니다.