Apr 1, 2025

당신의 AI에게 행동을 맡겨라: 스킬과 Function Calling

Image for 당신의 AI에게 행동을 맡겨라: 스킬과 Function Calling

HyperCLOVA X, LLM의 한계를 넘어 실시간 데이터 호출과 액션 수행까지


대규모 언어 모델(LLM)은 자연어 처리에서 강력한 성능을 발휘하지만, 두 가지 중요한 한계를 가지고 있습니다. 첫째, 실시간으로 업데이트되는 최신 정보를 반영하기 어렵고 둘째, 직접적인 액션을 수행할 수 없다는 점입니다. 예를 들어, 기존의 AI 챗봇은오늘 날씨는 어때?”라는 질문에 과거 데이터를 기반으로 답변하거나, “이번 주 토요일 1시에 청첩장 모임 일정 추가해줘라는 요청에제가 할 수 없는 요청이에요.”라고 응답하는 경우가 많습니다. 이는 대부분의 LLM이 사전에 학습된 데이터만을 기반으로 답변을 생성하며, 외부 데이터와 연결되거나 실제 환경에서 동작하는 기능이 부족하기 때문입니다.


HyperCLOVA X는 이러한 한계를 극복하기 위해 스킬(Skill) Function Calling이라는 두 가지 기능을 도입했습니다. 특히 Function Calling은 스킬보다 더 확장성이 높고 다양한 액션을 수행할 수 있어 개발자들에게 더 많은 가능성을 제공합니다. 이를 통해 LLM은 외부 데이터를 사용하고, 실제 액션을 수행할 수 있도록 확장되어 더욱 풍부하고 실용적인 AI 경험을 제공할 수 있습니다. 두 기능의 특징과 차이점을 이해하면 여러분의 서비스에 가장 적합한 방식을 선택하는 데 도움이 될 것입니다. 이번 콘텐츠에서는 HyperCLOVA X의 두 가지 핵심 기능인 스킬과 Function Calling을 소개해 드리겠습니다.



LLM과 외부 시스템의 연결 고리, 스킬과 Function Calling


HyperCLOVA X는 LLM이 외부 시스템과 상호작용할 수 있는 스킬과 Function Calling 기능을 제공합니다스킬은 LLM API를 호출하여 외부 데이터를 가져올 수 있도록 하는 기능입니다현재 CLOVA X에서는 쇼핑, 여행, 마켓컬리, 쏘카, 트리플 등의 외부 서비스 데이터를 연동한 스킬을 사용자에게 제공하고 있습니다. CLOVA Studio의 직관적인 UI를 활용하면 비개발자도 쉽게 API를 등록하여 실시간 정보를 가져오거나, 사내 데이터 시스템과 연동하여 보다 유용한 답변을 생성할 수 있습니다.



스킬을 똑똑하게 활용하는 법


Function Calling
LLM이 사용자 질문에 답하기 위해 특정 기능을 호출할 수 있는 기능입니다. 단순한 API 호출뿐만 아니라 스크립트 실행 및 라이브러리 함수 호출까지 가능한 확장형 기능으로 Function Calling을 활용하면 개발자가 직접 함수를 호출하고, 특정 액션을 수행할 수 있습니다. 예를 들어 이메일을 전송하거나, 파일을 업로드하고 데이터베이스에서 특정 정보를 조회하는 등 다양한 작업을 자동화할 수 있습니다.


스킬 Function Calling
사용 주체 누구나 개발자
사용 목적 API를 사용하여 외부 데이터를 가져오기 위한 기능 복잡한 기능 구현과 작업 자동화에 특화된 확장성 높은 기능
구현 방식 CLOVA AI Studio의 UI를 통해 비개발자도 쉽게 서비스 API를 연동해서 구현 가능 개발 지식을 갖춘 사용자가 직접 함수를 구현하고 연동해야 함
사용 사례 쇼핑, 여행, 날씨 등 일상적인 정보 검색 및 서비스 이용 복잡한 데이터 처리, 맞춤형 액션 수행, 시스템 자동화



