프롬프트·AI 활용

Function Calling

펑션 콜링

AI 활용 분야에서 OpenAI가 2023년 6월에 공개한 API 기능으로, LLM이 답변 도중 미리 등록된 외부 함수를 JSON 인자로 호출하도록 만들어 도구·DB·실시간 데이터와 연결할 수 있게 한 방식입니다.

쉬운 풀이

Function Calling은 LLM이 답변을 만들다가 "이 부분은 외부 함수에 맡겨야겠다"고 판단하면, 함수 이름과 인자(어떤 값을 넣을지)를 깔끔한 JSON으로 정리해 돌려주는 방식이에요. 조별 과제로 비유하면, 발표자가 직접 통계를 계산하지 않고 "엑셀 담당자에게 2025년 매출 합계를 부탁한다"고 쪽지에 적어 넘기는 셈이에요. 모델은 쪽지를 쓰는 사람이고 실제 계산은 코드가 합니다. 챗봇이 실시간 날씨·환율·재고 조회를 할 수 있게 만드는 거의 모든 AI 제품의 기본 부품이라, 한 번은 짚고 가야 하는 개념입니다.

한 줄 비유
견적 요청서를 받아 "어느 양식에 무엇을 채울지"만 적어 넘기는 신입의 결재 초안입니다.
활용 예시
Case 1

OpenAI 공식 가이드 — get_weather 함수의 JSON 스키마 정의

OpenAI 공식 가이드는 도구를 JSON 스키마로 선언하고 응답에서 tool_calls를 받아 처리하는 패턴을 표준으로 제시합니다 [1]. 예를 들어 get_weather라는 함수에 location(문자열)과 units(celsius·fahrenheit enum)를 정의해 두면, 모델은 "서울 날씨 알려줘"라는 자연어를 {"name":"get_weather","arguments":{"location":"Seoul, KR","units":"celsius"}} 형태로 변환해 돌려줍니다 [1]. 2024년 8월 도입된 Structured Outputs의 strict: true 옵션을 켜면 모델이 반환하는 인자 JSON이 정의한 스키마와 100% 일치한다고 공식 문서는 명시합니다 [1].

Case 2

Klarna — 230만 채팅을 도구 호출로 자동화

글로벌 결제사 Klarna는 2024년 2월 OpenAI와 함께 만든 AI 어시스턴트가 출시 한 달 만에 230만 건의 채팅을 처리해 풀타임 상담원 700명분 업무를 대체했다고 공식 발표했습니다 [5]. 환불 처리, 주문 변경, 분쟁 확인 같은 동작이 계정·거래 API를 함수로 묶은 위에서 동작했고, 평균 해결 시간은 11분에서 2분 미만으로 줄었습니다 [5]. Klarna는 이후 일부 복잡 영역을 사람 상담으로 되돌렸지만, 정형 트랜잭션은 함수 호출 기반 자동화가 유지되고 있습니다 [5].

Case 3

Stripe Agent Toolkit — 결제 API를 도구로 노출

Stripe는 자체 결제 API를 LLM이 함수 호출로 다룰 수 있게 묶은 Agent Toolkit을 공식 공개했습니다 [6]. OpenAI Agents SDK, Vercel AI SDK, LangChain, CrewAI 4개 프레임워크를 지원하고, create_payment_link·create_invoice 같은 함수가 미리 정의되어 있어 "신규 고객에게 100달러 결제 링크 만들어 줘" 한 줄로 결제 링크가 생성됩니다 [6]. 보안을 위해 Restricted API Key(rk_*)로 권한을 제한하는 운영 방식을 공식 문서가 권고합니다 [6].

Case 4

UC Berkeley BFCL — 함수 호출 능력의 표준 벤치마크

UC Berkeley Gorilla 팀이 만든 Berkeley Function-Calling Leaderboard(BFCL)는 2,000개 이상의 질문-함수-정답 쌍으로 모델의 함수 호출 정확도를 평가합니다 [4]. 단일 호출, 병렬 호출, 다중 턴 같은 시나리오를 AST 비교로 채점하고, 환각된 함수명·인자를 잡아냅니다 [4]. BFCL은 2025년 ICML에 채택되며 사실상 업계 표준 평가가 되었고, 상위권 모델은 전체 정확도 80%대를 보고하고 있습니다 [4].

참고사항
  1. OpenAI 또는 Anthropic 공식 가이드의 get_weather 예제 JSON 스키마를 그대로 복사합니다 [1][2]
  2. 사내에서 자주 호출하는 내부 API 한 개를 골라 같은 구조의 스키마로 작성합니다
  3. Playground에서 자연어 요청을 넣어 모델이 어떤 인자를 채워 보내는지 확인합니다
  4. 실패 케이스(인자 누락·잘못된 enum)를 모아 함수 description을 보완합니다
  5. strict 모드(OpenAI) 또는 disable_parallel_tool_use 옵션(Anthropic)을 켜서 결과 안정성을 비교합니다 [1][2]

