문제: 도구가 너무 많으면 AI가 비싸진다

AI 에이전트가 점점 똑똑해지면서 사용하는 도구도 많아지고 있습니다. 문제는 기존 방식대로라면 모든 도구 설명을 매번 AI 모델에 넣어야 한다는 것!

도구 100개 = 토큰 15만 개
도구 1000개 = 토큰 150만 개
💸 비용 폭증! ⏱️ 속도 저하!

해결책: 코드로 도구를 탐색하게 하자

Anthropic이 제안한 아이디어는 간단하면서도 혁신적입니다:

“도구 목록을 전부 주지 말고, 필요할 때 찾아서 쓰게 하자!”

마치 도서관에서 책을 찾듯이, AI가 파일 시스템을 탐색하며 필요한 도구만 불러와서 사용하는 방식입니다.

전통적 방식 (비효율)

# 모든 도구를 한꺼번에 로드
tools = [
    Tool("날씨_조회", "날씨 정보를 가져옵니다..."),
    Tool("이메일_전송", "이메일을 보냅니다..."),
    Tool("파일_읽기", "파일을 읽습니다..."),
    # ... 1000개 더
]
context = f"사용 가능한 도구: {tools}"  # 💣 토큰 폭탄!

코드 실행 방식 (효율적)

# 필요할 때만 찾아서 사용
import mcp_tools
available = mcp_tools.list()  # 간단한 목록만
weather = mcp_tools.load("날씨_조회")  # 필요한 것만 로드!

놀라운 결과: 98.7% 절감

Before: 150,000 토큰 💸💸💸
After:   2,000 토큰   💸

시간 절약: 98.7%
비용 절약: 98.7%

추가 혜택들

1. 데이터 필터링

# 대용량 데이터를 코드로 먼저 처리
data = fetch_huge_dataset()  # 100MB
filtered = [x for x in data if x.score > 0.9]  # 1MB
# AI에게는 필터링된 결과만 전달 ✨

2. 제어 흐름

# 반복문과 조건문을 자유롭게
for attempt in range(10):
    result = api.call()
    if result.success:
        break
    time.sleep(1)  # 재시도
# AI 왔다갔다 할 필요 없음!

3. 프라이버시

# 민감한 데이터는 실행 환경 안에만
user_password = os.getenv("PASSWORD")
result = authenticate(user_password)
# "성공" or "실패"만 AI에게 전달
# 실제 비밀번호는 모델에 전송 안 됨 🔒

4. 지속성

# 작업 진행 상황 저장
progress = {
    'completed': ['task1', 'task2'],
    'remaining': ['task3', 'task4']
}
with open('progress.json', 'w') as f:
    json.dump(progress, f)
# 나중에 이어서 할 수 있음

트레이드오프: 공짜 점심은 없다

물론 단점도 있습니다:

  • 보안: 샌드박스 환경 필수
  • 복잡성: 실행 환경 관리 필요
  • 모니터링: 리소스 사용량 추적 필요

하지만 98.7% 절감 효과를 생각하면… 🤔


실전 예시

기존 방식 (느리고 비쌈)

User: "GitHub에서 이슈 100개 분석해줘"

Agent: [모든 도구 설명 150,000 토큰 로드]
Agent: [API 호출 도구 선택]
Agent: [결과 분석]
Agent: [다시 모든 도구 설명 로드]
Agent: [요약 도구 선택]
...

총 토큰: 300,000+
시간: 30초+

코드 실행 방식 (빠르고 저렴)

User: "GitHub에서 이슈 100개 분석해줘"

Agent: [코드 작성]
import github_tools

issues = github_tools.fetch_issues(limit=100)
analysis = {
    'bugs': len([i for i in issues if 'bug' in i.labels]),
    'features': len([i for i in issues if 'feature' in i.labels]),
    'avg_comments': sum(i.comments for i in issues) / 100
}

Agent: "분석 완료: 버그 23개, 기능 요청 45개..."

 토큰: 2,000
시간: 3

누가 이걸 써야 하나?

추천:

  • 수십~수천 개의 API를 다루는 에이전트
  • 대용량 데이터 처리가 필요한 작업
  • 비용 최적화가 중요한 프로덕션 환경
  • 민감한 데이터를 다루는 시스템

비추천:

  • 도구가 10개 미만인 간단한 봇
  • 실시간 응답이 최우선인 서비스
  • 샌드박스 환경 구축이 어려운 경우

마무리

MCP(Model Context Protocol) 코드 실행은 AI 에이전트의 효율성을 혁신적으로 개선하는 방법입니다.

핵심 아이디어:

“모든 것을 기억하려 하지 말고, 필요할 때 찾아보게 하자”

마치 사람이 모든 책을 외우지 않고 도서관을 이용하듯이, AI도 필요한 도구만 그때그때 불러와 쓰면 됩니다.

98.7% 토큰 절감이라는 수치가 이 방법의 강력함을 말해줍니다.


🔗 원문: Code Execution with MCP - Anthropic

궁금한 점이나 의견이 있다면 댓글로 남겨주세요! 🚀