기초 이론 편 · 4부 AI는 어떻게 자료를 읽고 도구를 쓸까? — 4.3
도구 호출과 MCP — 글만 쓰는 모델이 일을 하는 법
모델은 글을 쓰는 것밖에 못 합니다. 대신 "이 도구를 이렇게 써줘"라는 글을 쓰면, 바깥 프로그램이 실행해줍니다.
요즘 AI는 날씨를 찾아보고, 메일을 보내고, 캘린더에 일정을 넣기도 합니다. 그런데 지금까지 본 대로라면 LLM이 하는 일은 다음 토큰 맞히기, 즉 글을 쓰는 것뿐입니다. 글만 쓰는 모델이 어떻게 메일을 보낼까요?
답은 간단합니다. 모델은 여전히 글만 씁니다. 다만 정해진 형식으로 “이 도구를 이렇게 써줘” 라는 글을 쓰고, 그 글을 읽은 바깥 프로그램이 실제로 실행합니다. 이걸 도구 호출(tool calling) 이라고 합니다.
"다음"을 눌러 한 단계씩 진행해보세요.
- 나
내일 서울에 비 와?질문이 들어와요. 모델은 내일 날씨를 몰라요. 학습할 때 본 적 없는 미래 정보니까요.
- 모델
{"도구": "날씨_조회", "도시": "서울", "날짜": "내일"}모델은 대답 대신, 정해진 형식에 맞춰 "이 도구를 이렇게 써줘"라는 글을 써요. 어떤 도구가 있는지는 컨텍스트에 미리 적혀 있어요.
- 프로그램
날씨_조회(서울, 내일) 실행 → {"강수확률": 70}모델 바깥의 프로그램이 이 글을 읽고, 실제로 날씨 서비스를 조회해요. 실행은 모델이 아니라 프로그램이 해요.
- 프로그램
[도구 결과] 강수확률 70%결과를 대화에 이어 붙여서, 모델에게 다시 읽혀요. 4.2의 RAG와 같은 원리예요.
- 모델
내일 서울은 비 올 확률이 70%래요. 우산 챙기세요!모델은 결과를 읽고 평소처럼 다음 토큰을 이어 써서 대답해요.
날씨 값과 도구 형식은 설명용 예시예요. 실제 형식은 서비스마다 달라요.
순서 정리
- 서비스는 대화를 시작할 때 컨텍스트에 쓸 수 있는 도구 목록을 적어줍니다. “날씨_조회: 도시와 날짜를 주면 날씨를 알려줌” 같은 설명입니다.
- 모델은 필요하면 대답 대신 도구를 부르는 글을 씁니다. 이것도 3.6처럼 학습으로 배운 능력입니다.
- 프로그램이 그 글을 읽고 실제로 실행합니다.
- 결과를 대화에 이어 붙이고, 모델이 그걸 읽고 대답합니다.
모델 입장에서는 2단계도 4단계도 그냥 “다음 토큰 맞히기”입니다. 실행은 늘 모델 바깥에서 일어납니다. 그래서 어떤 도구를 줄지, 실행 전에 사람에게 확인받을지는 모델이 아니라 그 모델을 쓰는 프로그램이 정합니다.
MCP: 도구를 꽂는 공통 규격
도구 호출이 유용해지자 문제가 생겼습니다. AI 앱마다 도구를 연결하는 방식이 달라서, 같은 도구(예: 구글 드라이브 연결)를 앱마다 따로 만들어야 했습니다.
MCP(Model Context Protocol) 는 이걸 해결하려는 공통 규격입니다. 2024년 11월 Anthropic이 공개했습니다. 휴대폰 충전기의 USB-C처럼, 도구를 MCP 규격에 맞춰 한 번 만들어두면 MCP를 지원하는 여러 AI 앱에서 꽂아 쓸 수 있습니다.
- MCP 서버: 도구를 제공하는 쪽. “파일 읽기”, “일정 조회” 같은 기능을 MCP 규격으로 내놓습니다.
- MCP 클라이언트: AI 앱 쪽. 서버에 연결해서 어떤 도구가 있는지 받아오고, 모델이 부르면 대신 실행을 요청합니다.
MCP도 결국 위의 1~4단계를 모두가 같은 방식으로 하자는 약속입니다. 모델이 글로 부르고, 바깥이 실행하는 원리는 똑같습니다.
더 깊게 · 모델은 도구를 어떻게 '정확한 형식'으로 부를까
모델은 확률로 다음 토큰을 뽑는 기계라서, 형식을 살짝 틀릴 수도 있습니다. 괄호를 빠뜨리거나 없는 도구 이름을 쓰는 식입니다. 그래서 서비스들은 도구 호출 예시로 모델을 따로 학습시키고, 뽑을 때 형식에 맞는 토큰만 고르도록 제한하기도 합니다.
이 “글로 도구를 부르는 방식” 자체가 느리고 비싸다고 보고, 아예 글을 쓰지 않고 선택지를 바로 고르는 모델도 나왔습니다. 다음 장에서 보겠습니다.
정리
- 모델은 글만 씁니다. 도구를 부르는 글을 쓰면 바깥 프로그램이 실행하고, 결과를 다시 읽혀줍니다.
- 어떤 도구를 줄지, 실행 전에 확인할지는 모델이 아니라 프로그램(서비스) 이 정합니다.
- MCP는 도구를 연결하는 공통 규격입니다. 한 번 만들면 여러 AI 앱에서 쓸 수 있습니다.
이 장을 복사합니다. ChatGPT나 Claude 같은 AI에 붙여넣고 그대로 보내면 AI가 다 읽었다고 답합니다. 그다음 궁금한 걸 물어보세요.