AI를 더 똑똑하게 만드는 도구 활용법


HyperCLOVA X의 스킬과 Function Calling AI의 활용 범위를 단순한 대화 생성에서 벗어나 외부 데이터와 연동하고, 실제 액션을 수행하는 강력한 기능으로 확장해 줍니다. 각 기능의 특성에 맞는 활용 사례를 살펴보겠습니다.


1. 스킬과 Function Calling을 활용한 챗봇 제작

기존 챗봇은 사용자의 질문을 정확히 이해하기 위해 방대한 인텐트를 미리 정의하고, 각 질문을 정의된 인텐트에 매핑한 후, 이에 맞는 답변을 선별하는 과정이 필요했습니다. 배달 챗봇을 만든다고 가정하면, 사용자가 입력할 수 있는 다양한 질문 유형인 주문 상태 확인, 배달 조회, 메뉴 추천 등을 분류한 뒤 같은 의미를 가진 여러 표현을 수집해 학습 데이터로 활용해야 합니다. 이후 각 인텐트에 적절한 답변을 선별하는 과정이 필요했습니다.


그러나 이러한 방식은 많은 시간과 비용이 들며, 사용자의 질문이 조금만 복잡해져도 챗봇이잘 이해하지 못했어요.” 같은 답변을 반환해 만족도가 떨어지는 경우가 많았습니다. 하지만 스킬과 Function Calling을 활용하면 이러한 문제를 효과적으로 해결할 수 있습니다. AI가 사용자의 질문 맥락을 자동으로 분석하여 적절한 API를 호출하고, 최적의 파라미터를 생성해 자연스러운 응답을 제공하기 때문입니다. 챗봇 제작자는 복잡한 인텐트 매핑을 일일이 설정할 필요 없이, 더 직관적이고 효율적인 방식으로 챗봇을 구축할 수 있습니다.


활용 예시:


  • e커머스 판매자 전용 챗봇이 사용자의 복잡한 질문을 이해하고 자동으로 적절한 API를 호출하여 응답 제공
    • “지난주 월요일 여성 구매 비중 알려줘
    • “어제 내 스토어 방문 고객 총 몇 명이야?”
    • “지난 3일간 환불 금액 총 얼마야?”
  • e커머스 챗봇이 제품 검색 API를 연동해 맞춤형 상품 추천
    • “벚꽃놀이 갈 때 어울리는 원피스 추천해 주라
    • “친구 결혼식에 입고 갈 옷 추천해 주세요



2. Function Calling을 활용한 실시간 데이터 조회

기존의 AI는 학습된 데이터만을 기반으로 응답을 생성하기 때문에, 최신 정보에 대한 답변을 제공하는 데 한계가 있었습니다. Function Calling을 활용하면 외부 API와 연동하여 실시간 데이터를 불러올 수 있어, 최신 정보를 반영한 정확한 답변을 생성할 수 있습니다.


 활용 예시:



  • 환율 조회: “오늘 원/달러 환율이 얼마야?”
  • 주가 정보 제공: “네이버 주가 알려줘
  • 상품 가격 확인: “국제 금값이 오늘 얼마야?”
  • 날씨 정보 조회: “서울 내일 날씨 알려줘


3.  Function Calling을 활용한 AI 기반 자동화 시스템 구축

Function Calling은 단순한 정보 조회를 넘어, 외부 시스템과 연동하여 실제 액션을 수행할 수 있는 기능을 제공합니다. 이를 활용하면 AI가 단순한 대화형 비서가 아니라, 업무를 자동화하고 실제 작업을 수행하는 도구로 활용될 수 있습니다.


활용 예시:



  • 자동차 AI 비서:
    • “에어컨 온도 22도로 맞춰줘
    • “집으로 가는 길 안내해줘
    • “근처에서 가장 저렴한 주유소 찾아줘
  • 업무 자동화:
    • “이메일 초안 작성하고 발송해줘
    • “회의록을 정리하고 팀원들에게 공유해줘
  • 스마트홈 제어:
    • “거실 조명 켜줘
    • “집에 도착하면 보일러 켜줘


