도구 사용
Tool Use · Function Calling
모델이 직접 실행하지 않고, 호출할 함수를 구조화된 형식으로 "요청"하면 애플리케이션이 실행해 결과를 돌려주는 방식. Anthropic의 tool use, OpenAI의 function calling이 여기에 해당합니다.
4
도구 사용(Tool Use) 또는 함수 호출(Function Calling)은 모델이 직접 코드를 실행하는 대신, 호출할 함수를 구조화된 형태로 "요청"하면 여러분의 애플리케이션이 실행하고 그 결과를 모델에 돌려주는 방식입니다. 에이전트가 외부 세계와 상호작용하는 가장 기본적인 통로입니다.
어떻게 동작하나
Anthropic: Claude가 요청과 도구 설명을 보고 호출 여부를 정해 stop_reason "tool_use"와 호출 블록을 반환 → 앱이 실행 → tool_result를 다시 전송합니다. 도구는 JSON input_schema로 정의하고, strict 옵션으로 스키마 준수를 강제할 수 있습니다.
OpenAI function calling의 5단계: ① 사용할 도구와 함께 요청 → ② 모델이 tool call 반환 → ③ 앱에서 실행 → ④ 그 결과를 담아 다시 요청 → ⑤ 최종 응답(또는 추가 호출).
기본값(tool_choice: auto)에서는 모델이 매 턴 도구를 부를지 바로 답할지 스스로 정하며, 시스템 프롬프트나 tool_choice로 강제할 수 있습니다.
이렇게 쓰여요
"오늘 서울 날씨 알려줘"에 모델이 get_weather(location) 호출을 요청
DB 조회 도구가 돌려준 JSON 결과를 모델이 자연어로 요약
주의할 점
모델은 호출을 "요청"만 할 뿐 실행은 애플리케이션의 몫입니다. 또 모호한 프롬프트는 잘못된 파라미터 추측(OpenAI)이나 되묻기(Claude)로 이어질 수 있으니, 도구 설명과 스키마를 명확히 작성하세요.