본문 바로가기
SEO·GEO 용어사전

함수 호출 (Function Calling)

마지막 업데이트

함수 호출은 AI 모델이 외부 기능을 쓸 수 있도록 함수 이름과 인자를 구조화된 형식으로 생성하는 능력입니다. 날씨 조회, 데이터베이스 검색, 웹 검색 같은 기능을 모델에 설명해 두면, 모델이 필요한 순간에 어떤 기능을 어떤 값으로 부를지 구조화된 형식으로 만들어냅니다. OpenAI는 2023년 6월 API에 이 기능을 공개했고 다른 모델사도 tool use 같은 이름으로 비슷한 방식을 제공합니다.

이 글은 OpenAI와 Anthropic의 공식 문서와 발표 원문을 기준으로 작성했습니다.

사용자 정의 함수의 왕복 구조

사용자가 정의한 함수를 호출할 때는 모델이 함수 이름과 인자를 담은 요청을 만들고, 애플리케이션이 이를 검증한 뒤 실행합니다. 모델사가 제공하는 웹 검색과 코드 실행 같은 서버 도구는 제공사 인프라에서 실행되므로 구분해야 합니다.

  1. 개발자가 함수의 이름, 설명, 인자 규격(JSON Schema)을 모델에 제공합니다
  2. 사용자의 요청을 본 모델이 함수가 필요하다고 판단하면, 호출 요청(함수명과 인자 JSON)을 응답으로 내놓습니다
  3. 애플리케이션이 인자와 권한을 검증한 뒤 실제 함수를 실행합니다
  4. 실행 결과를 모델에 되돌려주면, 모델이 결과를 반영한 최종 답변을 만듭니다

OpenAI의 2023년 발표 원문도 모델이 함수를 호출할 인자를 담은 JSON을 출력하도록 선택한다고 설명하고, 실행 단계는 개발자 쪽 화살표로 그려 둡니다. 이 분리 덕에 모델의 판단력과 애플리케이션의 실행 권한이 나뉘어, 무엇을 실행할지 통제하는 책임이 앱에 남습니다.

function calling과 tool use, 이름 정리

같은 개념을 회사마다 다르게 부릅니다. OpenAI 공식 가이드는 function calling을 tool calling과 같은 말로 명시하면서, 함수는 도구(tool)의 한 종류라는 위계를 둡니다. Anthropic은 처음부터 tool use라는 이름을 썼고 2024년 5월 Claude 전 모델에 정식 출시했습니다.

Anthropic 쪽에는 알아 둘 세부가 하나 더 있습니다. 도구가 두 부류로 나뉘어서, 애플리케이션이 실행하는 클라이언트 도구와 Anthropic 인프라가 직접 실행하는 서버 도구(웹 검색, 코드 실행 등)가 있습니다. 모델이 절대 실행하지 않는다는 원칙은 클라이언트 도구 기준이고, 서버 도구는 모델사 서버가 실행을 맡는 변형입니다.

AI 검색도 도구 호출

이 용어가 검색과 만나는 지점은 OpenAI와 Anthropic이 공개한 구조입니다. 두 회사의 API에서는 웹 검색을 도구 목록에 넣고 모델이 필요할 때 호출합니다. OpenAI 공식 문서는 웹 검색을 tools 배열의 한 항목으로 켠다고 안내하며, 다른 도구와 마찬가지로 모델이 입력 내용을 보고 검색할지 말지 스스로 판단한다고 명시합니다. Anthropic도 웹 검색을 서버 도구로 분류해 같은 체계 위에 얹었습니다. 모든 검색엔진과 챗봇이 같은 내부 구조를 쓴다고 공개한 것은 아닙니다.

