MCP를 통한 코드 실행: 더 효율적인 AI 에이전트 구축하기

Anthropic은 AI 에이전트가 Model Context Protocol (MCP)와 상호작용하는 방식에 있어, 직접적인 도구 호출(tool calling)에서 코드 실행으로의 전환을 제안했습니다. MCP 서버를 코드 API로 제시함으로써, 에이전트는 필요한 도구 정의만 로드하고 실행 환경 내에서 데이터를 처리할 수 있어 토큰 오버헤드와 지연 시간을 크게 줄일 수 있습니다.

MCP 에이전트의 토큰 소비 감소

AI 에이전트가 여러 MCP 서버에 걸쳐 수백 또는 수천 개의 도구를 사용하도록 확장됨에 따라, 토큰 사용과 관련하여 두 가지 주요 비효율성이 나타납니다.

1. 도구 정의 과부하

표준 MCP 클라이언트는 일반적으로 모든 도구 정의를 모델의 컨텍스트 창에 미리 로드합니다. 에이전트가 수천 개의 도구에 연결되어 있을 때, 모델은 사용자 요청을 처리하기 시작하기도 전에 수십만 개의 토큰을 처리해야 하며, 이는 비용과 응답 시간을 모두 증가시킵니다.

2. 중간 결과물 비대화

전통적인 도구 호출 루프에서는 모든 중간 결과가 모델의 컨텍스트를 통과해야 합니다. 예를 들어, 에이전트가 Salesforce에 업로드하기 위해 Google Drive에서 대용량 회의록을 다운로드하는 경우, 해당 회의록의 전체 텍스트가 첫 번째 호출 중에 컨텍스트 창에 로드되고, 두 번째 호출을 위해 다시 컨텍스트에 기록됩니다. 대용량 문서의 경우, 이는 수만 개의 토큰을 소비할 수 있으며 컨텍스트 창 제한을 초과하여 워크플로우 실패나 데이터 복사 오류를 유발할 수 있습니다.

MCP를 통한 코드 실행 구현

직접적인 도구 호출 대신, 에이전트는 코드를 작성함으로써 MCP 서버와 상호작용할 수 있습니다. 한 가지 구현 방식은 각 MCP 서버와 관련 도구가 파일(예: ./servers/google-drive/getDocument.ts)로 표현되는 파일 시스템 트리를 생성하는 것입니다.

이 아키텍처에서 에이전트는 파일 시스템을 탐색하여 도구를 발견합니다. 즉, 서버를 찾기 위해 디렉토리를 나열하고 도구 인터페이스를 이해하기 위해 특정 파일을 읽습니다. 이러한 "progressive disclosure" 방식은 에이전트가 특정 작업에 필요한 정의만 로드할 수 있게 합니다. Anthropic은 이를 통해 토큰 사용량을 150,000개에서 2,000개로 줄일 수 있으며, 이는 시간과 비용 측면에서 98.7%의 절감을 의미합니다.

코드 실행 방식의 주요 이점

컨텍스트 효율적인 데이터 처리

코드 실행을 통해 에이전트는 결과를 모델에 반환하기 전에 실행 환경 내에서 데이터를 필터링, 변환 및 집계할 수 있습니다. 예를 들어, 수동으로 필터링하기 위해 10,000행의 스프레드시트를 컨텍스트 창에 로드하는 대신, 에이전트는 "pending" 주문을 필터링하는 스크립트를 작성하여 검토를 위해 처음 5개 행만 로그로 남길 수 있으며, 이를 통해 처리되는 토큰 수를 획격적으로 줄일 수 있습니다.

고급 제어 흐름

표준 프로그래밍 구조인 루프, 조건문, 오류 처리를 사용하여 에이전트는 단일 단계에서 복잡한 로직을 실행할 수 있습니다. 이는 에이전트 루프를 통해 개별 도구 호출을 체인으로 연결하는 것보다 더 효율적입니다. 또한, 환경 내에서 조건부 트리를 실행하면 모델이 모든 if-statement를 순차적으로 평가할 필요가 없으므로 "time to first token" 지연 시간이 감소합니다.

개인정보 보호 및 보안

중간 결과는 기본적으로 실행 환경에 머무르므로, 모델이 볼 필요가 없는 민감한 데이터는 컨텍스트 창에 들어가지 않습니다. 또한, MCP 클라이언트는 데이터가 모델에 도달하기 전에 PII (개인 식별 정보)를 자동으로 토큰화(tokenization)할 수 있도록 구성할 수 있으며, 데이터가 다른 MCP 도구 호출로 전달될 때만 토token화 해제(untokenizing)를 수행합니다. 이를 통해 민감한 데이터가 모델이 원본 PII를 처리하지 않고도 소스에서 목적지로 흐를 수 있도록 보장합니다.

상태 유지 및 재사용 가능한 기술

파일 시스템 접근을 통해 에이전트는 중간 결과를 파일에 작성함으로써 작업 간에 상태를 유지할 수 있습니다. 에이전트 또한 성공적인 구현을 사례로 자신의 기술을 "skills" 폴더에 재사용 가능한 함수로 유지할 수 있습니다. SKILL.md 파일과 결합될 때, 이러한 함수들은 모델이 전문적인 작업을 위해 참조할 수 있는 구조화된 기술이 됩니다. 이를 통해 에이전트는 시간이 지면서 자신의 고차원적 기능의 능력을 확장해 나갈 수 있습니다.

운영 고려 사항

코드 실행이 상당한 효율성 이점을 제공하지만, 인프라 복잡성을 초래합니다. 에이전트가 생성한 코드를 실행하려면 보안 위험을 완화하기 위해 샌드박싱, 리소스 제한 및 모니터링을 기능으로 갖춘 안전한 실행 환경이 필요합니다합니다. 이러한 운영 오버헤드는 줄어든 토큰 비용과 낮은 지연 시간의 이점과 비교하여 신중히 고려되어야 합니다.

Sources

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch