🔧

Function Calling (Tool Use)

LLM이 외부 도구를 호출하여 실제 작업 수행

Function Calling은 LLM이 단순히 텍스트를 생성하는 것을 넘어, 외부 도구를 호출할 수 있게 하는 기능입니다. 개발자가 사용 가능한 함수의 이름, 설명, 파라미터 스키마(JSON Schema)를 모델에 제공하면, 모델이 사용자의 요청을 분석하여 적절한 함수와 인자를 JSON으로 출력합니다. 이 JSON을 파싱하여 실제 함수를 실행하고, 결과를 다시 모델에 전달하면 최종 응답을 생성합니다. 날씨 조회, 주문 처리, DB 쿼리, 코드 실행 등 "LLM이 할 수 없는 일"을 가능하게 만들어 AI Agent의 기반이 됩니다.

핵심 개념

1

개발자가 사용 가능한 함수 목록과 JSON Schema를 모델에 제공

2

사용자가 자연어로 요청 ("서울 날씨 알려줘")

3

LLM이 요청을 분석하고 적절한 함수와 인자를 JSON으로 출력 ({"name": "get_weather", "arguments": {"city": "seoul"}})

4

애플리케이션이 JSON을 파싱하여 실제 함수/API 실행

5

실행 결과를 대화 컨텍스트에 추가하여 모델에 전달

6

LLM이 결과를 해석하여 사용자에게 자연어 응답 생성

장점

  • LLM의 한계(실시간 데이터, 계산 등)를 도구로 보완
  • 구조화된 출력으로 파싱 용이
  • 기존 API/시스템과 통합 가능
  • Agent 워크플로우의 기반

단점

  • 함수 스키마 설계 필요
  • 잘못된 함수 호출/인자 가능
  • 보안 — 민감한 함수의 무단 호출 방지 필요
  • Multi-turn 도구 호출 시 복잡도 증가

사용 사례

ChatGPT Plugins / GPT Actions Claude Tool Use AI 챗봇의 DB 조회/주문 처리 AI 코딩 어시스턴트의 파일 읽기/쓰기 Multi-tool Agent (여러 도구 연쇄 호출)