Function Calling 함수 호출
Function Calling(함수 호출)은 AI 모델이 질문에 답하려고 외부 프로그램의 기능(함수)을 써야 할 때, "어떤 함수를 어떤 값으로 실행해 달라"는 요청을 정해진 형식으로 만들어 내는 기능이다. 실제 실행은 모델이 아니라 그 모델을 쓰는 앱이 맡는다.
어떻게 작동하나
개발자는 먼저 모델에게 쓸 수 있는 함수 목록을 알려 준다. 함수마다 이름, 하는 일, 받아야 하는 값(인자)을 적은 설명서가 붙는다. 사용자가 질문하면 모델은 직접 답할지, 함수를 써야 할지 판단하고, 필요하면 함수 이름과 인자를 JSON 같은 정해진 형식으로 내놓는다. 앱이 이 요청대로 함수를 실제로 실행하고, 그 결과를 다시 모델에게 넘기면 모델이 결과를 바탕으로 최종 답변을 쓴다.
왜 중요한가
LLM은 학습한 내용만으로 글을 만들기 때문에 오늘 날씨, 회사 DB의 주문 내역처럼 바깥의 최신 정보를 스스로 알 수 없고 메일 발송 같은 행동도 할 수 없다. Function Calling은 모델을 이런 외부 시스템과 이어 주는 기본 통로다. 모델이 자유로운 문장 대신 정해진 형식으로 요청을 내기 때문에 프로그램이 그 요청을 안정적으로 읽고 처리할 수 있다. AI 에이전트가 여러 도구를 번갈아 쓰며 일을 처리하는 것도 이 기능 위에서 이뤄진다.
알아 둘 점
모델은 함수를 직접 실행하지 않고 실행 요청만 만든다는 점이 핵심이다. 모델이 없는 함수를 지어내거나 인자를 잘못 채울 수 있으므로, 앱 쪽에서 형식과 값을 검사해야 한다. 돈이 나가거나 데이터를 지우는 함수는 실행 전에 사람이 확인하게 하는 것이 안전하다. 업계에서는 '도구 사용(Tool Use)'이라는 말과 거의 같은 뜻으로 쓰이며, MCP는 이런 도구 연결 방식을 여러 서비스가 함께 쓰도록 표준화한 것이다.
예시
여행 앱에 들어간 AI 비서에게 "다음 주 토요일 부산 가는 기차 알려 줘"라고 물으면, 모델은 답을 지어내는 대신 '기차 시간표 조회' 함수를 출발지·도착지·날짜 값과 함께 호출하겠다는 요청을 만든다. 앱이 실제 예매 시스템에서 시간표를 가져와 모델에게 돌려주면, 모델이 이를 읽기 쉬운 문장으로 정리해 사용자에게 보여 준다. 주요 LLM API들이 이 기능을 기본으로 제공하고, 업무 자동화 챗봇이나 코딩 에이전트도 같은 방식으로 외부 기능을 부른다.