도구 호출(Tool Calling)이란? AI가 외부 기능을 쓰는 방식
TL;DR
도구 호출은 AI 모델이 답변만 만드는 데서 끝나지 않고, 필요한 경우 검색, 계산, 데이터 조회, API 실행 같은 외부 기능을 부르도록 설계하는 방식입니다.
모델은 보통 "어떤 도구를 어떤 입력값으로 써야 하는지"를 구조화된 형태로 제안하고, 실제 실행은 애플리케이션이나 서버 쪽 도구가 맡습니다.
AI 에이전트, 업무 자동화, 챗봇, 사내 검색, 고객지원 자동화에서는 도구 호출 권한과 사람 승인 지점을 함께 설계해야 안전합니다.
핵심 3줄 요약
- 핵심 1
도구 호출은 AI가 외부 시스템의 기능이나 데이터를 활용해 답변하거나 작업하도록 만드는 연결 방식입니다. - 핵심 2
OpenAI는 function calling을 tool calling이라고도 부르며, 모델이 외부 시스템과 인터페이스하고 학습 데이터 밖의 정보에 접근하는 방법으로 설명합니다. - 핵심 3
초보자는 도구 호출을 "AI가 직접 모든 일을 하는 것"이 아니라 "AI가 필요한 기능을 고르고, 앱이 실행 결과를 다시 전달하는 구조"로 이해하면 쉽습니다.
이 글에서 다룰 내용
- 도구 호출의 한 문장 정의
- AI 에이전트와 자동화에서 왜 중요한지
- 날씨 조회와 환불 처리로 이해하는 쉬운 예시
- 함수 호출, API, MCP, 구조화 출력, RAG와의 차이
- 챗GPT, 제미나이, 클로드 API 자동화에서 쓰이는 방식
- 도구 호출을 설계할 때 조심해야 할 보안과 승인 기준
한 문장 정의
도구 호출은 AI 모델이 사용자의 요청을 처리하기 위해 외부 기능이 필요하다고 판단했을 때, 호출할 도구 이름과 입력값을 구조화해 내보내고 애플리케이션이 그 도구를 실행하도록 만드는 방식입니다.
쉽게 말하면 AI에게 계산기, 검색창, 사내 데이터베이스, 주문 조회 API, 이메일 발송 기능 같은 "쓸 수 있는 도구 목록"을 알려주는 것입니다. 모델은 답변을 만들다가 필요한 도구를 고르고, 입력값을 채워 호출을 요청합니다. 그다음 실제 실행 결과가 다시 모델에게 전달되면, 모델은 그 결과를 바탕으로 사용자에게 최종 답변을 만듭니다.
OpenAI 문서는 function calling, 즉 tool calling을 모델이 외부 시스템과 연결되고 학습 데이터 밖의 정보에 접근할 수 있게 하는 방식으로 설명합니다. Anthropic 문서도 Claude가 사용자가 정의한 함수나 Anthropic이 제공하는 도구를 호출할 수 있으며, 모델이 사용자 요청과 도구 설명을 보고 호출 여부를 결정한다고 안내합니다. Gemini API 문서는 함수 선언이 이름, 매개변수, 목적을 모델에게 설명하고, 모델이 필요하다고 판단하면 구조화된 JSON 객체로 함수 이름과 인수를 반환한다고 설명합니다.
한 줄 정리
도구 호출은 AI에게 "필요할 때 이 기능을 불러도 된다"고 알려주고, 실제 실행 결과를 다시 답변에 반영하게 만드는 연결 구조입니다.
왜 도구 호출이 중요한가
AI 모델은 많은 내용을 알고 있지만, 모든 최신 정보와 모든 사내 데이터를 항상 갖고 있지는 않습니다. 또한 모델 혼자서는 실제 주문을 조회하거나, 파일을 읽거나, 캘린더에 일정을 만들거나, 결제를 취소할 수 없습니다. 이런 일을 하려면 외부 시스템과 연결되어야 합니다.
감자나라ai님이 AI 고객지원 봇을 만든다고 해보겠습니다. 고객이 "내 주문이 언제 도착하나요?"라고 물으면 모델이 일반적인 배송 안내만 답하는 것은 부족합니다. 주문 번호를 확인하고, 배송 API를 조회하고, 실제 상태를 가져와야 합니다. 이때 모델이 배송 조회 도구를 호출하게 만들면 답변이 훨씬 실용적으로 바뀝니다.
도구 호출은 AI 에이전트에서도 핵심입니다. 에이전트는 목표를 받고 여러 단계를 이어서 처리합니다. 일정 확인, 웹 검색, 파일 분석, 코드 실행, 데이터베이스 조회 같은 행동이 이어지려면 모델이 각 단계에서 어떤 도구를 써야 하는지 판단해야 합니다.
다만 도구 호출은 편리한 만큼 위험도 있습니다. 환불 처리, 이메일 발송, 파일 삭제, 권한 변경처럼 외부에 실제 영향을 주는 도구를 모델에게 열어주면 실수의 영향이 커집니다. 그래서 도구 호출은 기능 설계와 보안 설계를 같이 봐야 합니다.
핵심 인사이트
AI 자동화의 실용성은 "모델이 얼마나 똑똑한가"만이 아니라 "어떤 도구를 안전하게 연결했는가"에서 결정됩니다.
쉬운 예시로 이해하기
도구 호출은 신입 직원에게 업무용 프로그램 접근 권한을 주는 것과 비슷합니다.
신입 직원이 고객 문의를 읽고 답변하려면 주문 관리 시스템, 배송 조회 화면, 환불 규정 문서가 필요합니다. 아무 도구도 없으면 일반적인 답변만 할 수 있습니다. 필요한 도구가 있으면 실제 주문 상태를 확인하고 더 정확한 답변을 만들 수 있습니다.
AI도 마찬가지입니다. 사용자가 "서울 내일 날씨에 맞춰 야외 행사 준비물을 알려줘"라고 물으면 모델의 오래된 지식만으로는 내일 날씨를 알 수 없습니다. 이때 날씨 조회 도구가 있으면 모델은 위치와 날짜를 입력값으로 날씨 도구 호출을 요청하고, 애플리케이션은 실제 날씨 API를 실행한 뒤 결과를 모델에게 돌려줍니다. 모델은 그 결과를 바탕으로 우산, 천막, 냉방, 일정 조정 같은 답변을 만들 수 있습니다.
또 다른 예로 "지난 주문을 환불해줘"라는 요청이 있습니다. 이 경우 모델이 바로 환불 도구를 실행하게 두면 위험합니다. 먼저 주문 조회 도구로 상태를 확인하고, 환불 가능 여부를 판단하고, 금액과 사유를 보여준 뒤, 사람이 승인해야 환불 실행 도구가 호출되도록 설계하는 편이 안전합니다.
예시
"배송 상태를 알려줘"는 조회 도구만으로 처리할 수 있지만, "환불을 실행해줘"는 실제 돈과 고객 경험에 영향을 주므로 사람 승인 단계를 넣는 것이 좋습니다.
헷갈리는 용어와 차이
함수 호출과 도구 호출의 차이
함수 호출과 도구 호출은 실제 문서에서 거의 같은 의미로 쓰이는 경우가 많습니다. OpenAI 문서는 function calling을 tool calling이라고도 부른다고 설명합니다. 다만 초보자에게는 함수 호출이 코드의 함수 실행에 더 가까운 말이고, 도구 호출은 검색, 파일 읽기, API 실행, 코드 실행처럼 더 넓은 외부 기능 사용까지 포함하는 말로 이해하면 쉽습니다.
API와 도구 호출의 차이
API는 소프트웨어끼리 데이터를 주고받거나 기능을 실행하기 위한 통로입니다. 도구 호출은 AI 모델이 그 API 같은 외부 기능을 언제, 어떤 입력값으로 쓸지 정하는 AI 쪽 흐름입니다.
예를 들어 배송 조회 API가 있어도 모델이 그 API를 언제 써야 하는지 모르면 자동 고객지원은 어렵습니다. 도구 호출은 모델에게 "배송 상태 질문이 오면 이 API를 이런 입력값으로 호출하라"고 연결해주는 방식입니다.
MCP와 도구 호출의 차이
MCP는 AI 앱과 외부 도구를 연결하기 위한 표준 프로토콜입니다. 도구 호출은 AI가 실제로 도구를 쓰는 행동입니다. 즉 MCP는 연결 규격에 가깝고, 도구 호출은 그 연결된 도구를 사용하겠다는 실행 요청에 가깝습니다.
구조화 출력과 도구 호출의 차이
구조화 출력은 AI의 최종 답변을 JSON, 표, 정해진 필드 같은 형식으로 받는 데 초점이 있습니다. 도구 호출은 최종 답변 전에 외부 기능을 불러 정보를 얻거나 행동을 실행하는 데 초점이 있습니다.
예를 들어 "문의 내용을 유형, 긴급도, 담당팀으로 JSON 분류해줘"는 구조화 출력에 가깝습니다. "고객 번호로 CRM을 조회한 뒤 담당자를 찾아줘"는 도구 호출에 가깝습니다.
RAG와 도구 호출의 차이
RAG는 검색한 문서나 데이터 조각을 모델 답변에 활용하는 방식입니다. 도구 호출은 검색뿐 아니라 계산, 파일 읽기, API 실행, 이메일 발송, 코드 실행처럼 더 넓은 외부 기능을 포함할 수 있습니다. RAG가 도구 호출을 통해 구현될 수도 있지만 둘은 같은 말이 아닙니다.
비교 정리
API는 외부 기능 통로, 도구 호출은 AI가 그 통로를 쓰겠다고 요청하는 방식, MCP는 도구 연결 표준, 구조화 출력은 답변 형식 제어, RAG는 근거 검색 결합입니다.
실전에서 어떻게 쓰이나
첫째, 고객지원 챗봇에 쓰입니다. 주문 조회, 배송 상태 확인, 반품 가능 여부 확인 같은 도구를 연결하면 AI가 일반 답변이 아니라 실제 고객 상태에 맞춘 답변을 만들 수 있습니다.
둘째, 사내 지식 검색과 문서 업무에 쓰입니다. AI가 파일 검색 도구, 데이터베이스 조회 도구, 문서 요약 도구를 호출해 최신 정책이나 내부 자료를 확인하고 답변할 수 있습니다.
셋째, 업무 자동화에 쓰입니다. 캘린더 일정 생성, 이메일 초안 작성, CRM 업데이트, 스프레드시트 행 추가, 보고서 생성 같은 반복 업무가 도구 호출 구조로 이어질 수 있습니다.
넷째, 개발 자동화에 쓰입니다. 코드 검색, 테스트 실행, 로그 조회, 배포 상태 확인 같은 도구를 AI가 호출하면 개발자는 문제 원인 파악과 수정 방향을 더 빠르게 잡을 수 있습니다.
다섯째, AI 에이전트의 멀티스텝 실행에 쓰입니다. Anthropic 문서는 도구가 실행되는 위치를 기준으로 클라이언트 도구와 서버 도구를 구분합니다. 클라이언트 도구는 애플리케이션이 실행하고 결과를 다시 보내며, 서버 도구는 제공자 인프라에서 실행됩니다. Gemini API 문서도 모델이 함수 호출을 제안하면 실제 함수 실행은 애플리케이션 책임이라고 설명합니다.
실전 팁
도구 호출을 설계할 때는 도구 이름보다 "이 도구가 읽기만 하는가, 실제 변경을 일으키는가"를 먼저 나누세요. 조회 도구와 실행 도구의 위험도는 다릅니다.
주의할 점
첫째, 모델이 도구를 직접 실행한다고 착각하지 마세요. 많은 API 흐름에서는 모델이 호출할 도구와 입력값을 제안하고, 실제 코드는 애플리케이션이 실행합니다. 이 차이를 알아야 오류 처리, 권한 제어, 로그 기록을 제대로 설계할 수 있습니다.
둘째, 도구 설명을 모호하게 쓰지 마세요. 모델은 도구 이름과 설명을 보고 언제 사용할지 판단합니다. "처리하기"처럼 모호한 설명보다 "주문 번호로 배송 상태를 조회한다"처럼 입력, 목적, 제한을 명확히 쓰는 편이 안전합니다.
셋째, 위험한 도구에는 사람 승인을 넣으세요. 이메일 발송, 결제, 환불, 삭제, 권한 변경, 외부 공개, 코드 배포는 되돌리기 어렵습니다. 조회는 자동으로 하더라도 실행은 승인 뒤 진행하게 설계해야 합니다.
넷째, 입력값 검증을 해야 합니다. 모델이 만든 도구 인수는 사람이 쓴 코드처럼 항상 정확하다고 볼 수 없습니다. 필수값, 형식, 범위, 권한, 허용된 대상인지 확인해야 합니다.
다섯째, 로그와 감사 기록을 남기세요. 어떤 사용자의 어떤 요청에서 어떤 도구가 어떤 입력값으로 호출됐고, 결과가 무엇이었는지 남겨야 사고가 났을 때 원인을 찾을 수 있습니다.
주의
도구 호출은 AI를 "말하는 도구"에서 "행동하는 시스템"으로 바꾸는 기능입니다. 그래서 편의성보다 권한, 승인, 기록, 실패 처리 기준을 먼저 정해야 합니다.
초보자를 위한 도구 호출 체크리스트
- 도구가 조회용인지 실행용인지 구분합니다.
- 도구 이름과 설명을 구체적으로 씁니다.
- 입력값 스키마와 필수값을 명확히 정합니다.
- 민감한 도구에는 사람 승인 단계를 둡니다.
- 실패했을 때 사용자에게 어떻게 알릴지 정합니다.
- 도구 호출과 결과를 로그로 남깁니다.
- 도구가 접근할 수 있는 데이터와 권한을 최소화합니다.
- 테스트 환경에서 충분히 검증한 뒤 실제 업무에 연결합니다.
자주 묻는 질문
Q1. 도구 호출은 초보자도 알아야 하나요?
네. 챗GPT, 제미나이, 클로드 같은 AI를 단순 채팅이 아니라 업무 자동화나 에이전트로 쓰려면 도구 호출 개념을 알아야 합니다. AI가 답변만 하는지, 실제 외부 기능을 호출할 수 있는지에 따라 위험도와 활용도가 크게 달라집니다.
Q2. 도구 호출을 쓰면 AI가 인터넷을 마음대로 검색하나요?
아닙니다. 모델이 쓸 수 있는 도구는 애플리케이션이나 서비스가 제공한 범위 안에서 정해집니다. 웹 검색 도구를 제공하지 않으면 모델은 보통 임의로 인터넷을 검색할 수 없습니다. 제공하더라도 언제 호출할지, 어떤 결과를 쓸지, 로그를 남길지 정해야 합니다.
Q3. 도구 호출과 플러그인은 같은 말인가요?
같지 않습니다. 플러그인은 특정 제품에서 외부 기능을 연결하는 패키지나 확장 형태를 뜻할 수 있습니다. 도구 호출은 그보다 넓은 개념으로, 모델이 외부 기능을 선택하고 입력값을 만들어 호출하는 구조를 말합니다.
Q4. 도구 호출을 쓰면 환각이 사라지나요?
완전히 사라지지는 않습니다. 도구 호출은 최신 데이터나 실제 시스템 결과를 가져와 환각을 줄이는 데 도움을 줄 수 있습니다. 하지만 모델이 잘못된 도구를 고르거나, 결과를 잘못 해석하거나, 도구 자체가 틀린 데이터를 돌려주면 여전히 문제가 생길 수 있습니다.
Q5. 구조화 출력과 도구 호출 중 무엇을 먼저 배워야 하나요?
초보자는 구조화 출력을 먼저 배우면 좋습니다. 정해진 형식으로 답을 받는 습관이 생기면, 이후 도구 호출에서 필요한 입력값과 결과 형식을 이해하기 쉽습니다. 다만 실제 업무 자동화를 만들려면 결국 도구 호출까지 알아야 합니다.
Q6. 도구 호출을 연결할 때 가장 위험한 실수는 무엇인가요?
가장 위험한 실수는 조회 도구와 실행 도구를 같은 수준으로 열어두는 것입니다. "주문 상태 확인"과 "환불 실행"은 위험도가 다릅니다. 실제 변경을 일으키는 도구는 권한 제한, 사람 승인, 로그, 재시도 기준을 반드시 둬야 합니다.
출처
마무리
도구 호출은 AI가 실제 업무에 들어갈 때 반드시 만나는 핵심 개념입니다. 한 문장으로 다시 정리하면, 도구 호출은 AI가 필요한 외부 기능을 선택하고 입력값을 만들어 호출하도록 하는 구조입니다.
초보자라면 오늘 두 가지만 기억해도 충분합니다. 첫째, 모델은 보통 도구 호출을 제안하고 실제 실행은 애플리케이션이 맡습니다. 둘째, 조회 도구와 실행 도구는 위험도가 다르므로 권한과 승인 기준을 나눠야 합니다.
AI를 업무 자동화에 연결할수록 "무엇을 물어볼까"보다 "무엇을 실행하게 할까"가 더 중요해집니다. 도구 호출을 이해하면 AI 에이전트, MCP, 구조화 출력, RAG, 휴먼 인 더 루프 같은 주변 개념도 훨씬 쉽게 연결됩니다.