스킬 vs. Function Calling: 동작 방식의 차이


Function Calling과 스킬은 모두 외부 데이터를 연동할 수 있다는 공통점이 있지만, 각각 사용 데이터 범위와 데이터 호출 주체가 다릅니다. 이는 두 기능의 기본적인 동작 방식이 서로 다르기 때문인데요, 어떤 차이가 있는지 살펴보겠습니다.


  1. 스킬(Skill)의 동작 방식
    Chain of Thought(CoT) 과정에서 자동으로 API 호출을 결정하고 실행합니다.
    • 사용자 쿼리 입력  플래너(Planner) 모델이 질문을 분석해서 어떤 스킬을 사용할지 계획
    • API 호출  Chain of Thought(CoT) 과정을 거쳐 API를 결정하고, 적절한 파라미터를 설정한 후 호출
    • 자연어 응답 생성최종 답변 모델이 API 응답 데이터를 가공하여 응답 생성
  1. Function Calling의 동작 방식
    AI가 제안하고, 개발자가 실행 여부를 제어합니다모델이 직접 호출하는 것이 아닌 개발자가 직접 함수 실행을 직접 처리하고, 응답 값을 모델에 전달합니다.


    • 사용자 쿼리 입력 → AI가 사전에 정의된 도구 정보를 바탕으로 적절한 Function을 선택
    • 매개변수 포함 실행 요청 생성 → AI가 필요한 데이터를 추출하여 실행 요청 생성
    • 사용자가 Function 실행 → AI는 실행을 제안하고, 실제 실행은 사용자가 수행
    • 실행 결과를 반영한 답변 생성 → 실행된 결과 값을 모델이 반영하여 최종 답변을 생성


Function Calling 구현 원리: 데이터 수집 및 학습 메커니즘


Function Calling은 사용자의 질문에 답하기 위해 필요한 경우 특정 기능을 자동으로 호출하는데요, 이러한 Function Calling의 성능을 높이기 위해 아래와 같은 체계적인 데이터 수집 및 학습 메커니즘을 개발했습니다.

 

1. 데이터 생성 플로우

AI가 함수를 호출하도록 학습시키기 위해서는 먼저 AI어떤 함수가 있는지‘, ‘언제 이 함수를 호출해야 하는지를 알려주는 Function Schema(함수 정의)를 해야 합니다. 이를 바탕으로 다음과 같이 데이터가 생성됩니다.


  1. 다양한 Function Schema를 생성하고 증강합니다.
  2. 생성된 Function Schema를 기반으로 사용자가 할 수 있는 질문이나 요청을 만듭니다.
    (
    : 오늘 서울 날씨 어때?)
  3. AI가 Function Call(함수 호출)을 수행하고 일반 응답을 생성합니다.
    3-1. Function Call
    을 수행한 경우, 해당 Function을 실행하여 결과를 얻거나 AI를 이용해 가상의 결과를 생성합니다.
  4. 생성된 결과와 이전 대화 내역을 바탕으로 AI의 최종 답변을 구성합니다.
  5. AI가 Function Call을 하지 않았다면, 다시 새로운 사용자 질문을 생성하는 과정으로 돌아갑니다.

이 과정을 반복하면서 Function Schema, 사용자 질문, AI 답변, Function Call, Function 실행 결과가 포함된 대화를 여러 차례 주고받는 멀티턴(Multi-turn) 데이터가 생성됩니다. 쉽게 말해, AI날씨 어때?”라는 질문에는 날씨 함수를 호출하고, “안녕?”이라는 일반 질문에는 대화로 응답하는 방법을 대규모로 학습시키는 과정입니다.


2. Function Schema 생성 과정

