githubEdit

Clip 3: Tool 이해하기

학습 목표

Tool을 공부하면서 딱 두 가지 의문을 해소합니다:

  1. 날씨 조회, 일 더하기 일 같은 예시 툴들이 왜 그렇게 동작하는지 이해

  2. 간단한 코드 형식만 입력했을 뿐인데, 어떻게 그걸 호출하는지 이해

Tool이 동작하는 원리

첫 번째 의문: 왜 그렇게 동작하는가?

Tool의 본질은 LLM이 직접 못 하는 작업(날씨 조회, 계산, 파일 읽기)을 외부 시스템에게 요청하는 메커니즘입니다.

LLM은 텍스트만 생성할 수 있기 때문에:

  • "현재 서울 날씨는?"이라는 질문에 답변을 만들어낼 수만 있음 (실제 날씨 모름)

  • "1 + 1 = ?"도 학습된 패턴으로 답변 (실제 계산 안 함)

Tool은 이런 한계를 극복합니다:

spinner

LLM이 하는 일: "이 질문은 get_weather 툴을 써야겠네!" (판단만) 시스템이 하는 일: 실제로 날씨 API 호출하고 결과 가져오기

두 번째 의문: 간단한 코드 형식만 입력했는데 어떻게 호출되는가?

핵심 비밀: Tool은 선언(어떤 툴인지 설명)과 실행(실제 코드)이 분리되어 있습니다.

1단계: Tool 선언 (LLM에게 알려주기)

이건 실제 코드가 아니라 설명서입니다. "이런 툴을 쓸 수 있어"라고 LLM에게 알려주는 것뿐입니다.

2단계: LLM이 판단

사용자가 "서울 날씨 알려줘"라고 물으면:

  • LLM이 tool_definition 목록을 보고 판단: "아, get_weather 써야겠네!"

  • LLM이 출력: {"tool": "get_weather", "arguments": {"location": "Seoul", "unit": "celsius"}}

LLM은 코드를 실행하지 않습니다. 단지 "이 툴을 이런 파라미터로 호출해줘"라고 요청만 합니다.

3단계: 시스템이 실제 코드 실행

4단계: 결과를 LLM에게 돌려주기

실전 예제: OpenAI Function Calling

위의 원리를 실제 코드로 보겠습니다.

MCP Tool: 같은 원리, 다른 구조

MCP Tool도 원리는 동일하지만, Tool을 별도 서버에서 관리한다는 차이가 있습니다.

OpenAI vs MCP 차이점

MCP Tool 간단 예제

핵심 차이: OpenAI는 클라이언트가 툴을 실행하지만, MCP는 서버가 실행합니다.

전체 흐름 다이어그램

spinner

핵심 요약

두 가지 의문 해소

1. 왜 그렇게 동작하는가?

  • LLM은 텍스트 생성만 가능 → 실제 행동(날씨 조회, 계산)은 못 함

  • Tool은 LLM의 "요청"을 시스템의 "실행"으로 연결하는 다리

  • LLM: 판단만 / 시스템: 실행

2. 어떻게 호출되는가?

  • Tool 정의 = 설명서 (실제 코드 아님)

  • LLM이 설명서 보고 "이 툴 써야겠다" 판단

  • 시스템이 실제 코드 실행하고 결과 전달

  • 선언(정의)과 실행(코드)이 분리됨

OpenAI vs MCP 차이

특징
OpenAI
MCP

툴 정의 위치

클라이언트

서버

툴 실행 위치

클라이언트

서버

재사용성

매번 정의

서버에 등록

참고 자료


강사 정보

  • 작성자: 정구봉

  • LinkedIn: https://www.linkedin.com/in/gb-jeong/

  • 이메일: bong@dio.so

강의 자료

  • 강의 자료: https://goobong.gitbook.io/fastcampus

  • Github: https://github.com/Koomook/fastcampus-ai-agent-vibecoding

  • FastCampus 강의 주소: https://fastcampus.co.kr/biz_online_vibeagent

Last updated