툴 사용
툴 사용(Tool Use)은 LLM이 검색·계산기·코드 실행·외부 API 같은 도구를 호출해 스스로의 한계를 넘어 능력을 확장하는 것을 말합니다. AI 에이전트의 핵심 동작 원리이며, 실제 구현은 함수 호출(function calling) 메커니즘으로 이뤄집니다.
- 툴 사용은 LLM이 검색·계산기·코드 실행·외부 API 같은 외부 도구를 활용해 능력을 확장하는 상위 개념이며, 자율적으로 행동하는 AI 에이전트의 핵심 동작입니다.
- 함수 호출(function-calling)은 툴 사용을 실제로 구현하는 메커니즘으로, 모델이 호출할 함수의 이름과 인자를 구조화된 형식으로 내보내면 애플리케이션이 이를 실행합니다.
- Anthropic 문서에서 "tool use"와 "function calling"은 같은 뜻으로 쓰이며, 모델은 도구 설명을 보고 언제 어떤 도구를 쓸지 스스로 판단합니다.
- ReAct 논문(2022)은 추론과 행동을 번갈아 수행하면 환각이 줄고 외부 정보를 끌어와 답의 정확도가 올라간다는 점을 실증했습니다.
- GEO 관점에서, AI 검색엔진이 웹 검색·페이지 조회 도구로 실시간 정보를 가져와 답을 구성하므로 도구가 접근하는 콘텐츠가 곧 인용 후보가 됩니다.
툴 사용이란 무엇인가
툴 사용(Tool Use)은 대규모 언어 모델(LLM)이 자기 안에 학습된 지식만으로 답하지 않고, 검색 엔진·계산기·코드 실행 환경·외부 API 같은 도구를 호출해 능력을 확장하는 것을 말합니다. LLM 단독으로는 최신 정보 조회, 정확한 산술 계산, 실시간 데이터 접근에 약하지만, 도구를 붙이면 이런 한계를 메우고 "세상과 상호작용하는" 행위자가 됩니다. 이 때문에 툴 사용은 스스로 판단하고 행동하는 AI 에이전트의 핵심 동작 원리로 꼽힙니다.
중요한 구분이 하나 있습니다. 툴 사용은 "도구를 써서 능력을 확장한다"는 상위 개념이고, 함수 호출(function calling)은 그것을 실제로 구현하는 메커니즘입니다. Anthropic의 공식 문서는 "Tool use is also known as function calling"이라고 명시하며 두 용어를 교환 가능하게 사용합니다. 즉 모델에게 도구를 쥐여 주는 큰 그림이 툴 사용이고, 그 도구를 "이름과 인자를 가진 함수 호출"로 표현해 실행하는 배선(配線)이 함수 호출입니다.
작동 방식
현대 LLM에서 툴 사용은 대체로 다음 흐름으로 동작합니다. Anthropic Claude의 도구 사용 절차를 기준으로 정리하면 이렇습니다.
- 도구 정의: 개발자가 각 도구의 이름·설명·입력 스키마(JSON Schema)를 모델에 전달합니다. 모델은 이 설명을 보고 언제 어떤 도구가 적절한지 판단합니다.
- 호출 신호: 사용자의 요청이 어떤 도구의 기능에 들어맞고 답이 이미 문맥에 없으면, 모델은 응답을 텍스트로 끝내지 않고 도구를 호출하겠다는 신호(
stop_reason: "tool_use")와 함께 호출할 함수의 이름·인자를 담은 구조화된 블록을 내보냅니다. - 실행: 애플리케이션이 그 함수를 실제로 실행합니다(검색 수행, API 호출, 코드 실행 등).
- 결과 반환: 실행 결과(
tool_result)를 다시 모델에 돌려주면, 모델은 그 결과를 반영해 최종 답을 작성합니다.
핵심은 모델이 외부 코드를 직접 실행하지 않는다는 점입니다. 모델은 "이 함수를 이런 인자로 부르고 싶다"는 의도만 구조화해서 내보내고, 실제 실행과 결과 회수는 애플리케이션(또는 제공자 인프라)이 맡습니다. 아래는 모델이 내보내는 함수 호출 블록의 예시입니다.
{
"type": "tool_use",
"id": "toolu_01A09q90qw90lq917835lq9",
"name": "get_weather",
"input": { "location": "Seoul, KR", "unit": "celsius" }
}도구는 실행 위치에 따라 두 종류로 나뉩니다. 클라이언트 도구는 개발자의 애플리케이션에서 실행되며(사용자 정의 함수, bash·text_editor 등), 모델이 tool_use 블록을 내보내면 개발자 코드가 실행하고 tool_result를 돌려줍니다. 서버 도구는 제공자 인프라에서 실행되며(예: web_search, code_execution, web_fetch, tool_search), 개발자는 실행을 직접 처리하지 않고 결과만 받습니다. 또한 기본값인 tool_choice: auto에서는 모델이 매 턴마다 도구를 부를지 직접 답할지 스스로 결정하며, any·tool 같은 설정으로 도구 호출을 강제할 수도 있습니다.
함수 호출과의 관계 (상위 개념 ↔ 구현)
둘은 인접하지만 층위가 다릅니다. 혼동을 피하기 위해 정리하면 다음과 같습니다.
| 구분 | 툴 사용 (Tool Use) | 함수 호출 (Function Calling) |
|---|---|---|
| 층위 | 상위 개념·역량 | 구현 메커니즘 |
| 핵심 질문 | "모델이 외부 도구로 무엇을 할 수 있는가" | "그 도구를 어떻게 호출·실행하는가" |
| 포괄 범위 | 검색·계산·코드 실행·API·외부 환경 상호작용 전반 | 이름·인자를 가진 함수 호출 형식으로 표현 |
| 산출물 | 도구를 활용해 확장된 최종 답·행동 | 구조화된 호출 블록(이름 + 인자 JSON) |
| 관계 | 함수 호출은 툴 사용을 실현하는 표준 배선 — Anthropic 문서는 둘을 같은 뜻으로 사용 | |
근거와 사례
ReAct (Reasoning + Acting). Yao 등(arXiv:2210.03629, 2022년 10월 제출, ICLR 2023)이 제안한 ReAct는 추론 과정(reasoning traces)과 행동(actions)을 번갈아 생성하는 패러다임입니다. 모델이 생각을 하면서 동시에 외부 도구로 정보를 가져오게 함으로써, 연쇄적 추론(chain-of-thought) 단독에서 흔한 환각과 오류 전파를 줄입니다. 실제로 HotpotQA·Fever 과제에서 간단한 Wikipedia API와 상호작용해 환각을 완화했고, 의사결정 벤치마크에서는 모방학습·강화학습 대비 ALFWorld에서 절대 성공률 +34%p, WebShop에서 +10%p 향상을 보고했습니다. 이는 "도구를 부르는 행동"이 단순 보조가 아니라 답의 정확도를 끌어올리는 핵심 요소임을 보여 줍니다.
Toolformer. Schick 등(arXiv:2302.04761, Meta AI, 2023년 2월)의 Toolformer는 모델이 어떤 API를, 언제, 어떤 인자로 호출하고, 그 결과를 어떻게 다음 토큰 예측에 반영할지를 스스로 학습한다는 점을 보였습니다. API당 소수의 시연만으로 자기지도(self-supervised) 방식으로 학습하며, 계산기·질의응답 시스템·검색 엔진·번역기·캘린더 같은 도구를 통합해 산술·사실 조회 등에서 훨씬 큰 모델에 견줄 성능을 달성했습니다. 모델이 도구 사용 자체를 학습할 수 있다는 가능성을 제시한 연구입니다.
실무적 가치. Anthropic 문서는 도구 접근을 "에이전트에게 줄 수 있는 가장 레버리지가 큰 기본 요소(highest-leverage primitives)"로 표현합니다. 과학 도표 해석(LAB-Bench FigQA)이나 실제 소프트웨어 엔지니어링(SWE-bench) 같은 벤치마크에서, 기본적인 도구를 붙이는 것만으로도 능력이 크게 향상되며 때로는 인간 전문가 기준선을 넘기도 한다고 설명합니다.
GEO·AI 검색에서의 의미
생성형 검색엔진과 AI 답변 기능은 내부적으로 웹 검색 도구·페이지 조회 도구를 호출해 실시간 정보를 가져온 뒤 답을 구성하는 경우가 많습니다. 즉 "도구가 접근하는 웹 콘텐츠"가 곧 AI 답변의 인용·근거 후보가 됩니다. 따라서 검색·조회 도구가 잘 읽고 인용할 수 있도록 콘텐츠를 구조화하고 출처를 명확히 하는 것은, AI 답변에 포함되는 것을 목표로 하는 GEO 전략과 직접 맞닿아 있습니다.