여기서 나오는 실무 함의는 두 가지입니다.

  • ChatGPT가 어떤 질문엔 검색하고 어떤 질문엔 안 하는 이유가 이 구조로 설명됩니다. 검색이라는 도구의 호출 여부를 모델이 판단하기 때문입니다. 검색이 호출된 질문에서만 웹 콘텐츠가 인용 후보가 됩니다
  • OpenAI와 Anthropic의 웹 검색 도구는 웹에서 찾은 자료를 답변에 사용합니다. 다만 검색 대상과 색인을 만드는 방식은 제품마다 다르고 공개 범위도 제한적입니다. 함수 호출을 알면 노출에 유리해진다는 직접 인과는 근거가 없으며, 공개된 제품의 작동 범위를 이해하는 판단 근거로 쓰는 것이 맞습니다

에이전트가 여러 도구를 조합해 일하는 에이전틱 검색 흐름에서 함수 호출은 가장 밑단의 공용 부품이고, 그 도구들을 여러 앱이 공유하도록 표준화한 것이 MCP입니다. 층위 구분은 MCP 글에서 다룹니다.

함수 호출 여부를 확인하는 방법

API로 만든 서비스라면 모델 응답에 담긴 도구 호출 항목, 함수 이름과 인자를 애플리케이션 로그에서 확인합니다. 이어서 실제 함수의 실행 기록과 반환값, 그 결과를 받은 뒤 생성된 최종 답변을 순서대로 대조합니다. 답변에 최신 날씨나 검색 결과가 들어 있다는 이유만으로 함수 호출을 추정하면 안 됩니다. 캐시된 정보나 개발자가 미리 넣은 문맥일 수도 있기 때문입니다.

일반 사용자가 쓰는 챗봇에서는 제품이 웹 검색 중, 도구 사용 같은 표시나 출처 링크를 제공할 때만 확인할 수 있습니다. 내부 호출 기록을 공개하지 않는 서비스에서는 최종 문장만 보고 정확한 도구 이름과 인자를 판정할 수 없습니다.

자주 묻는 질문

모델이 함수를 직접 실행하는 것 아닌가요?

아닙니다. 모델의 출력은 어떤 함수를 어떤 인자로 부르라는 요청까지이고, 실행과 그 결과에 대한 책임은 애플리케이션에 있습니다. 예외적으로 모델사가 자기 인프라에서 실행해 주는 서버 도구(웹 검색 등)가 있지만, 이때도 실행 주체는 모델이 아니라 모델사의 서버입니다.

function calling과 tool use는 다른 기술인가요?

같은 개념의 다른 이름입니다. OpenAI가 function calling으로 시작했고 지금은 tool calling과 같은 말로 쓰며, Anthropic은 tool use라고 부릅니다. 자료를 읽을 때 두 용어를 만나면 같은 메커니즘 이야기로 읽으면 됩니다.

AI 검색과 함수 호출이 무슨 관계인가요?

OpenAI와 Anthropic의 웹 검색은 도구 호출로 구현돼 있습니다. 두 회사의 공식 문서는 웹 검색을 도구 목록의 한 항목으로 다루고, 검색 여부를 모델이 판단한다고 명시합니다. 다른 AI 서비스의 내부 구조까지 같다고 단정할 수는 없습니다.

마케터가 이 개념을 알아야 하는 이유가 있나요?

웹 검색을 사용한 OpenAI나 Anthropic 답변에 최신 콘텐츠가 인용되려면 검색 도구가 호출되고 그 결과에 문서가 포함돼야 합니다. 어떤 질문에서 검색이 작동했는지 함께 기록하면 AI 가시성 결과를 더 정확히 해석할 수 있습니다. 학습 지식만으로 답한 경우와 다른 서비스에는 이 조건을 그대로 적용할 수 없습니다.

함께 알아두면 좋은 용어

  • MCP: 도구 연결을 앱 간 표준으로 만든 프로토콜
  • AI 에이전트: 도구 호출을 조합해 일하는 주체
  • 에이전틱 검색: 도구 호출을 조합해 목표를 좇는 탐색
  • RAG: 검색 도구 호출과 결합되는 답변 생성 구조

참고 문서