← AI 용어집

AI 용어집 · 기초 · 에이전트 · 언어 모델

Function Calling 함수 호출

Function Calling(함수 호출)은 AI 모델이 질문에 답하려고 외부 프로그램의 기능(함수)을 써야 할 때, "어떤 함수를 어떤 값으로 실행해 달라"는 요청을 정해진 형식으로 만들어 내는 기능이다. 실제 실행은 모델이 아니라 그 모델을 쓰는 앱이 맡는다.

쉽게 말하면 식당 손님(사용자)의 주문을 받은 웨이터(모델)가 직접 요리하지 않고, 주방에 정해진 양식의 주문서(함수 호출)를 넘긴 뒤 나온 요리를 손님에게 가져다주는 것과 비슷하다. 다만 웨이터가 주문서를 잘못 쓸 수 있으므로, 주방(앱)이 내용을 확인해야 한다는 점까지 비유에 담기지는 않는다.

어떻게 작동하나

개발자는 먼저 모델에게 쓸 수 있는 함수 목록을 알려 준다. 함수마다 이름, 하는 일, 받아야 하는 값(인자)을 적은 설명서가 붙는다. 사용자가 질문하면 모델은 직접 답할지, 함수를 써야 할지 판단하고, 필요하면 함수 이름과 인자를 JSON 같은 정해진 형식으로 내놓는다. 앱이 이 요청대로 함수를 실제로 실행하고, 그 결과를 다시 모델에게 넘기면 모델이 결과를 바탕으로 최종 답변을 쓴다.

Function Calling의 한 바퀴사용자 질문 → LLM; 함수 목록 → LLM(미리 알림); LLM → 호출 요청; 호출 요청 → 앱이 실행; 앱이 실행 → 외부 API·DB(조회); 앱이 실행 → LLM(결과); LLM → 최종 답변사용자 질문함수 목록이름·설명·인자LLM함수가 필요한지 판단호출 요청함수 이름 + 인자앱이 실행외부 API·DB최종 답변미리 알림조회결과
Function Calling의 한 바퀴 모델은 함수 호출 요청만 만들고, 실제 실행은 앱이 맡는다. 실행 결과가 다시 모델로 돌아가야 최종 답변이 나온다.

왜 중요한가

LLM은 학습한 내용만으로 글을 만들기 때문에 오늘 날씨, 회사 DB의 주문 내역처럼 바깥의 최신 정보를 스스로 알 수 없고 메일 발송 같은 행동도 할 수 없다. Function Calling은 모델을 이런 외부 시스템과 이어 주는 기본 통로다. 모델이 자유로운 문장 대신 정해진 형식으로 요청을 내기 때문에 프로그램이 그 요청을 안정적으로 읽고 처리할 수 있다. AI 에이전트가 여러 도구를 번갈아 쓰며 일을 처리하는 것도 이 기능 위에서 이뤄진다.

알아 둘 점

모델은 함수를 직접 실행하지 않고 실행 요청만 만든다는 점이 핵심이다. 모델이 없는 함수를 지어내거나 인자를 잘못 채울 수 있으므로, 앱 쪽에서 형식과 값을 검사해야 한다. 돈이 나가거나 데이터를 지우는 함수는 실행 전에 사람이 확인하게 하는 것이 안전하다. 업계에서는 '도구 사용(Tool Use)'이라는 말과 거의 같은 뜻으로 쓰이며, MCP는 이런 도구 연결 방식을 여러 서비스가 함께 쓰도록 표준화한 것이다.

예시

여행 앱에 들어간 AI 비서에게 "다음 주 토요일 부산 가는 기차 알려 줘"라고 물으면, 모델은 답을 지어내는 대신 '기차 시간표 조회' 함수를 출발지·도착지·날짜 값과 함께 호출하겠다는 요청을 만든다. 앱이 실제 예매 시스템에서 시간표를 가져와 모델에게 돌려주면, 모델이 이를 읽기 쉬운 문장으로 정리해 사용자에게 보여 준다. 주요 LLM API들이 이 기능을 기본으로 제공하고, 업무 자동화 챗봇이나 코딩 에이전트도 같은 방식으로 외부 기능을 부른다.

함께 보면 좋은 용어