쉬운·기술사전비유로 이해하는 AI·개발 용어
더 알아보기

툴 호출 / 함수 호출

Tool / Function Calling

답만 하는 게 아니라 직접 행동하는 AI예요.

툴 호출 / 함수 호출 개념 다이어그램

에이전트는 사실 아무것도 직접 하지 않아요. 작업 지시서를 작성해서 실행 담당자에게 넘길 뿐이에요.

챗봇과 에이전트의 차이는 에 있어요. 에이전트는 API를 호출하고, 명령을 실행하고, 이메일을 보내고, 가격을 바꿀 수 있어요. 그런데 한 가지 짚고 넘어가야 할 부분이 있어요. 모델이 툴을 '사용'하는 방식이에요. 모델은 끝까지 텍스트를 출력하는 존재예요. 화면 너머로 손을 뻗어 신용카드를 결제하거나, 직접 이메일을 전송하는 건 물리적으로 불가능해요. 그렇다면 어떻게 무언가를 실행하는 걸까요?

작업 지시서를 써요.

주방 리모델링을 지휘하는 현장 소장을 떠올려보세요. 소장은 직접 망치를 휘두르지 않아요. 배관, 전기, 타일도 직접 하지 않죠. 배관 단계가 되면 작업 지시서를 작성해서 하청업체, 즉 배관공에게 넘겨요. "싱크대까지 구리 파이프 12mm 연결 필요." 배관공이 실제 작업을 마치고 결과를 보고하면, 소장은 그 결과를 보고 다음 단계를 결정하는 거예요.

함수 호출이 바로 이 구조예요. 모델에게 사용을 허가한 툴 목록을 전달해요. 각 툴은 모델이 채울 수 있는 빈 작업 지시서와 같아요.

모델이 특정 툴이 필요하다고 판단하면, 직접 실행하지 않아요. 대신 정형화된 요청을 내보내요. get_orders 호출, 날짜는 이것으로. 모델 외부의 실행 환경(하네스)이 그 요청을 읽어 실제 앱에 실행하고, 결과를 돌려줘요. 모델은 결과를 읽고 다음 행동을 결정하고요.

"정형화"가 핵심이에요. 모델이 "주문을 확인하면 어떨까요?"라고 중얼거리는 게 아니에요. 툴 이름, 입력값, 기계가 해석할 수 있는 형식으로 정확히 써요. 웨이터에게 "치킨 거 주세요"라고 말하는 것과, 주방이 바로 읽을 수 있도록 주문서에 또렷하게 써서 넘기는 것의 차이와 같아요.

에이전트 루프를 다시 보면 — 단계 결정 → 실행 → 결과 확인 → 다음 단계 결정이에요. 함수 호출은 그 "실행" 순간이에요. 텍스트 박스 안의 말이 현실 세계의 동작으로 전환되는 정확한 지점이죠.

비개발자가 알아야 하는 이유. 에이전트가 무언가를 해냈을 때 — 미팅을 예약하고, 보고서를 뽑고, Slack에 메시지를 남겼을 때 — 그 아래에는 함수 호출이 있었어요. 그리고 이 구조는 조용한 실패 방식도 설명해줘요. 에이전트에게 적절한 툴을 주지 않으면, 아무리 그럴듯하게 말해도 그 일은 처리할 수 없어요. "못 한다"고 솔직히 말하거나, 더 나쁘게는 한 척 흉내내는 거예요. 모델에게 넘긴 툴 목록이 현실 세계에서 건드릴 수 있는 전부예요. 드라이브스루 메뉴판과 같아요. 메뉴판에 없는 건 주문할 수 없어요.

결정은 모델이 해요. 실행은 툴이 해요. 함수 호출은 그 사이의 작업 지시서예요.