도구 50개를 한 번에 넣지 않고 골라 쓰게 하는 Go 도구 라우터

로컬 Llama 같은 에 도구 50개를 한꺼번에 넣으면 문맥이 커져 느려지고 판단도 흐려질 수 있다. MCP 생태계는 주로 실행 환경에 치우쳐 있어서, 가 여러 와 연결하려면 무거운 실행 환경을 붙이거나 하위 프로세스를 띄우는 방식이 필요해지기 쉽다. 이를 줄이기 위해 Go로 만든 가벼운 도구 게이트웨이와 라우팅 엔진이 제시됐다.

이 엔진은 로 여러 서버에 연결하고, 검색 색인을 만든 뒤, 사용자의 요청에 맞는 도구 후보를 실시간으로 고른다. 사용자가 “날씨를 알려주고 점심도 예약해줘”처럼 여러 일을 한 문장에 말하면, 정규식과 숫자 확인으로 문장을 나누고 Go의 고루틴으로 동시에 라우팅한다. 처럼 같은 요청 조각이 빠르게 반복될 때는 singleflight로 같은 요청을 하나로 묶어, 를 불필요하게 여러 번 때리지 않게 한다.

패키지 사용 방식은 빌더 패턴으로 만들었고, 개발 도구의 자동완성이 설정 과정을 안내하도록 설계됐다.

핵심 포인트

  • 에 많은 도구를 한꺼번에 넣으면 문맥이 커져 느려지고 성능이 떨어질 수 있다.
  • 에서 여러 를 가볍게 연결하기 위한 도구 게이트웨이와 라우팅 엔진이 제시됐다.
  • 요청을 검색 색인으로 매칭해 필요한 도구 후보만 실시간으로 고르는 구조다.
  • 복합 요청은 여러 조각으로 나눠 고루틴으로 동시에 처리한다.
  • singleflight로 같은 요청을 합쳐 불필요한 호출을 줄인다.
원문 보기