도구

도구 사용

Tool Use / Function Calling

텍스트만 만드는 AI 모델이 호출할 함수와 인자를 골라 요청하면, 개발자 코드가 그 함수를 실행해 결과를 돌려주는 방식이다(OpenAI에서는 Function Calling). 최신 정보 조회, DB 검색, 파일 수정처럼 모델 밖의 일을 맡길 때 쓰며, 에이전트에게 "손"을 달아 주는 기능이다.

구분도구 없음도구 사용
할 수 있는 일글쓰기, 요약, 답변조회, 계산, 파일 수정, 외부 서비스 호출
최신 정보학습 시점까지만실시간으로 가져옴
정확한 계산틀릴 수 있음코드로 실행해 정확함

모델은 고르고, 실행은 내 코드가 한다

함수를 실행하는 쪽은 모델이 아니다. 모델은 호출할 도구 이름과 인자를 JSON으로 돌려줄 뿐이고, 실제 실행과 결과 전달은 개발자 코드가 맡는다. Claude API에서는 아래 순서로 진행된다.

순서누가하는 일
1개발자요청과 함께 도구 목록(이름·설명·입력 스키마) 전달
2모델도구와 인자를 담은 tool_use 블록 반환
3개발자함수를 실행하고 결과를 tool_result로 전달
4모델결과를 보고 다음 도구를 부르거나 최종 답변

이 과정을 반복하면 "지난달 매출 추이를 분석해줘" 같은 요청도 모델이 DB 조회, 데이터 정리, 분석 코드 실행까지 스스로 이어서 처리한다. Claude Code도 파일 읽기·편집·셸 실행·검색을 모두 도구로 구현해 두었기 때문에 코드베이스를 스스로 다룰 수 있다.

도구를 붙이는 세 가지 방법

방법어떻게이럴 때
직접 정의코드에 함수와 스키마를 작성내 서비스 전용 기능
MCP 서버 연결서버만 연결하면 기능이 도구로 자동 등록이미 있는 서비스를 연동할 때
서버 도구웹 검색처럼 제공사가 대신 실행실행 코드를 직접 짜지 않을 때

설명을 잘 써야 도구를 잘 고른다

모델은 도구 이름과 설명만 보고 언제 어떤 도구를 쓸지 정한다. 설명이 모호하면 엉뚱한 도구를 부르거나 인자를 잘못 채운다. 무엇을 하는 도구인지, 언제 써야 하는지, 인자마다 무슨 뜻인지를 사람에게 설명하듯 구체적으로 적는다.

도구가 많다고 좋은 것도 아니다. 비슷한 도구가 여럿 있으면 모델이 헷갈리고, 도구 정의는 요청할 때마다 입력 토큰을 차지한다. 늘 함께 쓰는 단계는 도구 하나로 묶고, 결과도 필요한 정보만 간결하게 돌려준다.

삭제·결제는 사람이 확인하게

모델이 잘못된 인자를 넣거나 필요 없는 호출을 할 수 있다. 파일 삭제, 결제, 메일 발송처럼 되돌리기 어려운 도구는 실행 전에 사용자 확인을 받게 한다. 또 도구 결과에 섞여 들어온 외부 텍스트의 지시를 모델이 따를 수 있으므로 권한은 좁게 준다. 단순한 질문 답변이나 글쓰기에는 도구가 필요 없다. 외부 정보나 실행이 꼭 필요한 작업에만 붙인다.

에이전트와 데이터 챗봇의 기본 부품

가장 흔한 쓰임은 에이전트에게 실제 작업 수단을 쥐여 주는 것이다. 모델이 직접 할 수 없는 조회·실행을 도구로 열어 주고, 결과를 보며 다음 단계를 스스로 정하게 한다.

어디서어떻게 쓰나
코딩 에이전트파일 읽기·편집·셸 실행·검색을 도구로 두고 코드를 스스로 찾아 고치고 테스트까지 돌린다
사내 데이터·문서 챗봇DB 조회·문서 검색 도구를 붙여 "지난달 매출" 같은 질문에 실제 데이터로 답한다
최신 정보 답변웹 검색 도구로 학습 이후의 정보를 가져와 출처와 함께 답한다
업무 자동화MCP 서버로 메일·일정·이슈 관리 같은 기존 서비스를 연결하고, 발송·삭제는 사람 확인 후 실행한다
#API#함수호출
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20