대규모 언어 모델(LLM)을 활용해 다양한 외부 도구를 연결해보면 곧 마주하게 되는 문제가 있다. 사용할 수 있는 도구는 많지만, 모델이 어떤 도구를 언제 선택해야 할지 몰라 헤매게 되는 것이다. 결과적으로 모델 성능은 떨어지고, 프롬프트는 길어지며, 처리 속도까지 느려진다.
이 글에서는 이 문제를 해결하기 위한 프레임워크, RAG-MCP를 소개한다. 도구 설명을 한꺼번에 프롬프트에 밀어 넣는 방식이 아닌, 사용자의 질의에 맞는 도구만 검색해서 LLM에 제공하는 방식으로 작동하며, 정확도와 효율성을 모두 높일 수 있다.
프롬프트 블로트를 줄이고 도구 선택 정확도를 높이는 새로운 방법, RAG-MCP의 개념, 작동 방식, 실험 결과, 기대 효과까지 하나하나 자세히 살펴본다.
프롬프트 블로트(Prompt Bloat)란 무엇인가?
LLM이 수십 개, 수백 개의 외부 도구를 사용할 수 있게 되면서, 새로운 문제가 생겼다. 모델이 어떤 도구를 써야 할지 선택해야 하다 보니, 기존 방식은 모든 도구의 설명을 프롬프트에 포함시키는 방식을 사용했다.
하지만 도구 수가 많아질수록 프롬프트의 길이는 걷잡을 수 없이 늘어나고, 이로 인해 다음과 같은 문제가 발생한다.
- 모델이 적절한 도구를 선택하지 못함
- 불필요한 계산 비용 증가
- 성능 저하와 오류 발생
이 현상을 'Prompt Bloat'라고 부르며, LLM이 확장 가능한 툴 통합을 하기 어렵게 만드는 주요 원인이다.
기존 방식의 한계
Prompt Bloat를 해결하기 위해 다양한 시도들이 있었다. 대표적으로 두 가지 접근 방식이 있다.
- Blank Conditioning: 모든 도구 설명을 프롬프트에 포함시킨다. 선택 범위는 넓지만, 프롬프트가 너무 길어져 성능 저하가 심각하다.
- Actual Match: 간단한 키워드 매칭으로 관련 도구만 필터링한다. 비교적 효율적이지만, 의미론적으로 정확한 도구 선택이 어렵다.
이러한 방식들은 도구 수가 적을 때는 괜찮지만, 수십 개 이상일 경우 정확도와 효율성 모두에서 한계를 드러낸다.
RAG-MCP 프레임워크란?
RAG-MCP는 검색 증강 생성(Retrieval-Augmented Generation, RAG) 패러다임을 기반으로, LLM의 도구 선택 과정을 최적화하는 프레임워크다.
핵심 아이디어는 간단하다.
"모든 도구 설명을 한 번에 보여주지 말고, 사용자 쿼리에 가장 관련 있는 도구만 검색해서 보여주자."
이 과정을 통해 프롬프트 크기를 줄이고, 모델이 더 신중하게 도구를 선택하고 사용할 수 있도록 돕는다.
RAG-MCP의 작동 방식
RAG-MCP는 네 단계로 작동한다.
- 외부 벡터 인덱스 구축
모든 MCP 도구의 설명, 스키마, 사용 예시 등을 벡터 형태로 외부 인덱스에 저장한다. - 검색(Retrieval)
사용자의 쿼리를 Qwen 같은 경량 LLM이 인코딩하고, 인덱스에서 의미론적으로 가장 가까운 도구들을 찾아낸다. - 검증(Validation) (선택 사항)
검색된 도구에 대해 예시 쿼리를 테스트하여 정상적으로 동작하는지 검증한다. - 호출(Invocation)
최종 선택된 도구 설명과 파라미터만 LLM에게 전달되며, 이에 따라 작업을 수행한다.
이렇게 하면 수백 개의 도구 중 단 하나 또는 몇 개만 선택되어 프롬프트에 포함되므로 효율성이 극대화된다.
실험 결과로 보는 성능 비교
RAG-MCP의 성능은 MCP Stress Test와 MCPBench의 web search 데이터셋을 통해 평가되었다.
- 정확도(Accuracy)
- RAG-MCP: 43.13%
- Blank: 13.62%
- Actual Match: 18.20%
- 평균 프롬프트 토큰 수
- RAG-MCP: 1,084
- Blank: 2,133.84
- Actual Match: 1,646.00
- 평균 결과 토큰 수
- RAG-MCP: 78.14
- Blank: 162.25
- Actual Match: 23.60
RAG-MCP는 정확도에서 기존 방식 대비 2배 이상 우수했고, 프롬프트 길이도 절반 이하로 줄였다. 결과 토큰 수는 다소 많지만, 이는 더 신중한 추론을 반영한다는 해석이 가능하다.
RAG-MCP가 가져올 변화
RAG-MCP는 단순히 프롬프트 최적화만을 위한 프레임워크가 아니다. 이는 LLM 기반 시스템에서 도구 사용 방식의 근본적인 변화를 가져온다.
- 선택 정확도 향상
관련 없는 도구를 제거해 모델이 혼동하지 않게 한다. - 프롬프트 최적화
불필요한 정보 입력 없이 효율적으로 도구를 호출할 수 있다. - 확장성
도구 수가 늘어나도 벡터 인덱스만 업데이트하면 되며, LLM을 재학습할 필요가 없다. - 리소스 절약
필요 도구만 인스턴스화하므로 자원 낭비를 줄일 수 있다. - 대화형 시스템 적합
다중 턴 대화에서도 동적으로 도구를 재검색할 수 있어 유연하다.
RAG-MCP가 열어줄 미래
RAG-MCP는 도구 중심의 LLM 아키텍처가 마주한 현실적 문제들을 해결하는 데 매우 효과적인 프레임워크다.
수많은 도구를 단순히 연결하는 것만으로는 충분하지 않다. 어떤 도구를, 언제, 어떻게 쓸 것인지에 대한 결정이 핵심인데, RAG-MCP는 이 과정을 검색과 검증을 통해 현실적이고 신뢰성 있게 자동화한다.
향후 이 프레임워크는 대규모 환경에서도 계층적 검색, 다중 도구 워크플로우, 실제 서비스 배포까지 확장될 수 있으며, LLM 기반 도구 활용의 새로운 기준점이 될 가능성이 크다.
https://arxiv.org/abs/2505.03275
RAG-MCP: Mitigating Prompt Bloat in LLM Tool Selection via Retrieval-Augmented Generation
Large language models (LLMs) struggle to effectively utilize a growing number of external tools, such as those defined by the Model Context Protocol (MCP)\cite{IntroducingMCP}, due to prompt bloat and selection complexity. We introduce RAG-MCP, a Retrieval
arxiv.org
'인공지능' 카테고리의 다른 글
로컬에서도 이미지 인식이 가능하다? Llama.cpp의 멀티모달 기능 지원 시작 (0) | 2025.05.11 |
---|---|
자연어로 Kubernetes를 다룬다고? kubectl-ai로 명령어 스트레스를 줄이자 (0) | 2025.05.11 |
영상 이해의 경계를 확장하다: Gemini 2.5가 바꾼 비디오 AI의 미래 (0) | 2025.05.11 |
AI 에이전트를 지키는 보안 방패, Meta의 LlamaFirewall 공개 (0) | 2025.05.11 |
버그를 ‘의도적으로’ 만드는 이유? SWE-smith가 바꿀 소프트웨어 데이터셋의 미래 (0) | 2025.05.10 |