AI Sparkup

복잡한 AI 세상을 읽는 힘 ⚡

AI 에이전트가 수천 개 도구를 다루는 법: Claude의 고급 Tool Use 전략

IDE 어시스턴트가 git, 파일 조작, 패키지 매니저, 테스트 프레임워크, 배포 파이프라인을 통합하고, 운영 코디네이터가 Slack, GitHub, Google Drive, Jira, 회사 데이터베이스를 동시에 연결하는 미래를 상상해보세요. 하지만 현실은 녹록지 않습니다. 도구 정의만으로 5만 토큰을 소비하고, 중간 결과가 컨텍스트를 잠식하며, 비슷한 이름의 도구들 사이에서 AI는 헷갈립니다.

사진 출처: Anthropic

Anthropic이 Claude API에 추가한 세 가지 고급 Tool Use 기능은 이런 한계를 정면으로 해결합니다. Tool Search Tool, Programmatic Tool Calling, Tool Use Examples를 통해 AI 에이전트가 실제 프로덕션 환경에서 수천 개의 도구를 효율적으로 다룰 수 있게 된 겁니다.

출처: Introducing advanced tool use on the Claude Developer Platform – Anthropic

Tool Search Tool: 필요한 도구만 찾아 쓴다

GitHub 35개, Slack 11개, Jira 추가하면? 58개 도구 정의가 5만 5천 토큰을 삼켜버립니다. 대화가 시작되기도 전에 컨텍스트 윈도우의 상당 부분이 사라지는 거죠.

Tool Search Tool은 모든 도구를 미리 로드하는 대신 필요할 때만 찾습니다. Claude는 처음에 Tool Search Tool 자체(약 500토큰)만 보고, 작업에 필요한 도구를 검색해서 3~5개 정도만 로드합니다. 총 토큰 소비량이 7만 7천에서 8,700토큰으로 줄어들죠. 85% 감소입니다.

더 놀라운 건 정확도 개선입니다. 내부 테스트에서 Opus 4는 49%에서 74%로, Opus 4.5는 79.5%에서 88.1%로 향상됐습니다. 비슷한 이름의 도구들(notification-send-user vs notification-send-channel) 사이에서 혼동하는 빈도가 크게 줄어든 덕분입니다.

구현은 간단합니다. 도구 정의에 defer_loading: true 플래그만 추가하면 해당 도구는 온디맨드로 발견됩니다. 자주 쓰는 핵심 도구 3~5개만 항상 로드하고 나머지는 필요할 때 찾는 전략이죠.

Programmatic Tool Calling: 코드로 오케스트레이션한다

“Q3에 출장비 예산 초과한 팀원은?”이라는 질문을 생각해보세요. 전통적인 방식은 비효율의 연속입니다. 팀원 20명을 가져오고, 각자의 Q3 지출 내역을 가져오고(20번 툴 호출), 예산 한도를 조회하고… 2,000개 이상의 지출 항목(50KB+)이 Claude의 컨텍스트로 들어갑니다. Claude는 이 데이터를 일일이 살펴보며 합산하고 비교해야 하죠.

Programmatic Tool Calling은 접근 방식을 바꿉니다. Claude가 도구를 하나씩 호출하는 대신, 전체 워크플로우를 오케스트레이션하는 파이썬 코드를 작성합니다. 이 코드는 샌드박스 환경에서 실행되며, 도구 결과는 Claude의 컨텍스트가 아니라 코드로 직접 전달됩니다.

예를 들어 asyncio.gather로 20명의 지출 내역을 병렬로 가져오고, 코드 안에서 합산과 비교를 처리합니다. Claude가 최종적으로 보는 건 “예산 초과한 2~3명의 명단”뿐입니다. 200KB의 원시 지출 데이터가 1KB의 결과로 압축되는 거죠.

효과는 명확합니다. 복잡한 리서치 태스크에서 평균 토큰 사용량이 43,588에서 27,297로 37% 감소했고, 정확도는 지식 검색에서 25.6%→28.5%, GIA 벤치마크에서 46.5%→51.2%로 개선됐습니다. 각 API 왕복마다 발생하던 추론 오버헤드도 제거돼 레이턴시까지 줄었죠.

루프, 조건문, 데이터 변환, 에러 처리가 모두 명시적인 코드로 표현되니 Claude가 자연어로 추론하는 것보다 훨씬 정확하고 예측 가능합니다.

Tool Use Examples: 스키마가 말 못 하는 걸 보여준다

JSON 스키마는 구조를 정의하는 데 탁월하지만, 사용 패턴은 설명하지 못합니다. 서포트 티켓 API를 예로 들어볼까요? 스키마는 due_date가 문자열이라고만 말하지, “2024-11-06″인지 “Nov 6, 2024″인지 “2024-11-06T00:00:00Z”인지 알려주지 않습니다. reporter.id가 UUID인지 “USR-12345” 형식인지, escalation 객체를 언제 채워야 하는지도 마찬가지죠.

Tool Use Examples는 구체적인 호출 사례를 보여줍니다. 긴급 버그는 전체 연락처 정보와 에스컬레이션 설정을 포함하고, 기능 요청은 리포터만 있고, 내부 작업은 제목만 있는 식입니다. Claude는 세 가지 예시에서 날짜 형식(YYYY-MM-DD), ID 규칙(USR-XXXXX), 라벨 컨벤션(kebab-case), 중첩 구조 패턴을 자연스럽게 학습합니다.

내부 테스트에서 복잡한 파라미터 처리 정확도가 72%에서 90%로 개선됐습니다. 스키마로는 전달할 수 없던 도메인별 관습이 예시를 통해 명확해진 덕분입니다.

프로덕션급 AI 에이전트의 시작

세 가지 기능은 각각 다른 병목을 해결합니다. 컨텍스트 과부하에는 Tool Search Tool, 중간 결과 오염에는 Programmatic Tool Calling, 파라미터 오류에는 Tool Use Examples. 모든 에이전트가 세 기능을 다 쓸 필요는 없습니다. 가장 큰 제약부터 해결하면 됩니다.

Anthropic은 실제로 Claude for Excel에서 Programmatic Tool Calling을 활용해 수천 행의 스프레드시트를 컨텍스트 과부하 없이 처리하고 있습니다. 단순 함수 호출을 넘어 지능적 오케스트레이션으로 나아가는 도구 사용의 미래가 여기 있습니다.

참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다