툴 사용
툴 사용(Tool Use)은 LLM이 응답 중간에 외부 함수·API·데이터베이스·서비스를 호출해 최신 데이터를 가져오거나, 계산을 수행하거나, 세상에서 행동을 취할 수 있게 하는 기능입니다. 학습 데이터에 갇혀 있지 않고, 과제가 요구할 때 모델 바깥으로 손을 뻗을 수 있게 됩니다.
툴 사용(Tool Use)은 LLM이 응답 중간에 외부 함수·API·데이터베이스·서비스를 호출해 최신 데이터를 가져오거나, 계산을 수행하거나, 세상에서 행동을 취할 수 있게 하는 기능입니다. 학습 데이터에 갇혀 있지 않고, 과제가 요구할 때 모델 바깥으로 손을 뻗을 수 있게 됩니다.
왜 중요한가
순수 LLM에는 세 가지 제약이 있습니다: 고정된 지식 컷오프, 사적 데이터 접근 불가, 행동 불가. 툴 사용은 이 셋을 동시에 제거합니다. 같은 모델이 "현재 MRR은?"에 답하고, 이메일을 보내고, 항공권을 예약하고, DB를 조회하고, 코드를 실행할 수 있습니다. 툴 사용은 현대의 모든 AI 에이전트·코파일럿, 그리고 챗봇 층 위의 거의 모든 프로덕션 LLM 애플리케이션의 기반입니다.
작동 원리
1. 툴 정의: 호출자가 모델에게 사용 가능한 툴 목록을 제공합니다. 각 툴에는 이름·설명·파라미터 스키마가 있습니다.
2. 모델의 호출 결정: 사용자 요청에 툴이 필요하면, 모델은 일반 텍스트 대신 스키마에 맞는 구조화된 툴 호출(JSON)을 출력합니다.
3. 런타임이 툴 실행: 호출자 코드가 툴 호출을 받아 실제 함수를 실행하고 결과를 반환합니다.
4. 결과가 모델로 돌아감: 모델은 결과를 컨텍스트의 일부로 받아 응답을 이어갑니다 — 사용자에게 답하거나, 또 다른 툴을 부릅니다.
5. 종료까지 루프: 멀티 툴 작업은 최종 텍스트 응답이 나올 때까지 툴 호출을 연쇄합니다.
툴 사용 vs Function Calling
두 용어는 거의 호환되며, 미묘한 차이가 있습니다.
- Function Calling: 원래의 프레이밍 — 모델이 단일 명명 함수의 JSON 인자를 출력합니다.
- Tool Use: 더 넓은 프레이밍 — 툴은 함수·API·컴퓨터 동작·MCP 서버가 될 수 있고, 모델이 여러 개를 순서대로 조율합니다.
Anthropic은 "tool use"를, OpenAI는 예전에 "function calling"을 썼고 지금은 "tools"라고 부릅니다. 같은 기능의 다른 이름입니다.
툴의 종류
검색: 문서 가져오기, 웹 검색, DB 쿼리, 레코드 조회.
연산: 파이썬 실행, 수학 계산, 단위 변환, 파일 파싱.
행동: 이메일 전송, 캘린더 이벤트 생성, 슬랙 포스팅, CRM 업데이트.
코드 실행: 모델이 샌드박스 인터프리터 안에서 코드를 작성·실행.
컴퓨터 사용: 클릭·타이핑·화면 읽기 — 가장 범용 툴.
모델 간 위임: 다른 전문 모델(예: 이미지 생성)에게 작업 위임.
좋은 툴 스키마 설계
짧고 명확한 설명: 설명은 모델이 언제 호출할지 결정하는 기준입니다. 모호하지 않게 만듭니다.
좁은 파라미터 타입: 자유 텍스트보다 enum과 제약된 문자열을 선호 — 인자 할루시네이션을 줄입니다.
가능하면 멱등: 모델이 재시도할 수 있으므로, 두 번째 호출이 이메일을 중복 전송하지 않도록.
구조화 결과 반환: 모델에게 자유 텍스트 대신 JSON을 돌려줍니다 — 구조가 있는 입력을 훨씬 잘 다룹니다.
오류 응답이 다음 행동을 안내: "에러: 도시 못 찾음, 철자 바꿔보세요"가 "500"보다 유용합니다.
흔한 실수
툴 과다: 20~30개를 넘어가면 모델이 잘못된 툴을 고르기 시작합니다. 관련 툴을 묶거나 더 작은 선택지로 라우팅합니다.
모호한 설명: "utility"는 언제 호출할지 알려주지 못합니다. 구체적으로.
오류 핸들링 부재: 툴 실패가 루프를 깨뜨립니다. 모델이 반응할 수 있는 구조화된 에러를 돌려줍니다.
지연 무시: 모든 툴 호출은 왕복 시간을 더합니다. 독립적인 호출은 병렬화하고, 가능한 경우 배치합니다.
가드레일 생략: 행동형 툴(메일 전송·송금)은 인간 승인 또는 엄격한 스코핑이 필요합니다.
Sources:
- Tool Use with Claude - Anthropic
- Function Calling Guide - OpenAI
- Building Effective Agents - Anthropic
관련 인블로그 게시물
inblog에서 활용하기
inblog의 AI 어시스턴트는 툴 사용으로 단순 초안 생성을 넘어, 사용자의 블로그 데이터를 직접 조회하고, SEO 통계를 가져오고, 이미지를 삽입하고, 포스트를 예약 발행합니다. 모델이 '무엇을 써야 하는가'를 알뿐 아니라 '지금 이 블로그의 실제 상태'를 기반으로 작업할 수 있어, 일반 챗봇이 줄 수 없는 맥락 기반 도움을 제공합니다.