공식 문서가 한계를 직접 명시합니다. OpenAI는 strict 모드를 켜지 않으면 인자 형식이 "best effort"라고 안내하며, JSON 스키마 일부 기능은 strict에서 지원되지 않는다고 적습니다 [1]. UC Berkeley BFCL 결과는 함수가 수십 개를 넘으면 잘못된 함수 선택과 인자 환각이 늘어난다고 보고합니다 [4]. Klarna도 2025년에 복잡·감정형 문의에서 정확도가 떨어져 일부 영역을 사람 상담으로 되돌렸다고 공개했습니다 [5]. 회사마다 규약이 조금씩 달라 같은 도구를 OpenAI·Anthropic·Gemini용으로 세 번 정의해야 하는 운영 부담도 흔한 지적입니다 [9].

진화는 세 갈래입니다.

  1. 표준화입니다. Anthropic은 2024년 11월 25일 모델 컨텍스트 프로토콜(Model Context Protocol, MCP)을 공개해 서로 다른 회사의 모델·도구가 같은 규약으로 붙도록 한 공개 표준을 제시했고, OpenAI와 Google도 2025년 초까지 MCP 지원을 공식 발표하며 함수 호출 규약을 통일하는 어댑터 역할로 빠르게 자리 잡았습니다 [9].
  2. 호출 단위의 고도화입니다. Anthropic은 2025년 advanced tool use 업데이트로 programmatic tool calling과 도구 검색(tool_search)을 도입해, 수백 개 함수 중에서 의미 검색으로 후보를 좁히는 패턴을 제안했고, OpenAI는 Structured Outputs로 인자 일치율을 끌어올리는 방향으로 갈라졌습니다 [1][2].
  3. 평가 기반의 모델 선택입니다. BFCL은 단발 호출에서 다중 턴·병렬 호출·실행 가능성까지 평가 범위를 확장했고, 한국에서는 카카오 FunctionChat-Bench가 한국어 함수 호출 능력을 따로 측정하기 시작해 국내 모델 비교의 기준으로 쓰이고 있습니다 [4][7].
흐름
2023.06
OpenAI Function Calling
GPT-3.5·GPT-4가 함수 스키마를 받아 JSON 인자를 채워 돌려주는 기능을 공식 발표.
2024.05
Anthropic Tool Use
Claude 3에 도구 사용 API가 정식 추가되며 벤더 간 표준 패턴이 자리잡음.
2024.11
MCP 표준화
Anthropic이 함수 호출을 프로토콜 차원으로 끌어올린 MCP를 공개해 도구 연결을 개방형으로 전환.
2025—
Agentic 시대
함수 호출이 에이전트가 자율적으로 도구를 골라 쓰는 기반 능력으로 자리매김.
이 용어와의 관계
  • 유사 개념
    Tool UseAnthropic 진영의 동일 개념 명칭
  • 다음 단계
    MCP함수 호출을 프로토콜로 표준화한 다음 세대
  • 기반 기술
    Structured OutputJSON 스키마로 출력을 강제하는 기반 능력
  • 대표 도구
    JSON Mode함수 인자 JSON 일치를 보장하는 출력 모드
Function Calling vs MCP
Function CallingMCP
표준화 수준OpenAI·Anthropic·Google 각자 스펙벤더 중립 개방형 프로토콜
단위개별 함수 1건 호출서버가 도구·리소스·프롬프트 묶음 제공
도구 등록앱이 함수 스키마를 사전 주입서버가 런타임에 도구 목록 동적 노출
재사용성앱마다 도구 어댑터 재작성MCP 서버 한 번 만들면 여러 클라이언트 공용
쓰는 곳OpenAI Tools·Gemini Tools APIClaude Code·Cursor·Windsurf 등 IDE 표준
관련 태그
참고 자료
  1. Function calling — 공식 문서 · OpenAI Platform · 2024–2026
  2. Tool use with Claude — 공식 문서 · Anthropic · 2024–2026
  3. Function calling with the Gemini API — 공식 문서 · Google AI for Developers · 2024–2026
  4. Gorilla: Large Language Model Connected with Massive APIs — 학술 논문 · Patil et al., UC Berkeley, arXiv · 2023-05-24
  5. Klarna AI assistant handles two-thirds of customer service chats in its first month — 기업 공식 발표 · Klarna Press · 2024-02-27
  6. Add Stripe to your agentic workflows — 공식 문서 · Stripe Documentation · 2024–2026
  7. Toolformer: Language Models Can Teach Themselves to Use Tools — 학술 논문 · Schick et al., arXiv · 2023-02-09
  8. Function calling and other API updates — 기업 공식 발표 · OpenAI Blog · 2023-06-13
대표 출처OpenAI 공식 문서 — Function calling guide (2023년 6월 최초 공개, 2024년 8월 Structured Outputs 도입)