Function Schema AI가 호출할 수 있는 함수들의 정의로 Function 시드(Seed) 데이터에서 추출됩니다.

  • 데이터 소스: Rapid API 같은 기존 데이터들을 활용합니다.
    예를 들어 날씨 API, 환율 계산 API 등이 포함됩니다.
  • 카테고리 정의: 다양한 카테고리를 정의하여 데이터 확장합니다.
    • 같은 카테고리의 데이터는 모델이 유사한 도구들을 학습하도록 유도합니다. 예를 들어 날씨 카테고리에는 기온 조회, 강수 확률 조회 등 관련 기능들이 포함됩니다.
    • 다른 카테고리의 데이터는 모델이 더 다양한 상황을 학습하도록 도움을 줍니다.
  • 중복 방지: Function 이름을 샘플링하여 프롬프트에 삽입하여 특정 이름이 과도하게 반복되는 것을 방지합니다.
  • 오류 제거: 잘못된 JSON 스키마를 가진 함수는 제거하여 모델이 파라미터의 타입이나 형식을 혼동하지 않도록 합니다.
  • 다양한 네이밍: PascalCase, snake_case, camelCase, kebab-case 등 여러 스타일을 혼합하여 데이터를 구성합니다.

3. 사용자가 AI에 할 수 있는 질문/요청 생성

사용자가 AI에 할 수 있는 질문이나 요청은 크게 두 가지 경우를 고려하여 생성됩니다.

  1. Function을 사용하려는 경우
    • 특정 Function만 사용해야 하는 상황
      (
      : “지금 서울 날씨 알려줘“)
    • 여러 개의 Function을 동시에 사용해야 하는 상황
      (
      : “내일 서울에서 부산으로 가는 기차와 내일 날씨 알려줘“)
  2. Function을 사용하지 않는 경우
    • 단순 질의응답을 포함
      (
      : “AI란 뭐야?”, “안녕? 반가워“)

이렇게 구성된 사용자 질문 데이터는 AI가 적절한 응답을 학습할 수 있도록 합니다.


4. AI 응답 생성 및 검증

AI의 응답은 크게 두 가지로 나뉩니다.

  1. Function Call을 수행하는 경우
    • 적절한 Function이 선택되었는지 검증합니다.
      (
      : 날씨 질문에 날씨 함수를 호출하는지)
    • 파라미터가 정확하게 입력되었는지 확인합니다.
      (
      : ‘서울이라는 도시 이름이 제대로 전달되는지)
    • 불필요한 파라미터가 추가되거나 필요한 파라미터가 누락되지 않았는지 검토합니다.
  2. Function Call을 수행하지 않는 경우
    • 필요한 정보를 사용자에게 다시 묻는지 검증합니다.
      (
      : 어느 도시의 날씨를 알려드릴까요?)

AI 응답의 정확성을 높이기 위해 검증 및 재생성 과정을 거칩니다. 적절하게 생성된 Function Call인지 확인하고, 문제가 있으면 다시 AI 답변을 생성하는 과정을 반복합니다.


5. Function 실행 및 결과 생성

Function Call이 적절하게 이루어졌다면, Function 실행 결과를 생성하는 과정이 필요합니다.

  • 실제 구현된 Function이 있는 경우 → Function을 실행하여 결과를 얻습니다.
    (
    : 실제 날씨 API 호출)
  • AI가 생성한 가상의 Function인 경우 → AI를 이용해 결과를 생성합니다. (데이터 생성 단계에서는 가상의 결과를 만들어냄)

결과는 JSON, XML 등 다양한 포맷으로 생성하여 데이터의 다양성을 확보합니다. 이후, 이 결과를 사용자가 이해하기 쉬운 자연어 응답으로 변환합니다. (: “오늘 서울의 날씨는 맑고 기온은 23도입니다.”)


