도구는 Claude가 외부 세계의 정보에 접근할 수 있게 해주며, 이는 Claude의 주요 한계 중 하나를 해결합니다. 기본적으로 Claude는 학습된 정보에만 접근할 수 있으므로, 오늘의 날씨나 최근 뉴스와 같은 최신 정보를 제공할 수 없습니다.

사용자가 "샌프란시스코, 캘리포니아의 날씨는 어떤가요?"라고 물으면, Claude는 일반적으로 "죄송하지만, 저는 최신 날씨 정보에 접근할 수 없습니다."라고 응답합니다. 도구는 Claude와 외부 데이터 소스 간의 연결을 만들어 이 문제를 해결합니다.
도구 사용 작동 방식
도구 사용 프로세스는 서버와 Claude 간의 여러 차례의 양방향 통신을 포함하는 특정 흐름을 따릅니다:

- 초기 요청: 추가 데이터를 얻는 방법에 대한 지침과 함께 Claude에게 질문을 보냅니다
- 도구 요청: Claude는 질문을 분석하고 필요한 특정 외부 데이터를 요청합니다
- 데이터 검색: 서버가 코드를 실행하여 요청된 정보를 가져옵니다
- 최종 응답: Claude는 외부 데이터를 사용하여 완전하고 정보에 기반한 답변을 제공합니다
실제 날씨 예시
날씨 질문에 대해 도구 사용 흐름이 작동하는 방식은 다음과 같습니다:

사용자가 날씨에 대해 물으면, Claude에 대한 초기 요청에 현재 날씨 데이터를 검색하는 방법에 대한 세부 정보를 포함합니다. Claude는 현재 날씨 정보가 필요하다는 것을 인식하고 서버에 이를 가져오도록 요청합니다. 서버는 날씨 API를 호출하여 실시간 데이터를 검색하고 이를 Claude에게 다시 전송합니다. 마지막으로, Claude는 원래 질문과 최신 날씨 데이터를 결합하여 정확하고 최신의 응답을 제공합니다.
구현상의 어려움
도구 사용은 논리적 흐름과 실제로 코드를 작성하는 방식 사이에 단절이 있기 때문에 혼란스럽게 느껴질 수 있습니다. 구현은 개념적 단계와 동일한 순서를 따르지 않습니다:

실제로는 다음을 수행해야 하는 경우가 많습니다:
- 먼저 도구 함수를 작성합니다
- JSON 스키마 명세를 생성합니다
- ToolUse와 ToolResult 부분을 처리합니다
- 요청에 스키마를 포함합니다
구현의 여러 부분 사이를 이렇게 오가는 것이 도구 사용이 처음에는 복잡해 보이는 이유입니다. 핵심은 논리적 흐름의 각 단계가 실행되는 순서와는 다른 순서로 구축하게 될 특정 코드 구성 요소를 필요로 한다는 것을 이해하는 것입니다.
다음 비디오에서는 도구 사용을 단계별로 구현하며, 현재 구축 중인 부분을 추적하기 위해 이 흐름 다이어그램을 자주 참조할 것입니다.