한 줄 정의

Function Calling은 모델이 자연어 답변 대신 함수 이름과 인자를 갖춘 호출 요청을 내보내는 방식이야. 그래서 이 말은 글을 더 그럴듯하게 쓰는 기술보다, 바깥 시스템을 연결하는 실행 인터페이스를 뜻한다고 보면 돼.

어떻게 작동하나

개발자는 먼저 어떤 도구를 쓸 수 있는지와 각 도구가 받는 입력 형식을 스키마로 알려 줘. 그러면 모델은 바로 답할지, 아니면 특정 도구를 호출할지 고른 뒤 구조화된 요청을 만들어. 그다음 실제 실행은 앱이나 서버가 맡아. 예를 들어 날씨를 묻는 요청이면 모델이 weather 호출과 도시 이름 같은 인자를 만들고, 서버가 그 호출을 실행한 뒤 결과를 다시 모델에 넣어서 최종 답변을 완성하는 식이야.

왜 중요한가

실무에서는 검색, 결제, 사내 API 조회, 파일 수정처럼 텍스트만으로 끝나지 않는 일을 붙일 때 이 구조가 필요해. 그래서 에이전트나 자동화를 만들 때 진짜 난점은 모델의 문장력보다 도구 스키마, 권한, 실패 처리, 재시도 설계에 더 많이 걸려. 이걸 알고 있으면 기사에서 모델이 스스로 행동한다는 표현이 나와도 안쪽에서 뭐가 돌아가는지 덜 헷갈려. 어디까지가 모델 책임이고 어디부터가 애플리케이션 책임인지 읽어내는 기준이 생겨.

주의해서 볼 점

Function Calling을 붙였다고 해서 모델이 외부 세계를 자동으로 이해하는 건 아니야. 도구 설명이 모호하거나 인자 스키마가 헐거우면 엉뚱한 호출을 만들 수 있고, 실행 결과가 틀리면 최종 답도 같이 흔들려. 또 이름이 비슷하다고 항상 같은 범위를 뜻하는 것도 아니야. 어떤 서비스는 function calling, 어떤 서비스는 tool use나 tool calling이라고 부르지만, 단순 JSON 출력만 있는 경우는 실제 도구 실행 루프까지 포함하지 않을 수 있어서 구분해서 봐야 해.

관련 용어

  • MCP는 모델이 여러 도구와 리소스를 만나는 연결 규약에 더 가까워. Function Calling은 그 안에서 실제 호출 요청을 어떤 형식으로 주고받을지에 더 가깝다고 보면 돼.
  • OpenAI API는 function calling을 모델 출력과 도구 실행 루프로 다루는 대표 사례야. 여기서는 모델이 tool_calls를 만들고, 앱이 그 호출을 실행한 뒤 결과를 다시 넘겨.
  • Anthropic API는 비슷한 개념을 tool_usetool_result라는 흐름으로 설명해. 특히 도구가 앱에서 도는지, 제공사 서버에서 도는지 실행 위치를 더 분명하게 나눠.
  • Gemini API도 함수 호출 계열 기능을 제공하지만 세부 스키마와 응답 형식은 다를 수 있어. 그래서 공급자 이름만 보고 전부 같은 방식이라고 넘기면 놓치는 게 생겨.