6. 학습 및 평가 방법

  • 학습 방법: HyperCLOVA X 모델의 LoRA 어댑터 방식을 사용하여 진행
  • 평가 도구: Berkeley Function Calling Leaderboard를 활용
  • 평가 요소:
    • 다수의 Function 호출여러 함수를 정확히 호출할 수 있는지
    • 특정 조건에서 Function 호출 제한함수를 호출하지 말아야 할 때 호출하지 않는지
    • 코드 기반 호출 평가코드 생성 등의 능력이 있는지
    • 멀티스텝 및 멀티턴 시나리오 평가여러 차례의 대화에서 일관성 있게 작동하는지

이러한 평가 방법을 통해 모델이 실제 환경에서도 정확한 Function Call을 수행할 수 있도록 검증합니다.

 

HyperCLOVA X의 Function Calling 성능 비교


HyperCLOVA X
Function Calling의 성능은 소형 모델임에도 불구하고, 글로벌 경쟁사의 다양한 최신 모델과 비교했을 때 경쟁력 있는 결과를 보입니다. 아래 그래프는 Function Calling 성능을 주요 글로벌 경쟁 모델과 비교한 결과입니다.


Function Calling 성능 최적화 가이드


1. 자세한 설명과 함께 직관적인 이름 사용하기

함수 및 매개변수의 이름은 쉽게 알아볼 수 있도록 명확하게 지정하는 것이 중요합니다. 약어나 줄임말은 지양하고, 함수가 언제 호출되어야 하는지 설명을 함께 제공하는 것이 좋습니다. 복잡한 함수의 경우, 각 매개변수가 어떤 역할을 수행하는지 설명해 주면 도움이 됩니다. 함수 설명은 최소 3~4문장 이상으로 구성하여, 함수의 사용 시점과 제한 사항 그리고 매개변수가 함수의 동작에 미치는 영향을 포함합니다.


2. 명확한 매개변수 지정하기

직관적인 매개변수의 이름과 함께 설명을 제공합니다. 예를 들어, 날짜 형식이 있어야 하는 매개변수의 경우 YYYY-MM-DD 또는 DD/MM/YY와 같은 형식을 명확히 설명하여 사용자가 올바르게 입력할 수 있도록 합니다.


3. 열거형으로 명확한 매개변수 값 제한하기

가능하다면 매개변수에 열거형(enum)을 사용하여 값을 제한하는 것이 좋습니다. 예를 들어, 티셔츠의 사이즈를 선택할 때 S, M, L과 같은 옵션으로 값을 명확하게 제한하면 모델이 더 정확하게 작동할 수 있습니다. 이를 통해 잘못된 값이나 예상치 못한 값이 반환되는 상황을 줄일 수 있습니다.


4. 함수의 개수 최적화하기

한 번에 너무 많은 함수를 사용하지 않도록, 10~20개 내외로 유지하는 것이 좋습니다. 그 이상이 되면 모델이 올바른 함수를 선택하는 데 어려움을 겪을 수 있습니다. 필요한 기능이 많다면, 함수들을 논리적으로 그룹화하거나 여러 도구로 나누어 사용해 보세요.

 

생각하는 AI에서 행동하는 AI로 


이제 AI는 단순히 대화만 하는 존재가 아닙니다. HyperCLOVA X Function Calling과 스킬 기능은 AI가 실제 세계에서 일을 할 수 있게 해주는 게임체인저입니다.

내일 일정을 확인하고 회의실 예약해줘
엄마 생신에 보낼 꽃다발 주문해줘


과거의 AI가 질문에 답하는 똑똑한 사전이었다면, 이제는 당신의 지시를 받아 실제로 일을 처리하는 비서(Agentic AI)입니다. AI는 정보를 아는 것에서 그치지 않고, 그 정보로 실제 행동을 취합니다.


여러분의 비즈니스와 일상에 HyperCLOVA X를 도입한다면, 단순 반복 업무는 AI에 맡기고 더 창의적이고 가치 있는 일에 집중할 수 있는 미래를 그릴 수 있습니다. 지금부터 HyperCLOVA X Function Calling과 스킬 기능을 어떻게 활용할 수 있을지 고민해 보세요.